⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 execsqlclass.pas

📁 在打沙场用的最简单
💻 PAS
字号:
unit Execsqlclass;

interface

uses
  sysutils,ADODB;

type
  TexecsqlEvent=procedure(sender:Tobject;Qty:Tadoquery) of object;
type
  Texecsql=class
  private
    Fadoconnection:Tadoconnection;
    Fadoquery:Tadoquery;
    Fcons:String;
    Fsql:String;
    FexecsqlException:Exception;
    FexecsqlEvent:TexecsqlEvent;
  protected
    procedure ExecsqlError;
  public
    procedure Execute;
    constructor Create(Fadoc:Tadoconnection;
                        fadoq:Tadoquery;
                        fconstring:string;
                        tmpsql:string);virtual;
    destructor destroy();override;
    property ExecsqlEvent:TexecsqlEvent read FexecsqlEvent write FexecsqlEvent;
  end;

implementation

{ Texecsql }

constructor Texecsql.Create(Fadoc: Tadoconnection; fadoq: Tadoquery;
  fconstring, tmpsql: string);
begin
  Fadoconnection:=Fadoc;
  Fadoquery:=Fadoq;
  Fcons:=Fconstring;
  Fsql:=tmpsql;
end;

destructor Texecsql.destroy;
begin
  {do nothing};
  inherited;
end;

procedure Texecsql.ExecsqlError;
begin
  Abort;
end;

procedure Texecsql.Execute;
begin
  try
    fadoquery.Close;
    fadoquery.SQL.Clear;
    fadoquery.SQL.Add(' Begin transaction ');
    fadoquery.SQL.Add(fsql);
    fadoquery.SQL.Add(' commit transaction ');
    fadoquery.ExecSQL;

    if assigned(FexecsqlEvent) then
      begin
        FexecSqlEvent(self,Fadoquery);
      end;

  except
    Fadoquery.Close;
    Fadoquery.SQL.Clear;
    Fadoquery.SQL.Add(' Rollback transaction ');
    Fadoquery.ExecSQL;

    FexecsqlException:=Exceptobject as Exception;
    Execsqlerror;
  end;
end;

end.

⌨️ 快捷键说明

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