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

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

Несколько TIBUpdateSQL [D7, IB6.x]


Pul ©   (2003-11-26 14:39:00) 

У меня три таблицы в SQL запросе IBQuery: одна master, и две detail. Нужно сделать так, чтобы все поля были редактируемыми.
Кинул три компонента TIBUpdateSQL для каждой таблицы.
Заполнил все SQL у TIBUpdateSQL, и на IBQuery.OnUpdateRecord делаю следующее:
procedure TForm1.IBQuery1UpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TIBUpdateAction);
begin
IBUpdateSQL1.DataSet := IBQuery1;
IBUpdateSQL1.SetParams(UpdateKind);
IBUpdateSQL1.ExecSQL(UpdateKind);
IBUpdateSQL2.DataSet := IBQuery1;
IBUpdateSQL2.SetParams(UpdateKind);
IBUpdateSQL2.ExecSQL(UpdateKind);
IBUpdateSQL3.DataSet := IBQuery1;
IBUpdateSQL3.SetParams(UpdateKind);
IBUpdateSQL3.ExecSQL(UpdateKind);
UpdateAction := uaApplied;
end;

При выполнении ExecSQL для таблицы с редактируемым полем все нормально, а в других - возникает ошибка "Update failed".
Подскажите как правильно поступать в таких ситуациях.


Zacho   (2003-11-26 19:36:00) [1]


> Vemer © (26.11.03 19:13) [6]

TIBDataSet. И никакие TIBTable и TIBQuery нафиг не нужны, они вообще-то были задуманы в основном для упрощения перевода старых проектов с BDE на IBX, или наоборот, если в будующем предпологается переход на другие компоненты доступа к БД, сходные с BDE.


Vemer   (2003-11-26 19:13:00) [2]

TO Zacho>
А можно об альтернативах поподробнее вкратце :)? Нет, правда интересно. Я например недавно перелез с IB_Table на IB_Query, так и не разобравшись с фильтрами :).


Zacho   (2003-11-26 19:00:00) [3]


> Pul (26.11.03 15:05) [3]

ВОт я, например, не сталкивался поскольку принципиальноне пользуюсь TIBQuery и другим не советую :-)


Vemer   (2003-11-26 18:47:00) [4]

Сорри, не совсем въехал в вопрос.
А в UpdateSQL у тебя для всех 3-х таблиц SQL сгенерен правильно(Там выпадающее меню есть с названиями таблиц)?
Возможно ли заменить подчиненные таблицы Lookup-полями, тогда в UpdateSQL 1 таблица будет и все нормально.


Pul   (2003-11-26 15:05:00) [5]

Народ, что никто не сталкивался с этим?
НЕ ВЕРЮ!!!


Pul   (2003-11-26 14:49:00) [6]

>Vemer © (26.11.03 14:45) [1]
ApplyUpdates - метод TIBQuery, а он у меня один.
О какой троице идет речь?


Vemer   (2003-11-26 14:45:00) [7]

А если просто ApplyUpdate для всей троицы вызывать? Можно еще попробовать раздельное редактирование, а потом присоедитять по одной для отлова момента, когда ошибка возникает.
Еще вариант - неправильно ключевое поле(поля) где-то указано в UpdateSQL.


Наверх

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