powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lookup-поле в ADODataSet
5 сообщений из 5, страница 1 из 1
Lookup-поле в ADODataSet
    #32229334
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
ADO, MSSQL2000, Delphi5. Коннект через OLE DB.
Если в ADODataSet добавлено Lookup-поле, то при попытке работать с ним вылетает exception
"...class EOleException 'An unknown error has occured'.." Пробовал разными способами - менял CommandType и пр. - в ходе экспериментов эксепшн возникал то при открытии, то при попытке изменить поле (любое), то при добавлении записи. Возникает он в модуле ADODb, в фун-ции CustomADODataSet.LocateRecord в строке
Код: plaintext
1.
2.
3.
...
        if FieldCount =  1  then
          FLookupCursor.Find(GetFilterStr(FieldByName(KeyFields), KeyValues, Partial),  0 ,
           adSearchForward, EmptyParam)


Сталкивался ли кто-нибудь с чем-то подобным? Какие пути преодоления?
...
Рейтинг: 0 / 0
Lookup-поле в ADODataSet
    #32229458
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в профилере что пишется? Что на сервер идет?
...
Рейтинг: 0 / 0
Lookup-поле в ADODataSet
    #32229490
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все как обычно - селект... Дело в том, что несмотря на этот эксепшн, все в принципе работает. Сервер тут ни причем, т.к. опытным путем выяснил ,что дело именно в Lookup-полях
...
Рейтинг: 0 / 0
Lookup-поле в ADODataSet
    #32229538
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такое дело... мы просто отключили срабатывание исключений Delphi. IMHO просто так кривовато реализована связь между ADO объектом и дельфийской оболочкой. Ни на что не влияет, вроде работает нормально (прога еще не в промышленной эксплуатации, поэтому 100% гарантии насчет утечек памяти или еще чего-то не могу дать). Кстати, у нас Delphi7.
...
Рейтинг: 0 / 0
Lookup-поле в ADODataSet
    #32230230
Фотография Ray D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За неделю до сдачи очередного этапа тоже натолкнулся на этот баг.
Bugland отмалчивается. Поэтому пришлось поправить ADOdb.pas:

if FieldCount = 1 then begin
//:Patch by Ray D
if (KeyValues <> Null) then begin
FLookupCursor.Find(GetFilterStr(FieldByName(KeyFields), KeyValues, Partial), 0,
adSearchForward, EmptyParam);
end else begin
//:
FLookupCursor.MoveLast;
FLookupCursor.MoveNext;
//:
end;

Правишь. Кидаешь в каталог со своими сырцами - и наслаждаешься :))
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lookup-поле в ADODataSet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]