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

📄 uu1.pas.~2~

📁 用串口发送手机短信 需要GSM Mode设备
💻 ~2~
📖 第 1 页 / 共 5 页
字号:
unit uU1;

interface

uses
  ADODB, SysUtils, Classes, WideStrings, Grids, Forms;

//声明全局函数
function autoBackSQL(const sNameSQL,sNameBCK:string):boolean;//备份数据库
function autoRestSQL(const sNameSQL,sNameBCK:string):boolean;//还原数据库

procedure oleAdoQurySub(dbPathName, oldPsd:string; Var adoQury: TADOQuery);
function oleQuryExecS(dbPathName, oldPsd:string; sqls:TWideStrings):boolean;

function sqlSevr(sBase:string):boolean; //判断sql服务器是否开启
function sqlSevr_2(sBase:string):boolean;  //2秒超时
function sqlSevr_15(sBase:string):boolean;  //15秒超时
procedure sqlConnSub(sBase:string; Var adoConn: TADOConnection); //仅设定TADOConnection连接串,要指定连接的数据库名, 服务器,用户,密码由全局变量设定
procedure sqlQurySub(sBase:string; Var adoQury: TADOQuery); //仅设定连接串,要指定连接的数据库名, 服务器,用户,密码由全局变量设定
procedure sqlComdSub(sBase:string; Var adoComd: TADOCommand); //仅设定TADOCommand连接串,要指定连接的数据库名, 服务器,用户,密码由全局变量设定
function sqlCrtDB(name,path :string; Var adoQury: TADOQuery):boolean;
function existDB(name :string; Var adoQury: TADOQuery):boolean; //是否存在此数据库, Qury是正确连接到master库
function sqlCrtTable(flag:boolean; Var adoQury: TADOQuery):boolean; //创建数据库中的表(没有数据)
function wrtDataToSeei(Var Qury: TADOQuery):boolean; //在kj78_seei中写入默认数据(仅在刚创建时)
procedure funCpyTable(flag:boolean; Var Qury: TADOQuery); //从seei中自制表数据到当前库中
function sqlQuryExecS(name :string; var sqls :TWideStrings):boolean; //执行sql语句, name为库名
function sqlQuryExecS_2(var Qury :TADOQuery):boolean; //执行sql语句
function sqlQuryExec(name, sql:string):boolean; //执行sql语句, name为库名
function sqlComdExec(name :string; sql :string):boolean; //执行sql语句, name为库名
function existRecord(name,table,field,value :string):boolean; //是否存在记录, name为库名, table为表名, field为字段名, value为值
function existRecordSql(name,sql :string):boolean; //是否存在记录, 用sql语句判断
function sRecordSql(name,sql :string):string;//用sql语句返回第一条记录的第一字段数据
procedure sqlStrGrd3(name, sql:string; var sg:TStringGrid; s1:string='-'; s2:string='-');
procedure sqlLst(name,sql,c :string; var lst :TStrings); //执行sql语句, name为库名

function tabToRow(tmpStr:string; col:SmallInt; var sg:TStringGrid):LongInt;
function tabToRow2(Str1,Str2:string; col1,col2:SmallInt; var sg:TStringGrid):LongInt;
function tabToRow3(Str1,Str2,Str3:string; col1,col2,col3:SmallInt; var sg:TStringGrid):LongInt;
function tabToRow_s(tmpStr:string; col,colRtn:SmallInt; var sg:TStringGrid):string;

procedure sqlTJVal(name,sql :string; var sg:TStringGrid);//统计最小值,平均值,最大值
function idxTJVal(sCD,sCGQ:string; var sg:TStringGrid):integer;//序号 统计最小值,平均值,最大值
procedure sqlKGState(name,sql,sTim1 :string; var iK,iG,tK,tG,tD:integer; var lst:TStrings);//统计开关量状态变动(过滤)


implementation

//uses
//  uPU,uU3;

