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

📄 tczy.pas

📁 本系统是基于企业局域网平台针对企业安防
💻 PAS
字号:
unit TCzy;

interface
  uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
  Dialogs,DB,ADODB;
type
  TCzyXX = Class(TObject)
  private
    FCzybh: String;//操作员编号
    FCzymc: String;//操作员名称
    FCzyqx: integer;//操作员权限
    FCzymm: String;//操作员密码
    FTableName: String;//记录数据集对象连接的数据表
    FFieldName: String;//记录数据表中操作员编号的字段名
    FFieldNames: Array of String;//记录表所有的字段
    FFieldCount: integer;//字段数
    Procedure WriteCzybh(Bh: String);
    Procedure WriteCzymc(Mc: String);
    Procedure WriteCzyqx(Qx: Integer);
    Procedure WriteCzymm(Mm: String);
    Procedure WriteTableName(Table: String);
    Procedure WriteFieldName(Field: String);
  Published
    DataSet: TADOQuery;
    Property FWriteFieldName: String  Read FFieldName write WriteFieldName;
    Property FWriteTableName : String Read FTableName Write WritetableName;
    Property Czybh: String Read FCzybh Write WriteCzybh;
    Property Czymc: String Read FCzymc Write WriteCzymc;
    Property Czyqx: Integer Read FCzyqx Write WriteCzyqx;
    Property Czymm: String Read FCzymm Write WriteCzymm;
    Procedure ConnectDataBase(ConnectInfo: String);//连接数据库 
    Function AddCzybh: String;Virtual; //添加操作员编号
    Procedure SaveCzyXX;Virtual;  //保存操作员信息
    Procedure SetFieldCount(Count: Integer);Virtual;
    Procedure DelCzyXX(FieldName1: String;Value: Variant);virtual;//删除操作员信息,参数为删除条件
    Procedure SelCzyXX;Overload;Virtual;//查询所有操作员信息
    Procedure UpDateCzyXX(Values: Array of Variant;FieldName: String;Value: Variant);Virtual;//修改操作员信息
    //参数Values指定修改的值,参数FieldName,Value指定修改条件
  Public   
    Procedure WriteFieldNames(index: Integer;FieldName: String);
    Procedure SelCzyXX(FieldName: String;Value: Variant);Overload;Virtual;//查询符合条件的操作员信息
    Constructor Create;virtual;
    Destructor Destroy; Override;
  end;
implementation

{ TCzyXX }



Function TCzyXX.AddCzybh : String;
var
  Bh,m: String; //Bh记录生成的编号
  i: integer;
begin
  Bh:= 'C'+ FormatDateTime('yyyy',Now());
  with DataSet do
  begin
    SQL.Clear;
    SQL.Add('select ' + 'Max(' + FFieldName +')'+' as ss '+ ' from '+ FTableName );
    Open;
  end;
  If DataSet.FieldByName('ss').Value = null then
    Bh := bh + '001'
  else
  begin
    m:= Trim(DataSet.FieldByName('ss').Value) ;
    i:= StrToInt(Trim(Copy(m,6,8))) ;
    if i<9 then
      Bh:= Bh + '00'+ InttoStr(i +1)
    else if i<99 then
      Bh:= Bh + '0'+ InttoStr(i +1)
    else
      Bh:= Bh +InttoStr(i +1);
  end;
  Result := Bh;
end;

procedure TCzyXX.ConnectDataBase(ConnectInfo: String);
begin
  DataSet.ConnectionString := ConnectInfo;
end;

constructor TCzyXX.Create;
begin
  inherited;
  FCzybh := '';
  FCzymc := '';
  FCzyqx := 0;
  FCzymm := '';
  FTableName := '';
  FFieldName:= '';
  FFieldCount:=0;
  Try
    DataSet := TADOQuery.Create(Nil);
  Except
    FreeAndNil(DataSet);
    ShowMessage('对象创建失败.');
  End;
end;

procedure TCzyXX.DelCzyXX(FieldName1: String;Value: Variant);
begin
  with DataSet do
  begin
    Close;
    SQL.Clear;
    SQL.Add('delete '+ FTableName + ' where '+ FieldName1 + ' =:a ');
    Parameters.ParamByName('a').Value := Value;
    ExecSQL;
  end;
end;

destructor TCzyXX.Destroy;
var
  spid: Integer;
begin
  with DataSet do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select @@spid as temp');
    open;
  end;
  if DataSet.RecordCount>0 then
  begin
    spid := DataSet.Fields[0].Value;
    with DataSet do
    begin
      Close;
      SQL.Clear;
      SQL.Add('use master kill '+ IntToStr(spid));
      ExecSQL;
    end;
  end;
  inherited;
  FreeAndNil(DataSet);
end;
procedure TCzyXX.SaveCzyXX;
begin
  with DataSet do
  begin
    Close;
    SQL.Clear;
    SQL.Add('insert '+ FTableName + ' Values (:a,:b,:c,:d)');
    Parameters.ParamByName('a').Value := Trim(FCzybh);
    Parameters.ParamByName('b').Value := Trim(FCzymc);
    parameters.ParamByName('c').Value := FCzyqx;
    Parameters.ParamByName('d').Value := Trim(FCzymm); 
    ExecSQL;
  end;
end;

procedure TCzyXX.SelCzyXX;
begin
  with DataSet do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from '+ FTableName);
    Open;
  end;
end;

procedure TCzyXX.SelCzyXX(FieldName: String; Value: Variant);
begin
  with DataSet do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from '+ FTableName + ' where ' + FieldName + ' = :a');
    Parameters.ParamByName('a').Value := Value;
    Open;
  end;
end;

procedure TCzyXX.SetFieldCount(Count: Integer);
begin
  FFieldCount := Count;
  SetLength(FFieldNames,Count);
end;

procedure TCzyXX.UpDateCzyXX(Values: Array of Variant;FieldName: String;Value: Variant);
var
  i,m: Integer;
  ParamList: Array of String; //记录参数名
  n: String;
begin
  SetLength(ParamList,FFieldCount);
  For i := 0 to FFieldCount-1 do
    ParamList[i]:= 'a'+ IntToStr(i);
  for m := 0 to FFieldCount-1 do
  begin
    if m <> FFieldCount-1 then
      n:= n+ FFieldNames[m] + ' =:'+ParamList[m]+' ,'
    else
      n:= n+ FFieldNames[m] + ' =:'+ParamList[m];
  end;
  with Self.DataSet do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Update ' + FTableName +' Set ' + n );
    SQL.Add('where '+ FieldName + '= :a');
    For i:= 0 to FFieldCount-1 do
      Parameters.ParamByName(ParamList[i]).Value := Values[i];
    Parameters.ParamByName('a').Value := Value;
    ExecSQL;
  end;
end;

procedure TCzyXX.WriteCzybh(Bh: String);
begin
  FCzybh := Bh;
end;

procedure TCzyXX.WriteCzymc(Mc: String);
begin
  FCzymc := Mc;
end;

procedure TCzyXX.WriteCzymm(Mm: String);
begin
  FCzymm := Mm;
end;

procedure TCzyXX.WriteCzyqx(Qx: Integer);
begin
  FCzyqx := Qx;
end;

procedure TCzyXX.WriteFieldName(Field: String);
begin
  FFieldname := Field;
end;

procedure TCzyXX.WriteFieldNames(Index: integer;FieldName: String);
begin
  FFieldNames[Index]:= FieldName; 
end;

procedure TCzyXX.WriteTableName(Table: String);
begin
  FTableName := Table;
end;

end.

⌨️ 快捷键说明

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