Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.046 c
8-1151581381
пигмалеон
2006-06-29 15:43
2007.02.25
очистить прозрачный canvas


1-1167312885
MegaVolt
2006-12-28 16:34
2007.02.25
Работа со строками приводит к ошибкам при выделении памяти


2-1170572657
Observer
2007-02-04 10:04
2007.02.25
Asm and Delphi


15-1170419129
Kolan
2007-02-02 15:25
2007.02.25
Чем закончился Прогресс бар?


15-1170524258
Parus
2007-02-03 20:37
2007.02.25
Пиринговые сети