![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Update нескольких таблиц через TIBUpdateSQL [D7, IB6.x]
Pul © (2004-10-08 15:57:00)В запросе TIBQuery склейка двух таблиц. Результат выводится в грид, при этом все поля, кроме поля-связки, должны быть редактируемыми. Как это сделать через компонент TIBUpdateSQL?
Vemer (2004-10-08 22:32:00) [1]Сегодня попробовал в IbDataSet редактируемую склейку из 2-х таблиц, ID1 = ID2 один к одному, работает замечательно.
Только надо для 2-х таблиц раздельно SQL сгенерить и совпадение ID обеспечить на вставке через GeneratorField/OnNewRecord.
В UpdateSql редактор I/M/D/Refresh SQL вроде такой-же.
Zacho (2004-10-08 22:19:00) [2]
> Эй кто нибудь ............. ))
Пятница.. Вечер.. Всем не форума.
Всё-таки сделал бы проще: написал бы пару ХП и не мучился бы с тяжким наследием BDE в виде TIBQuery, TIBUpdateSQL и т.п.
Pul (2004-10-08 18:52:00) [3]Эй кто нибудь ............. ))
Pul (2004-10-08 18:07:00) [4]Мастера, откликнитесь...
Pul (2004-10-08 17:01:00) [5]>> Zacho © (08.10.04 16:19) [1]
Спасибо за совет.
Если кто-то помнит, скажите как можно в TIBQuery в обработчике OnUpdateRecord правильно использовать несколько TIBUpdateSQL?
А также как правильно при этом выставить свойства связки TIBQuery - TIBUpdateSQL?
Что-то вроде этого.
procedure TForm1.IBQOpersUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TIBUpdateAction);
begin
try
OpIBUpdSQL.SetParams(UpdateKind);
OpIBUpdSQL.ExecSQL(UpdateKind);
OpIBUpdSQL.Apply(UpdateKind);
UpdateAction := uaApplied;
except
UpdateAction := uaFail;
end;
end;
Zacho (2004-10-08 16:19:00) [6]Именно с помощью TIBUpdateSQL - никак.
Можно, например, выполнить несколько запросов в BeforePost датасета с помощью TIBSQL.
Можно для этой цели написать ХП - тогда никакого дополнительного кода в приложении писать не придется, только TIBQuery придется заменить на TIBDataSet.
P.S. Вообще не советую использовать TIBQuery - для вего, чего угодно, достаточно TIBDataSet и TIBSQL, и проблем с их использованием меньше.