selectsqlclass.pas

来自「程序採用了无状态连接池的三层结构」· PAS 代码 · 共 76 行

PAS
76
字号
unit SelectsqlClass;

interface

uses
  sysUtils, ADODB;

type
  TselectsqlEvent=procedure(sender:Tobject;qry:Tadoquery) of object;

type
  Tselectsql = class
  private
    Fadoconnection:Tadoconnection;
    Fadoquery:Tadoquery;
    Fcons:string;
    Fsql:String;
    FselectsqlException:Exception;
    FselectsqlEvent:TselectsqlEvent;
  protected
    procedure SelecesqlError;
  public
    procedure Execute;
    constructor create(Fadoc:Tadoconnection;
                        Fadoq:Tadoquery;
                        Fconnstring:string;
                        tmpSql:string);virtual;
    Destructor destroy();override;
    property SelectSqlEvent:TselectSqlEvent read FselectsqlEvent write FselectsqlEvent;
end;

implementation

{ Tselectsql }

constructor Tselectsql.create(Fadoc: Tadoconnection; Fadoq: Tadoquery;
  Fconnstring, tmpSql: string);
begin
  Fadoconnection:=Fadoc;
  Fadoquery:=Fadoq;
  Fcons:=Fconnstring;
  Fsql:=Tmpsql;
end;

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

procedure Tselectsql.Execute;
begin
  try
    Fadoquery.Close;
    Fadoquery.SQL.Clear;
    Fadoquery.SQL.Add(fsql);
    fadoquery.Open;

    if assigned(FselectsqlEvent) then
      begin
        FselectsqlEvent(self,Fadoquery);
      end;
  Except
    FselectsqlException:=Exceptobject as Exception;
    selecesqlError;
  end;

end;

procedure Tselectsql.SelecesqlError;
begin
  Abort;
end;

end.

⌨️ 快捷键说明

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