Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Вниз

ODAC - использование TOraQuery   Найти похожие ветки 

 
P&$   (2002-07-19 13:42) [0]

У кого есть опыт работы с 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


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


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

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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.006 c
3-23953
the-best-officeman
2002-07-18 21:06
2002.08.08
for i := 0 to table1.RecordCount-1 do begin


1-24001
Helg
2002-07-28 09:39
2002.08.08
Как перехватывать обработчики ошибок?


3-23916
BS
2002-07-18 10:47
2002.08.08
Вопрос к мастерам: как обновить поле используя свою функцию.


1-24043
MaxSit
2002-07-25 17:58
2002.08.08
Связь с COM-портом по локальной сети.


1-24117
romik-delphi6
2002-07-26 13:59
2002.08.08
Сохранение параметров





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский