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

📄 uadoset.~pas

📁 这是一个啤酒行业的软件
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
unit uAdoSet;

interface

uses
      Windows,
      Messages,
      dialogs,
      StdCtrls,
      SysUtils,
      Grids,
      comCtrls,
      ExtCtrls,
      Variants,
      AdoDB,
      DB,
      DBGrids,
      Controls,
      winTypes,
      WinProcs,
      IniFiles,
      EasyGrid,
      strUtils,
      uString,
      Classes;

Type
      TuAdoSet=class
      TValue:Array of TStringlist;
      private
           _FQuery:TAdoQuery;
           _FDataSource:TDataSource;
            _FStoreP:TAdoStoredProc;
           _FDBType:integer;
           _FdbName:string;
           _FServerName:string;
           _FLoginID:string;
           _FPassWord:string;
           _FSqlString:string;
           _FParamList:TStringList;
           _saveParam:TStringList;
           _str:TuString;
           procedure setParamList(Value:TStringList);
           procedure setSqlString(Value:string);
           procedure setDBType(dbType:integer);
           procedure setDatabaseName(Value:string);
           procedure ReadIni(inifile:string);

      public
           constructor Create(DbName:string;DbType:integer);overload;

           Function getRecordCount(_Sql:string;paramValues:TStringList):integer;overload;
           //Function getRecordCount(_Sql:string;paramValues:TStringList):string;overload;
           Function getRecordCount(_TableName:string):integer;overload;
           Function getRecordCount:integer;overload;

           Function isRecordExist(_Sql:string;paramValues:TStringList):boolean;overload;
           Function isRecordExist:boolean;overload;

           procedure FillControl(_ctrl:TControl;_Sql:string;paramValues:TStringList;FieldName:string);overload;
           procedure FillControl(_ctrl:TControl;FieldName:string);overload;
           procedure FillControl(_ctrl:TControl;_TableName:string;FieldName:string);overload;
           procedure FillControl(_ctrl:TTreeView;Node:TTreeNode;_Sql:string;paramValues:TStringList;FieldName:string);overload;
           procedure FillControl(_ctrl:TTreeView;Node:TTreeNode;FieldName:string);overload;

           procedure BindToGrid(_ctrl:TControl;_Sql:string;paramValues:TStringList);overload;
           procedure BindToGrid(_ctrl:TControl);overload;
           procedure BindToGrid(AdoQuery:TAdoQuery;_ctrl:TDBGrid;_sql:string;paramValues:TStringList);overload;
           procedure BindToGrid_JK(_ctrl:TControl;_Sql:string;paramValues:TStringList);overload;
           procedure BindToGrid_JK(_ctrl:TControl;_Sql:string;paramValues:TStringList;bCol:integer;eCol:integer;bRow:integer);overload;

           Function getFieldValue(_Sql:string;paramValues:TStringList;FieldName:string):Variant;overload;
           Function getFieldValue(FieldName:string):Variant;overload;

           Function getFieldList(_Sql:string;paramValues:TStringList;FieldName:string):TStringList;overload;
           Function getFieldList(FieldName:string):TStringList;overload;

           procedure  getRecordList(_Sql:string;paramValues:TStringList;Value:Array of TStringList);overload;
           procedure  getRecordList(Value:Array of TStringList);overload;

           Function getFieldSum(_Sql:string;paramValues:TStringList;FieldName:string):Variant;overload;
           Function getFieldSum(FieldName:string):Variant;overload;

           procedure actionRecord(_Sql:string;paramValues:TStringList);overload;
           procedure actionRecord;overload;
           procedure actionSP(_StoreProduceName:string;paramValues:TStringList);
           procedure deleteRecord(_Sql:string;paramValues:TStringList);

           Function getFieldType(_Sql:string;paramValues:TStringList;FieldName:string):TDataType;
           Function getFieldName(_Sql:string;paramValues:TStringList):TStringList;

           Function getFieldString(_Sql:string;paramValues:TStringList;separator:string):string;overload;
           Function getFieldString(separator:string):string;overload;


           procedure setGridTitle(_ctrl:TControl;col:integer;caption:string;colWidth:integer);

      protected

      published
           property dbType:integer Read _FDBType Write setDBType;
           property DatabaseName:string read _FDbName Write setDatabaseName;
           property SqlString:string read _FSqlString Write setSqlString;
           property ParamList:TStringList read _FParamList Write setParamList;
end;

implementation
{
  功能:
  参数:
  用法:
}
constructor TuAdoSet.Create(DbName:string;DbType:integer);
begin
    _FQuery:=TAdoQuery.Create(nil);
    _FStoreP:=TAdoStoredProc.Create(nil);
    _FDBType:=DbType;
    _FdbName:=trim(dbName);
    _FSqlString:='';
    _FParamList:=TStringList.Create;
    _FDataSource:=TDataSource.Create(nil);
    ReadIni('MyFile.ini');
    _saveParam:=TStringList.Create;
    _str:=TuString.Create;
end;
{
  功能:
  参数:
  用法:
}
procedure TuAdoSet.ReadIni(inifile:string);
var
   _inifile:TIniFile;
   CurrentPath:string;
begin
     CurrentPath:=ExtractFilePath(paramStr(0))+'\config\'+trim(inifile);
     try
         if not FileExists(CurrentPath) then
         begin
            _FServerName:='NTserver';
            _FLoginID:='sa';
            _FPassWord:='';
            exit;
         end;
         _inifile:=TIniFile.Create(Currentpath);
         if _FDbType=1 then
         begin
            if _inifile.ValueExists('ServerConfig','serverName') then
            begin
               _FServername:=_inifile.ReadString('serverConfig','serverName','');
            end
            else
               _FServername:='Ntserver';
            if _inifile.ValueExists('ServerConfig','loginName') then
            begin
               _FLoginID:=_inifile.ReadString('serverConfig','loginName','');
            end
            else
               _FLoginID:='sa';
            if _inifile.ValueExists('ServerConfig','loginPwd') then
            begin
               _FPassWord:=_inifile.ReadString('serverConfig','loginPwd','');
            end
            else
               _FPassWord:='';
         end;

     Finally
         _inifile.Free;
     end;
end;
{
  功能:
  参数:
  用法:
}
procedure TuAdoSet.actionSP(_StoreProduceName:string;paramValues:TStringList);
var
    i:integer;
