線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1320
推到 Plurk!
推到 Facebook!

請問 DBEXPRESS 的DataSetProvider Transaction

答題得分者是:Mickey
a0
一般會員


發表:11
回覆:29
積分:18
註冊:2003-09-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-09 09:35:26 IP:59.115.xxx.xxx 訂閱
我使用DBEXPRESS
var
TD: TTransactionDesc;
begin

TD.TransactionID := 1;
TD.IsolationLevel := xilREADCOMMITTED;
SQLConnection1.StartTransaction(TD);
try
ClientDataSet1.ApplyUpdates(0);
SQLConnection1.Commit(TD); {on success, commit the changes};
Showmessage('END Commit');
except
MessageDlg('' #13 #10 '資料未存檔!!', mtInformation, [mbOK], 0);
SQLConnection1.Rollback(TD); {on failure, undo the changes};
end;

//
procedure TForm1.DataSetProvider1BeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
UpdateKind: TUpdateKind; var Applied: Boolean);
begin

Showmessage('1111');
abort
end;


我在 BeforeUpdateRecord 中下abort 不能引發錯誤 Rollback 請問在BeforeUpdateRecord 要怎樣寫 才能秀出'資料未存檔'的字樣??
編輯記錄
taishyang 重新編輯於 2007-05-09 09:37:18, 註解 將文章分類成[問題]‧
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-10 10:15:41 IP:218.163.xxx.xxx 訂閱
你好, 試試

procedure TForm1.DataSetProvider1BeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
UpdateKind: TUpdateKind; var Applied: Boolean);
begin

raise Exception.Create('1111');
end;
a0
一般會員


發表:11
回覆:29
積分:18
註冊:2003-09-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-11 17:49:08 IP:59.115.xxx.xxx 訂閱
您好 這樣依然不會 秀出'資料未存檔'的字樣
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-14 13:23:10 IP:218.163.xxx.xxx 訂閱
TDatasetProvider.OnUpdateError

procedure TForm3.DataSetProvider1UpdateError(Sender: TObject;
DataSet: TCustomClientDataSet; E: EUpdateError; UpdateKind: TUpdateKind;
var Response: TResolverResponse);
begin
raise E;
end;
系統時間:2024-06-26 9:56:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!