function autoBackSQL(const sNameSQL,sNameBCK:string):boolean;//自动备份数据库
Var
  adoConn :TADOConnection;
  rtn :boolean;
begin
  try
    rtn :=false;
    adoConn :=TADOConnection.Create(nil);
    sqlConnSub('master',adoConn);
    adoConn.Execute('Backup database '+sNameSQL+' to Disk='''+ bckPath+sNameBCK+''' with init');
    rtn :=true;
  finally
    FreeAndNil(adoConn);
  end;
  Result :=rtn;
end;

function autoRestSQL(const sNameSQL,sNameBCK:string):boolean;//还原数据库
Var
  adoConn :TADOConnection;
  rtn :boolean;
begin
  try
    rtn :=false;
    adoConn :=TADOConnection.Create(nil);
    sqlConnSub('master',adoConn);
    adoConn.Execute('Restore database '+sNameSQL+' From Disk='''+bckPath+sNameBCK+'''');    
    rtn :=true;
  finally
    FreeAndNil(adoConn);
  end;
  Result :=rtn;
end;

procedure oleAdoQurySub(dbPathName, oldPsd:string; Var adoQury: TADOQuery);
{ 返回 TADOQuery 对象  (引用ADODB)
  dbPathName为带路径的数据库名   (D:\Delphi\数据库\kj78.mdb)
}
begin
  adoQury.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0'
    +';User ID=Admin;Data Source=' + dbPathName
    +';Jet OLEDB:Database Password=' + oldPsd ;
end;

function oleQuryExecS(dbPathName, oldPsd:string; sqls:TWideStrings):boolean;
{ 执行sql语句
  dbPathName为带路径的数据库名   (D:\Delphi\数据库\kj78.mdb)
  sql := 'insert into 传感器(传感器号,传感器名)values(245,''iu'') ';
  当插入重复时不报错, 滤掉此条
}
var
  adoQury: TADOQuery;
  rtn:boolean;
  i : integer;
begin
//coInitialize(nil);
  adoQury := TADOQuery.Create(nil);

  adoQury.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0'
    +';User ID=Admin;Data Source=' + dbPathName
    +';Jet OLEDB:Database Password=' + oldPsd ;

    if sqls.Count>0 then begin
        for i:=0 to sqls.Count-1 do begin
          try try
            adoQury.SQL.Text := sqls[i];
            adoQury.ExecSQL;

            Application.ProcessMessages;
          except
          end finally
          end;
        end;
    end;

    adoQury.Close;
    FreeAndNil( adoQury );
//coUninitialize;
  rtn := true;
  Result := rtn;
end;













function sqlSevr(sBase:string):boolean;
//判断sql服务器是否开启        master
var
  rtn:boolean;
  adoConn: TADOConnection;
begin
  rtn :=false;
  adoConn :=TADOConnection.Create(nil);
  adoConn.ConnectionTimeout :=10;
  adoConn.ConnectionString :='Provider=SQLOLEDB.1;Password='+LogPasd+';Persist Security Info=True;User ID='+LogUser+';Initial Catalog='+sBase+';Data Source='+LogSevr;
  try try
    adoConn.Open;
    rtn :=true;
  except end finally
    adoConn.Close;
    FreeAndNil( adoConn );    //SysUtils单元
  end;
  Result :=rtn;
end;

function sqlSevr_2(sBase:string):boolean;  //2秒超时
//判断sql服务器是否开启        master
var
  rtn:boolean;
  adoConn: TADOConnection;
begin
  rtn :=false;
  adoConn :=TADOConnection.Create(nil);
  adoConn.ConnectionTimeout :=2;
  adoConn.ConnectionString :='Provider=SQLOLEDB.1;Password='+LogPasd+';Persist Security Info=True;User ID='+LogUser+';Initial Catalog='+sBase+';Data Source='+LogSevr;
  try try
    adoConn.Open;
    rtn :=true;
  except end finally
    adoConn.Close;
    FreeAndNil( adoConn );    //SysUtils单元
  end;
  Result :=rtn;
end;

function sqlSevr_15(sBase:string):boolean;  //12秒超时
//判断sql服务器是否开启        master
var
  rtn:boolean;
  adoConn: TADOConnection;
begin
  rtn :=false;
  adoConn :=TADOConnection.Create(nil);
  adoConn.ConnectionTimeout :=15;
  adoConn.ConnectionString :='Provider=SQLOLEDB.1;Password='+LogPasd+';Persist Security Info=True;User ID='+LogUser+';Initial Catalog='+sBase+';Data Source='+LogSevr;
  try try
    adoConn.Open;
    rtn :=true;
  except end finally
    adoConn.Close;
    FreeAndNil( adoConn );    //SysUtils单元
  end;
  Result :=rtn;
end;

procedure sqlConnSub(sBase:string; Var adoConn: TADOConnection); //仅设定TADOConnection连接串,要指定连接的数据库名, 服务器,用户,密码由全局变量设定
begin
  adoConn.Close;
  adoConn.ConnectionString :='Provider=SQLOLEDB.1;Password='+LogPasd+';Persist Security Info=True;User ID='+LogUser+';Initial Catalog='+sBase+';Data Source='+LogSevr;
end;

procedure sqlQurySub(sBase:string; Var adoQury: TADOQuery); //仅设定TADOQuery连接串,要指定连接的数据库名, 服务器,用户,密码由全局变量设定
begin
  adoQury.Close;
  adoQury.ConnectionString :='Provider=SQLOLEDB.1;Password='+LogPasd+';Persist Security Info=True;User ID='+LogUser+';Initial Catalog='+sBase+';Data Source='+LogSevr;
end;

procedure sqlComdSub(sBase:string; Var adoComd: TADOCommand); //仅设定TADOCommand连接串,要指定连接的数据库名, 服务器,用户,密码由全局变量设定
begin
  adoComd.ConnectionString :='Provider=SQLOLEDB.1;Password='+LogPasd+';Persist Security Info=True;User ID='+LogUser+';Initial Catalog='+sBase+';Data Source='+LogSevr;
end;

function sqlCrtDB(name,path :string; Var adoQury: TADOQuery):boolean;
//创建数据库,以master连接串登陆
//name为要创建的数据库名   path为要创建的数据库路径
var
  sql :string;
  rtn :boolean;
begin
  rtn :=false;
  adoQury.Close;
  adoQury.SQL.Text :='select name from sysdatabases where name='''+name+'''';
  adoQury.Open ;
  if adoQury.RecordCount=0 then begin
     adoQury.Close;
     sql := 'CREATE DATABASE '+name+' On Primary(Name='+name+'_data, FileName='''+path+name+'.mdf'')   Log On(Name='+name+'_log, FileName='''+path+name+'.ldf'')';
     adoQury.SQL.Text :=sql;
     adoQury.ExecSQL;   //不用open和active=true, 因返回值报错
     rtn :=true;
  end;
  adoQury.Close;

  Result :=rtn;
end;

function existDB(name :string; Var adoQury: TADOQuery):boolean; //是否存在此数据库, Qury是正确连接到master库
var
  rtn :boolean;
begin
  rtn :=false;
  adoQury.Close;
  adoQury.SQL.Text :='select name from sysdatabases where name='''+name+'''';
  adoQury.Open ;
  if adoQury.RecordCount>0 then begin
     rtn :=true;
  end;
  adoQury.Close;

  Result :=rtn;
end;

function sqlCrtTable(flag:boolean; Var adoQury: TADOQuery):boolean; //创建数据库中的表(没有数据)
//隐含了事务处理,当字段数不正确时全不写入,当关键字重复时仅跳过重复行
//flag=true创建seei库  false创建当前库
var
  sql :string;

⌨️ 快捷键说明

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