![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько 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.