![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка если в look-up-поле [D5, MSSQL]
Abu © (2002-06-05 16:12:00)Добрий день, мастера! Помогите решить проблемку. Если в поле, связанном с lookup-полем, в БД содержится NULL, то при активизации DataSet вылетает ошибка EOleException "An unknown error has occured". Как заставить lookup нормально реагировать на NULL ?
fool (2002-06-06 12:32:00) [1]>Johnmen © (06.06.02 11:51)
Я ж и пишу
>И ничего такого, что я раньше писал не надо - так вообще-то не совсем правильно:
Все работает нормально со стандартными компонентами, И FIO_ch - не обязательно NOT NULL
>Abu
тренируйся с подключением к БД
Johnmen (2002-06-06 12:16:00) [2]>Abu (06.06.02 12:06)
Мне нечего сказать - я просто удивлен........:)
Abu (2002-06-06 12:06:00) [3]У меня результат действительно отображается в DBGrid-e,и Fiend по-моему прав, дело именно в нем.
>Johnmen
Все это уже осуществлялось в отельной тестовой програмке, специально для этой ситуации - то же самое.
Johnmen (2002-06-06 11:51:00) [4]>А если Вам добавить в таблицу (ту, откуда lookup получает набор
>данных) запись с пустым значением
Справочник - и с пустым значением ???.......Круто....:)))))
>Abu : Внимательно поковыряйся в своей проге - где-то смысловая ошибка...
fool (2002-06-06 11:39:00) [5]И ничего такого, что я раньше писал не надо - так вообще-то не совсем правильно:
А если Вам добавить в таблицу (ту, откуда lookup получает набор данных) запись с пустым значением, а ключевое поле(по которому идет просмотр) этой записи вставлять вместо NULL?
И FIO_ch - не обязательно NOT NULL
fool (2002-06-06 11:33:00) [6]счас смоделировал твою ситуевину - все работает нормально (стандартные компоненты, LookUp поле добавлял как в в TQuery, так
и с пом. DBLookupComboBox: не ругается [D5, MSSQL], так что тренируйся с подключением к БД :0)
Abu (2002-06-06 11:10:00) [7]>Fiend
Кинь, пожалуйста. Здорово выручишь!!!
Abu (2002-06-06 10:53:00) [8]Понимаю, что коряво, но что делать не знаю.
Я, наверное, в примерах, еще раз расскажу, может сможете подсказать где ошибаюсь.
BASE1
ID_b1 FIO_ch
1 2
2 1
3 NULL
BASE2 (справочник)
ID_b2 FIO
1 "AAA"
2 "BBB"
По полю FIO_ch строится lookup поле. Все хорошо до тех пор, пока в поле FIO_ch не появляется NULL, вот тогда и выскакивает эта ошибка. Почему?
Fiend (2002-06-06 10:44:00) [9]я тоже по моему с этим боролся, но фишка оказалась не в Dataset`e. Виноват был грид который это потом отображал. Теперь я юзаю библиотеку InfoPower 3000 - и просто восхищаюсь ее возможностями. Могу кинуть по мылу с ключиком
Lusha (2002-06-06 10:27:00) [10]>Abu (06.06.02 10:20)
Выяснить в чем причина ошибки... Лично меня смущает E OleException... А для полей отсутствующих в справочнике LookUp поле и так пустое должно быть... По крайней мере так было всегда... :)
WellSlava (2002-06-06 10:24:00) [11]ВЫ ЧТО!! А где же ссылочная целостность??!! Где же вторичные ключи... Ну вы блин даете...
Abu (2002-06-06 10:20:00) [12]А Вы можете предложить что-то другое?
Johnmen (2002-06-06 10:02:00) [13]>fool © (05.06.02 18:22)
>Abu (05.06.02 18:42)
Ха-ха...Дурной тон....
Abu (2002-06-05 18:42:00) [14]Именно так!
fool (2002-06-05 18:22:00) [15]А если Вам добавить в таблицу (ту, откуда lookup получает набор данных) запись с пустым значением, а ключевое поле(по которому идет просмотр) этой записи вставлять вместо NULL?
Abu (2002-06-05 17:58:00) [16]Все !!! Может кому-нибудь пригодиться - в справочник пришлось добавить пустую строку, а на поле в master наложить ограничение Not Null.
Abu (2002-06-05 17:24:00) [17]Чтобы выводилась пустая строка, как в поле без lookup-a
Val (2002-06-05 17:21:00) [18]Как заставить lookup нормально реагировать на NULL ?
А какая предполагается реакция, если для дочерней записи отсутсвует ссылка на запись родительскую?
Abu (2002-06-05 17:18:00) [19]Да нет, сообщение выскакивает в самом начале, при загрузке DataSet. И оно появляется только когда в поле - NULL, нет NULL-а все в порядке.
Black Cat (2002-06-05 17:15:00) [20]Дело скорее не в лукапе, а в последующей обработке значения этого поля