Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

Update нескольких таблиц через TIBQuery   Найти похожие ветки 

 
Pul   (2004-02-06 12:11) [0]

Есть запрос на склейку двух таблиц. В гриде все поля (за исключением связующих) должны быть редактируемыми. Каким образом с использованием TIBQuery.UpdateObject выполнить update или insert для двух таблиц. Насколько я понял, это делается в обработчике OnUpdateRecord, только как это сделать с двумя таблицами?


 
MV   (2004-02-06 12:27) [1]

Используйте TUpdateSQL, или, что более удобно, используйте компоненты IBX (или из очень дешевый - по стоимости, не покачеству - FIB+). Там есть замечательный TIBDataSet. У него определяется набор SQL - предложений на каждую операцию отдельно( Select, Insert, Update, Delete, Refresh).


 
Pul   (2004-02-06 12:47) [2]

>> MV (06.02.04 12:27) [1]
Компонент TIBQuery как раз именно из IBX, именно его я и использую, именно у него есть свойство UpdateObject, которому назначается TIBUpdateSQL, в котором и определяется набор SQL предложений на каждую операцию отдельно (Select, Insert, Update, Delete, Refresh). Меня интересует, как правильно сделать Update/Insert, если в запросе TIBQuery участвуют несколько таблиц.


 
MV   (2004-02-06 12:52) [3]

Вот, блин, действительно - смотришь в книгу - а там фига...
Извиняюсь.

Ну, по-моему, из-за того, что можно задавать только одно SQL предложение - то только через хранимые процедуры или через обновляемый View. (это когда к View цепляешь триггеры, реагирующие на Insert/update/delete)


 
Pul   (2004-02-06 13:21) [4]

А через обработчик TIBQuery.OnUpdateRecord никак нельзя?


 
MV   (2004-02-06 13:41) [5]

Что-то логика хромает, по-моему: если связь 1:1, то объедените таблицы, и все дела; а если 1:Many - что будет, если меняем в подчиненной таблице - все строски с такой связью рефрешить? Сделайте лукап - поле, а если хотим не только выбор из списка, то добавьте в него "эллипсоидную" кнопку - вызывайте редактирование в отдельной форме.

TIBQuery.OnUpdateRecord - можно в UpdateSQL какую-нибудь лажу запихать, чтобы OnUpdateRecord стрелял, но внутр обработчика делать отмену, затем запускать внешний TIBSQL, например, потом посылать форме мессагу, чтобы рефрешить набор данных. Гемор, одним словом...


 
HSolo ©   (2004-02-06 14:34) [6]

> MV (06.02.04 13:41) [5]
В общем случае - ничего не хромает :)) Может, человек строит что-то вроде:
http://www.compress.ru/Article.asp?id=2006

> Pul (06.02.04 13:21) [4]
> А через обработчик TIBQuery.OnUpdateRecord никак нельзя?
Вы имеете в виду примерно как в Delphi Help - Using multiple update objects? А чем Вам не подходит MV (06.02.04 12:52) [3] ?



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

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
3-5967
Fom
2004-02-05 15:21
2004.03.03
Как в EhLib сделать Hint для полей которые не помещаются?


14-6241
John S.
2004-02-10 16:01
2004.03.03
Почему сгорел комьютер


1-6138
Harm
2004-02-19 16:34
2004.03.03
Последний день месяца


14-6226
iNew
2004-02-12 05:30
2004.03.03
Утилита SHUTDOWN.EXE из resource kit.


11-6004
Dimaxx
2003-06-17 23:18
2004.03.03
Форма с кнопкой на таскбаре...