关于事务的问题!!在线等待!1

ziqing 2003-03-04 08:28:20
有会的话可不可以说一下?
...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
snake_eye 2003-03-04
  • 打赏
  • 举报
回复
ADO/mts/com+那本书里有讲!
snake_eye 2003-03-04
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dbcgrids, ExtCtrls, DBCtrls, DB, ADODB, Grids, DBGrids,
StdCtrls, Mask;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOQuery2: TADOQuery;
DBNavigator1: TDBNavigator;
DBCtrlGrid1: TDBCtrlGrid;
DataSource2: TDataSource;
ADOQuery1SupplierID: TAutoIncField;
ADOQuery1CompanyName: TWideStringField;
ADOQuery1ContactName: TWideStringField;
ADOQuery1ContactTitle: TWideStringField;
ADOQuery1Address: TWideStringField;
ADOQuery1City: TWideStringField;
ADOQuery1Region: TWideStringField;
ADOQuery1PostalCode: TWideStringField;
ADOQuery1Country: TWideStringField;
ADOQuery1Phone: TWideStringField;
ADOQuery1Fax: TWideStringField;
ADOQuery1HomePage: TMemoField;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
DBNavigator2: TDBNavigator;
DBGrid1: TDBGrid;
ADOQuery3: TADOQuery;
ADOQuery2CATEGORYNAME: TStringField;
ADOQuery2ProductID: TAutoIncField;
ADOQuery2ProductName: TWideStringField;
ADOQuery2SupplierID: TIntegerField;
ADOQuery2CategoryID: TIntegerField;
ADOQuery2QuantityPerUnit: TWideStringField;
ADOQuery2UnitPrice: TBCDField;
ADOQuery2UnitsInStock: TSmallintField;
ADOQuery2UnitsOnOrder: TSmallintField;
ADOQuery2ReorderLevel: TSmallintField;
ADOQuery2Discontinued: TBooleanField;
procedure ADOQuery2CalcFields(DataSet: TDataSet);
procedure ADOQuery1BeforePost(DataSet: TDataSet);
procedure ADOQuery1AfterPost(DataSet: TDataSet);
procedure ADOQuery1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ADOQuery2CalcFields(DataSet: TDataSet);
begin
try
ADOQUery3.Parameters.ParamByName('categoryid').Value:=
DataSet.FieldByName('categoryid').Value;
ADOQuery3.Active:=True;
DataSet.FieldByName('categoryname').Value:=
ADOQuery3.FieldByName('categoryname').Value;
finally
ADOQUery3.Close;
end;
end;

procedure TForm1.ADOQuery1BeforePost(DataSet: TDataSet);
begin
ADOConnection1.BeginTrans;
end;

procedure TForm1.ADOQuery1AfterPost(DataSet: TDataSet);
begin
ADOConnection1.CommitTrans;
end;

procedure TForm1.ADOQuery1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
ADOConnection1.RollbackTrans;
Action:=daAbort;
end;

end.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