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

📄 udata.pas

📁 这是一个门禁系统的应用程序,用 delphi编写,希望与大家交流.
💻 PAS
字号:
unit udata;

interface

uses
  SysUtils, Classes, DB, ADODB;

type
  TdmPer = class(TDataModule)
    acPer: TADOConnection;
    aqSta: TADOQuery;
    dsSta: TDataSource;
    aqDep: TADOQuery;
    dsDep: TDataSource;
    aqExper: TADOQuery;
    dsExper: TDataSource;
    aqFami: TADOQuery;
    dsFami: TDataSource;
    aqAP: TADOQuery;
    dsAP: TDataSource;
    aqTrain: TADOQuery;
    dsTrain: TDataSource;
    aqStaf: TADOQuery;
    aqExperf: TADOQuery;
    aqAPf: TADOQuery;
    aqFamif: TADOQuery;
    aqTrainf: TADOQuery;
    aqStat: TADOQuery;
    aqSDep: TADOQuery;
    dsSDep: TDataSource;
    procedure DataModuleCreate(Sender: TObject);
    procedure DataModuleDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }

    procedure OpenQuery(aqData: TADOQuery; aSQlStr: string);
    procedure ExecQuery(aSQlStr: string); overload;
    procedure ExecQuery(aqData: TADOQuery; aSQlStr: string); overload;
    procedure OpenDep;
    procedure OpenSDep;
    procedure OpenStaInfo;
    procedure OpenExper;
    procedure OpenFami;
    procedure OpenAP;
    procedure OpenTrain;
    procedure OpenStat(aWhr, aGrpStr: string);

    procedure OpenStaf(aId: string);
    procedure OpenExperf(aPid: string);
    procedure OpenFamif(aPid: string);
    procedure OpenAPf(aPid: string);
    procedure OpenTrainf(aPid: string);
  end;

var
  dmPer: TdmPer;

implementation

{$R *.dfm}

{ TdmPer }

procedure TdmPer.DataModuleCreate(Sender: TObject);
begin
  if acPer.Connected = false then acPer.Open;
end;

procedure TdmPer.DataModuleDestroy(Sender: TObject);
begin
  if acPer.Connected then acPer.Close;
end;

procedure TdmPer.OpenQuery(aqData: TADOQuery; aSqlStr: string);
begin
  with aqData do
  begin
    if Active then Close;
    Connection := acPer;
    LockType := ltBatchOptimistic;
    SQL.Clear;
    SQL.Text := aSqlStr;  
    Open;
  end;
end;

procedure TdmPer.ExecQuery(aSQlStr: string);
var
  aqExec: TADOQuery;
begin
  aqExec := TADOQuery.Create(self);
  with aqExec do
  begin
    Connection := acPer;
    SQL.Clear;
    SQL.Text := aSqlStr;
    ExecSQL;
  end;
  aqExec.Free;
end;

procedure TdmPer.ExecQuery(aqData: TADOQuery; aSQlStr: string);
begin
  with aqData do
  begin
    if Active then Close;
    Connection := acPer;
    SQL.Clear;
    SQL.Text := aSqlStr; 
    ExecSQL;
  end;
end;

procedure TdmPer.OpenDep;
begin
  OpenQuery(aqDep, 'select dep from dept order by ornum');
end;

procedure TdmPer.OpenSDep;
begin
  OpenQuery(aqSDep, 'select dep, sdep from sdep order by ornum');
end;

procedure TdmPer.OpenStaInfo;
begin
  OpenQuery(aqSta, 'select * from staInfo');
end;

procedure TdmPer.OpenExper;
begin
  OpenQuery(aqExper, 'select * from wexper');
end;

procedure TdmPer.OpenFami;
begin
  OpenQuery(aqFami, 'select * from family');
end;

procedure TdmPer.OpenAP;
begin
  OpenQuery(aqAP, 'select * from aandp');
end;

procedure TdmPer.OpenTrain;
begin
  OpenQuery(aqTrain, 'select * from train');
end;

{统计所需过程 Access不支持Group By All查询语句}
procedure TdmPer.OpenStat(aWhr, aGrpStr: string);
begin
  OpenQuery(aqStat, 'select '+ aGrpStr +', count(id) as sCount from stainfo where 0=0 '
                     + aWhr + ' group by '+ aGrpStr);
end;

procedure TdmPer.OpenStaf(aId: string);
begin
  OpenQuery(aqStaf, 'select * from staInfo where id=' + aId);
end;

procedure TdmPer.OpenExperf(aPid: string);
begin
  OpenQuery(aqExperf, 'select * from wexper where sid=' + aPid);
end;

procedure TdmPer.OpenFamif(aPid: string);
begin
  OpenQuery(aqFamif, 'select * from family where sid=' + aPid);
end;

procedure TdmPer.OpenAPf(aPid: string);
begin
  OpenQuery(aqAPf, 'select * from aandp where sid=' + aPid);
end;

procedure TdmPer.OpenTrainf(aPid: string);
begin
  OpenQuery(aqTrainf, 'select * from train where sid=' + aPid);
end;

end.

⌨️ 快捷键说明

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