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

📄 uu1.pas

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

interface

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

//声明全局函数

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 existDB2(name :string):boolean; //是否存在此数据库

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;


implementation

uses
  uPU;//,uU3;


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 existDB2(name :string):boolean; //是否存在此数据库
var
  adoQury: TADOQuery;
  rtn :boolean;
begin
  rtn :=false;
  adoQury:=TADOQuery.Create(nil);
  sqlQurySub('master',adoQury);
  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;
  FreeAndNil(adoQury);
end;



function sqlQuryExecS(name :string; var sqls :TWideStrings):boolean; //执行sql语句, name为库名
var
  Qury :TADOQuery;
  rtn:boolean;
begin
  rtn := false;
  Qury := TADOQuery.Create(nil);

  sqlQurySub(name,Qury);
  if sqls.Count>0 then begin
      Qury.SQL :=sqls;
      try try
        Qury.ExecSQL; //隐含了事务处理,当字段数不正确时全不写入,当关键字重复时仅跳过重复行
        rtn :=true;
      except end finally
        Qury.Close;
      end;
  end;
  Qury.Close;
  FreeAndNil( Qury );

  Result := rtn;
end;

function sqlQuryExecS_2(var Qury :TADOQuery):boolean; //执行sql语句
var
  rtn:boolean;
begin
  rtn := false;
  if Qury.SQL.Count>0 then begin
      try try
        Qury.ExecSQL; //隐含了事务处理,当字段数不正确时全不写入,当关键字重复时仅跳过重复行
        rtn :=true;
      except end finally
        Qury.Close;
      end;
  end;
  Qury.Close;

  Result := rtn;
end;

⌨️ 快捷键说明

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