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

📄 dataset.pas

📁 邮件系统的代码
💻 PAS
字号:
unit DataSet;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ADODB_TLB;

type
TDataSet=class
  private
    FConnString: String;
    FConnection:TConnection;
    procedure SetConnectionStr(const Value: String);
  public
    Property strConnection:String read FConnString write SetConnectionStr;
    Function OpenDb(strConnection:String = ''):String;
    Function CloseDb():String;
    Function ExecSQL(lSQL:String):String;
    Function GetData(SelectSQL:String;var ErrText:String):TRecordSet;overload;
    Function GetData(SelectSQL:String):TRecordSet;overload;
  end;

implementation

procedure TDataSet.SetConnectionStr(const Value: String);
begin
  If Trim(Value) <> '' Then
    FConnString := Value;
end;

function TDataSet.OpenDb(strConnection: String): String;
begin
  Result:='';
  FConnString:=strConnection;
  If FConnString='' then
    FConnString := 'Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=MarketDFMS3.0;Data Source=SKYDOT';
  if not Assigned(FConnection) then
    FConnection := TConnection.Create(Application);
  try
    If FConnection.State <> adStateOpen then 
      FConnection.Open(FConnString,'','',0);
  except
    on e:Exception do result:=e.Message;
  end;
end;

function TDataSet.CloseDb(): String;
begin
  Result:='';
  If FConnection.State = adStateOpen Then
  begin
    Try
        FConnection.Close;
    except
      on e:Exception do Result:=e.Message;
    end;
    FConnection := nil;
  end;
end;

function TDataSet.ExecSQL(lSQL: String): String;
var
  lolevar:OleVariant;
begin
  result:='';
  try
    FConnection.Execute(lSQL,lolevar,0);
  except
    on e:Exception do Result :=e.Message;
  end;
end;

function TDataSet.GetData(SelectSQL: String; var ErrText: String): TRecordSet;
var
  lRecordSet:TRecordSet;
begin
  Result := nil ;
  ErrText:='';
  if pos('SELECT',UpperCase(SelectSQL))=0 then
  begin
    ErrText := '查询语句中缺少[SELECT]关键字';
    exit;
  end;
  lRecordSet := TRecordSet.Create(Application);
 try
  lRecordSet.Open(SelectSQL, FConnString, adOpenDynamic,adLockOptimistic, adCmdUnspecified);
  except
    on e:Exception do ErrText := e.Message;
  end;
  Result := lRecordSet;
end;

function TDataSet.GetData(SelectSQL: String): TRecordSet;
var
  lErrText:String;
begin
  Result:= GetData(SelectSQL,lErrText);
end;

end.

⌨️ 快捷键说明

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