Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ошибка при отобр-и данных с LookupField [D7, MSSQL]


D ©   (2003-01-21 14:20:00) 

Мастера, помогите пож-та!!!! может кто-то сталкивался с чем-нибудь подобным!
Есть АДОДатаСет, в нем несколько Lookup полей. В design-time открывается нормально, все отображается в связанном с ним Гриде. Во время вып-я при отображении в гриде вылетает с EOleException "Unknown error...".
(Если убрать флажок Stop on exception, то данные в Гриде все-таки отображаются).


Johnmen   (2003-01-22 11:26:00) [1]

>BlackTiger (22.01.03 11:08)

1. Предлагаю на "ты".
2. Коротко :
Каждый раз, когда у приложения возникает необходимость в значении лукапного поля (напр.для отображения), происходит обращение к лукапному НД, в котором ищется соотв.запись, и из нее берется необх.значение поля. Если же на лукапный НД стоит фильтр, то, естественно, соотв запись м.б. не найдена. В этом случае значение лук-го поля не определено. АДОДатаСет проверяет эту ситуацию и возбуждает ексепшн, что, впрочем, не мешает отобразить пустое поле. Если установить кеширование лук-го поля, то значения соотв.полей лук-го НД помещаются в кеш, откуда и берутся при необходимости. Кеш строится в момент создания/получения НД с лук.полем, поэтому именно в этот момент лук-ый НД не д.б. отфильтрован...

Уф-ф-ф-ф...Устал...:)))


BlackTiger   (2003-01-22 11:08:00) [2]

Уважаемый Johnmen!

Расскажите мне тогда ПОЧЕМУ до определенного момента все работает, а в один прекрасный момент отбрасывает копытца и сыпет "левые" исключения? Дельфя в ресурсы, что ли пишет содержитмое лукапных полей? И почему, если все повторить ОДИН-В-ОДИН в ЧИСТОМ проекте, то опять некоторое время все работает, потом - кранты?
Что ТАКОЕ модуль DB.dcu передает модуль ADODB.dcu, что последний просто выпадает в exception?


Johnmen   (2003-01-22 00:44:00) [3]

>BlackTiger (21.01.03 21:10)

Никаких косяков !!! Повнимательней прочти про кеширование лукапных полей и вообще, как они работают...
Может тогда бросишь баловаться косячками и узнаешь, кто такой партайгеноссе Борман...


BlackTiger   (2003-01-21 21:10:00) [4]

Блин! Моя ошибка! Я первый про этот АДОшно-Дельфийский баг спрашивал! Я пробился несколько дней, а потом просто поставил "Stop on Delphi exceptions" в false. ЗАДОЛБАЛО!
Все было нормально до определенного момента, а потом начала вылезать эта ерунда. При этом дурацкий дебагер выкидывал в абсолютно левый код где-то в недрах модуля ADO, почему-то связанный с анализом наложенных фильтров не понятно на что. После удаления исходников ADO просто вываливался "в никуда".

Косячек-с бормановский, однако.


D   (2003-01-21 15:12:00) [5]

>jee

СПАСИБО ОГРОМНОЕ!


jee   (2003-01-21 15:02:00) [6]

я когда-то протрахался с этой ошибкой несколько дней. В LookUp поле включи свойство LookupCache в true.


don-do   (2003-01-21 14:48:00) [7]

По всей видимости программист ограничился только лишь обработкой исключения, поэтому стоит наплевать на эту ошибку, тем более что при нормальной работе ее не возникает


D   (2003-01-21 14:34:00) [8]

Где возникает ошибка - обнаружилось: среди Lookup-полей есть одно, которое может содер-ть пустые значения. МОЖНО ЛИ ВСЕ-ТАКИ исп-ть в этом случае Lookup-поле?


Наверх

Титульная страница Поиск, карта сайта Написать письмо