begin
    try
        with _FStoreP do
        begin
             if _FDbType=1 then
             begin
                 ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+trim(_FLoginID)+';Initial Catalog='+_FdbName+';Data Source='+trim(_FserverName)+'';
             end;
             if _FDbType=2 then
             begin
                 ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+_FDbName+';Persist Security Info=False';
             end;
             Close;


             if _StoreProduceName='' then
             begin
                showmessage('请输入存储过程名错误...');
                exit;
             end;
             procedureName:=trim(_StoreProduceName);
             parameters.refresh;
             
             if paramValues.Count<>0 then
             begin
                if paramValues.Count=1 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);

                end;
                if paramValues.Count=2 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                end;
                if paramValues.Count=3 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                end;
                if paramValues.Count=4 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                end;
                if paramValues.Count=5 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                   parameters.ParamByName('@areaName2').Value:=trim(paramValues[4]);
                end;
                if paramValues.Count=6 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                   parameters.ParamByName('@areaName2').Value:=trim(paramValues[4]);
                   parameters.ParamByName('@areaName3').Value:=trim(paramValues[5]);
                end;
                if paramValues.Count=7 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                   parameters.ParamByName('@areaName2').Value:=trim(paramValues[4]);
                   parameters.ParamByName('@areaName3').Value:=trim(paramValues[5]);
                   parameters.ParamByName('@areaName4').Value:=trim(paramValues[6]);

                end;
                if paramValues.Count=8 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                   parameters.ParamByName('@areaName2').Value:=trim(paramValues[4]);
                   parameters.ParamByName('@areaName3').Value:=trim(paramValues[5]);
                   parameters.ParamByName('@areaName4').Value:=trim(paramValues[6]);
                   parameters.ParamByName('@areaName5').Value:=trim(paramValues[7]);
                end;
                if paramValues.Count=9 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                   parameters.ParamByName('@areaName2').Value:=trim(paramValues[4]);
                   parameters.ParamByName('@areaName3').Value:=trim(paramValues[5]);
                   parameters.ParamByName('@areaName4').Value:=trim(paramValues[6]);
                   parameters.ParamByName('@areaName5').Value:=trim(paramValues[7]);
                   parameters.ParamByName('@areaName6').Value:=trim(paramValues[8]);
                end;
                if paramValues.Count=10 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                   parameters.ParamByName('@areaName2').Value:=trim(paramValues[4]);
                   parameters.ParamByName('@areaName3').Value:=trim(paramValues[5]);
                   parameters.ParamByName('@areaName4').Value:=trim(paramValues[6]);
                   parameters.ParamByName('@areaName5').Value:=trim(paramValues[7]);
                   parameters.ParamByName('@areaName6').Value:=trim(paramValues[8]);
                   parameters.ParamByName('@areaName7').Value:=trim(paramValues[9]);
                end;
                if paramValues.Count=11 then
                begin
                   parameters.ParamByName('@beginDate').Value:=trim(paramValues[0]);
                   parameters.ParamByName('@endDate').Value:=trim(paramValues[1]);
                   parameters.ParamByName('@areaName').Value:=trim(paramValues[2]);
                   parameters.ParamByName('@areaName1').Value:=trim(paramValues[3]);
                   parameters.ParamByName('@areaName2').Value:=trim(paramValues[4]);
                   parameters.ParamByName('@areaName3').Value:=trim(paramValues[5]);
                   parameters.ParamByName('@areaName4').Value:=trim(paramValues[6]);
                   parameters.ParamByName('@areaName5').Value:=trim(paramValues[7]);
                   parameters.ParamByName('@areaName6').Value:=trim(paramValues[8]);
                   parameters.ParamByName('@areaName7').Value:=trim(paramValues[9]);
                   parameters.ParamByName('@areaName8').Value:=trim(paramValues[10]);
                end;

             end
             else
             begin
             end;
             ExecProC;
        end;//with
    Finally
        _FQuery.Close;
    end;
end;
{
  功能:
  参数:
  用法:
}
Function TuAdoSet.getRecordCount:integer;
      Function getSqlString:string;
      var
         _selectPos:integer;
         _fromPos:integer;
         _newSql:string;
      begin
         if _FSqlString<>'' then
         begin
            _selectPos:=pos('select',trim(_FSqlString));
            _fromPos:=pos('from',trim(_FSqlString));
            _newSql:=copy(trim(_FSqlString),_selectPos,6)+'  Count(*)  '+copy(trim(_FSqlString),_fromPos,length(trim(_FSqlString))-9);
            result:=_newSql;
         end
         else
         begin
            result:='';
         end;
      end;
var
    i,j:integer;
begin
     try
       with _FQuery  do
       begin
           if _FDbType=1 then
           begin
              ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+trim(_FLoginID)+';Initial Catalog='+_FdbName+';Data Source='+trim(_FserverName)+'';
           end;
           if _FDbType=2 then
           begin
              ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+_FDbName+';Persist Security Info=False';
           end;
           Close;
           Sql.Clear;
           //Sql.Text:=trim(_Sql);
           ///showmessage(getsqlstring);
           if getSqlString='' then
           begin
              Showmessage('Sql string error ');
              exit;
           end;
           Sql.Text:=getSqlString;
           if _str.getSubStringCount(':',getSqlString)<>_FParamList.Count then
           begin
              showmessage('参数的个数不匹配...');
              exit;
           end;
           if _FParamList=nil then
           begin
              showmessage('参数错误...');
              exit;
           end;
           if _FParamList.Count<>0 then
           begin

⌨️ 快捷键说明

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