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

Вниз

Как заставить DBGrid отображать изменения триггера BeforeInsert?   Найти похожие ветки 

 
TheEd   (2005-02-04 19:42) [0]

Господа, собственно subj. Если подробнее, в IB7.0 есть таблица, в которой некоторое поле F1 заполняется в триггере BeforeInsert некоторым значением X.
 Кидаем на форму IBDataBase, IBTransaction, IBTable, TDataSource, DBGrid завязываем как положено, запускаем. Вставляем новую запись в DBGrid - поле F1 <> X!
 Как сделать так, что бы в момент вставки DBGrid перечитал содержимое БД, на какое событие повеситься?

Заранее спасибо!


 
Соловьев ©   (2005-02-04 19:45) [1]


> Вставляем новую запись в DBGrid - поле F1 <> X!

используй не IBTable а IBDataSet там есть свойство RefreshSQL


 
Desdechado ©   (2005-02-04 22:16) [2]

> в момент вставки DBGrid перечитал
до или после?


 
TheEd   (2005-02-06 23:19) [3]

И 1 и 2 ответ не ясны. Может я неправильно описал трабл: я вставляю запись в DBGrid не программно, а всего лишь нажав стрелку вниз, находясь на последней записи.
И если RefreshSQL, то какой использовать?


 
TheEd   (2005-02-09 01:14) [4]

Господа, вопрос на мой взгляд пустяковый, неужто никто не поможет кратким лаконичным ответом?

(Как разберусь - сам себе отвечу :)


 
Deniz   (2005-02-09 07:26) [5]

Объясни толковее что надо.
Сначала клиент далает "у себя" INSERT, потом POST, потом клиент посылает запрос на сервер.
Далее, срабатывает триггер на сервере before insert, делается insert в таблицу, потом триггер after insert.
http://www.ibase.ru/develop.htm


 
Fareader   (2005-02-09 14:20) [6]

После того как будет Commit у транзакции нужно будет обновить НД и все изменения станут видны :)


 
TheEd   (2005-02-09 23:20) [7]

Попробую объяснить толковее: в таблицу DBGrid добавляется строка - ну к примеру DBNavigator, или нажимая стрелку вниз, находясь на последней строке. Все поля - пустые, хотя в поле ID должен сработать триггер BeforeInsert. Поясните механизм - может SQL запрос Insert посылается только тогда когда редактирование постится? Тогда как корректно отображать в новой записи то что отрабатывают тригеры, пока она в стадии редактирования???
Вроде как разжевал - повторюсь, что вопрос наверняка решается просто - нутром чую.
Прошу помощи, потому что наверняка кто-то с этим уже боролся!


 
Deniz   (2005-02-10 07:29) [8]

>TheEd   (09.02.05 23:20) [7]
> ... Все поля - пустые, хотя в поле ID должен сработать триггер BeforeInsert.

Не должен, прочитай внимательно [5].

>Тогда как корректно отображать в новой записи то что отрабатывают тригеры, пока она в стадии редактирования???

Никак, пока ты пост не сделаешь, триггер не сработает.
Ты лучше опиши не то, как ты хочешь сделать, а то как это все должно выглядеть для пользователя.


 
Deniz   (2005-02-10 07:32) [9]

>Fareader   (09.02.05 14:20) [6]
>После того как будет Commit у транзакции нужно будет обновить НД и все изменения станут видны :)

Если все изменения и чтение проходит в одной транзакции, то Commit не обязательно. Транзакция видит свои изменения.


 
TheEd   (2005-02-10 23:34) [10]

Почитал, поразмыслил, спасибо люди добрые, вижу что делать уже. Автоматом не получится - тут ясно. Прийдётся в события DataSet"а лезть (BeforePost), делать напр. SELECT к генератору, получать ID от него, и назначать поле. А в триггере на null проверять и если не null - не трогать поле.

Спасибо за поддержку!


 
Deniz   (2005-02-11 07:05) [11]

Для генератора в IBDataSet есть специальное свойство(GeneratorField), просто настрой его и все.
Да, и не пользуйся IBTable никогда. В IBDataSet есть все, что тебе потребуется.


 
Deniz   (2005-02-11 07:06) [12]

PS: Не забудь прочитать статьи на http://www.ibase.ru



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

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

Наверх




Память: 0.47 MB
Время: 0.075 c
14-1108993511
juice
2005-02-21 16:45
2005.03.13
C++ Builder 5 Fatal: Unable to open file FILECTRL.OBJ


4-1106922512
Aleksandr.
2005-01-28 17:28
2005.03.13
Кто ждет результата SendMessage с WM_CopyData?


8-1101173290
fashionguide
2004-11-23 04:28
2005.03.13
BassPlayer


14-1108977953
gfd
2005-02-21 12:25
2005.03.13
Где создать форум?


14-1108752190
[wl]
2005-02-18 21:43
2005.03.13
домой холивар win vs linux





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский