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

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

ODAC - использование TOraQuery [D5, D6, Oracle]


P&$ ©   (2002-07-19 13:42:00) 

У кого есть опыт работы с ODAC, помогите.
Начал осваивать ODAC, использую TSmartQuery - при удалении/изменении все в порядке,
а вот при вставке новой записи начинаются проблеммы -
в базе есть триггер генерящий ключевое поле обрабатываемой таблицы, а (из документации по ODAC)
TCustomOraQuery при добавлении (если указана KeySEQUENCE и KeyField) генерит запрос вида
select SEQUENCE_for_kod.NextVal into :new.kod from Dual ;
дублируя триггер, в результате значение поля в базе увелич. на 2 а в приложении на 1 - error!
Если удалить триггер все работает, но он нужен для других приложений!
Если не указывать KeySEQUENCE и KeyField то перед Postом значение KeyField не определено
и как его вытащить не знаю. (можа где-то refresh дать, но где?)
Посоветуйте как быть в данном случае и вообще буду благодарен за любые рекомендациипо работе с ODAC


PSERG   (2002-07-19 17:08:00) [1]

Можешь использовать returning в SQL запросе!


Black Cat   (2002-07-19 16:25:00) [2]


> (можа где-то refresh дать, но где?)

1)Пишешь в SQLRefresh типа:
select * from TABLE_NAME where rowid=:old_rowid
2) в RefreshOption выставляешь roAfterInsert в True
3) В самом SQL выбираешь rowid
Этого хватит при наличии триггера. Удачи!


Наверх

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