dbxmultiform.pas

来自「source code for Marco Cantu s book Delph」· PAS 代码 · 共 115 行

PAS
115
字号
unit DbxMultiForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, Grids, DBGrids, Provider, DBClient, StdCtrls, DBTables, FMTBcd,
  ToolWin, DBActns, ActnList, ImgList, ComCtrls, ActnMan, ActnCtrls,
  XPStyleActnCtrls, SqlExpr, WideStrings, DBXCommon;

type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    SQLDataSet1: TSQLDataSet;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    DataSource1: TDataSource;
    ImageList1: TImageList;
    ActionManager1: TActionManager;
    DataSetFirst1: TDataSetFirst;
    DataSetPrior1: TDataSetPrior;
    DataSetNext1: TDataSetNext;
    DataSetLast1: TDataSetLast;
    DataSetInsert1: TDataSetInsert;
    DataSetDelete1: TDataSetDelete;
    DataSetEdit1: TDataSetEdit;
    DataSetPost1: TDataSetPost;
    DataSetCancel1: TDataSetCancel;
    DataSetRefresh1: TDataSetRefresh;
    ActionToolBar2: TActionToolBar;
    SQLMonitor1: TSQLMonitor;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    DBGrid1: TDBGrid;
    TabSheet2: TTabSheet;
    MemoLog: TMemo;
    SQLDataSet1EMP_NO: TSmallintField;
    SQLDataSet1FIRST_NAME: TStringField;
    SQLDataSet1LAST_NAME: TStringField;
    SQLDataSet1PHONE_EXT: TStringField;
    SQLDataSet1HIRE_DATE: TSQLTimeStampField;
    SQLDataSet1DEPT_NO: TStringField;
    SQLDataSet1JOB_CODE: TStringField;
    SQLDataSet1JOB_GRADE: TSmallintField;
    SQLDataSet1JOB_COUNTRY: TStringField;
    SQLDataSet1SALARY: TFMTBCDField;
    SQLDataSet1FULL_NAME: TStringField;
    procedure FormCreate(Sender: TObject);
    procedure DoUpdate(DataSet: TDataSet);
    procedure SQLMonitor1LogTrace(Sender: TObject; TraceInfo: TDBXTraceInfo);
  protected
    { Private declarations }
  public
    { Public declarations }
    procedure OldTrans;
    procedure NewTrans;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  SQLConnection1.Connected := True;
  ClientDataSet1.Open;
end;

procedure TForm1.NewTrans;
var
  trans: TDbxTransaction;
begin
  trans := SQLConnection1.BeginTransaction;
  try
    // do something in steps
    SQLConnection1.CommitFreeAndNil(trans);
  except
    SQLConnection1.RollbackFreeAndNil(trans);
    // or
    SQLConnection1.RollbackIncompleteFreeAndNil(trans);
  end;
end;

procedure TForm1.OldTrans;
var
  td: TTransactionDesc;
begin
  SQLConnection1.StartTransaction(td);
  try
    // do something in steps
    SQLConnection1.Commit(td);
  except
    SQLConnection1.Rollback(td);
  end;
end;

procedure TForm1.SQLMonitor1LogTrace(Sender: TObject; TraceInfo: TDBXTraceInfo);
begin
  // old
  // MemoLog.Lines.Add (CBInfo.pszTrace);

  // new
  MemoLog.Lines.Add (TraceInfo.Message);
end;

procedure TForm1.DoUpdate(DataSet: TDataSet);
begin
  ClientDataSet1.ApplyUpdates(0);
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?