Текущий архив: 2007.02.25;
Скачать: CL | DM;
ВнизАналог UpdateRecord но без CashedUpdates Найти похожие ветки
← →
DelphiLexx © (2006-12-01 16:53) [0]Есть FIBDataSet. Когда я подтверждаю изменения через Post. То у меня на Insert должен сработать один код на Update другой. Расположить в InsertSql и UpdateSql нет возможности из-за того, что Sql формируется динамически в программе. Как узнать, что после подтверждения данных методом Post была вставка или обновление, чтобы правидьно применить запросы.
Моя идея легко реализуется через UpdateRecord, но это требует CashedUpdates = True, а это мне нужно.
← →
DelphiLexx © (2006-12-01 17:23) [1]
> DelphiLexx
Есть такой код:
MemoryDS.Append;
MemoryDS.FieldByName("RAW_ID").AsInteger := P.ArrayData[0];
MemoryDS.FieldByName("RAW_NAME").AsString := P.ArrayData[1];
MemoryDS.Post;
После Post"a должна сработать процедура ExecSql - моя самопольная, которая выполняет любой SQL-запрос.
if (был insert) then
ExecSQL(DBConnection,
"insert into MY_TABLE (RAW_ID, RAW_NAME) " +
"values(:RAW_ID, :RAW_NAME)",
[MemoryDS.FieldByName("RAW_ID").AsInteger,
MemoryDS.FieldByName("RAW_NAME").AsString], tmpTran);
else if (был Update) then
...
← →
Рамиль © (2006-12-01 18:04) [2]OnNewRecord
IsNewRecord := true;
AfterPost
if IsNewRecord then ...
IsNewRecord := false;
← →
Рамиль © (2006-12-01 18:06) [3]еще при отмене обратно в false вернуть.
← →
DelphiLexx © (2006-12-01 18:12) [4]
> еще при отмене обратно в false вернуть.
Тогда можно проще организовать в BeforePost
if FIBDataSet.State in [dsInsert] then
...
Страницы: 1 вся ветка
Текущий архив: 2007.02.25;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.302 c