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

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

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, и проблем с их использованием меньше.


Наверх

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