技术类3(delphi)

来源:互联网 发布:俄罗斯妹子保质期知乎 编辑:程序博客网 时间:2024/04/29 11:03

unit USysDbSet;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls,UdmHr;

type
  TfrmSysDbSet = class(TForm)
    ledtDbName: TLabeledEdit;
    bbtnOk: TBitBtn;
    bbtnExit: TBitBtn;
    bbtnTest: TBitBtn;
    gbInfor: TGroupBox;
    lblDbName: TLabel;
    cbDbName: TComboBox;
    ledtServerName: TLabeledEdit;
    procedure bbtnTestClick(Sender: TObject);
  private
    { Private declarations }
    mdlServerName, mdlDbName,mdlCnnStr :string;
    function TestConn():boolean;
    function buildCnnStr():string;
  public
    { Public declarations }
  end;

var
  frmSysDbSet: TfrmSysDbSet;

implementation

{$R *.dfm}

function TfrmSysDbSet.buildCnnStr: string;
begin
  //ServerName, DbName
  if (Trim(mdlServerName)='') then
    begin
      showmessage('服务器名没有设置,请先设置好相关参数再试!');
      Result:='';
      exit;
    end;
  if (Trim(mdlDbName)='')  then
    begin
      showmessage('数据库名称没有设置,请先设置好相关参数再试!');
      Result:='';
      exit;
    end;
    //此处用sa用户,实际应用时,可建立安全用户  ??
     Result:='Provider=SQLOLEDB.1;Persist Security Info=False;Server='+ Trim(mdlServerName)+';User ID=sa;Password=123456;' +';Database='+Trim(mdlDbName);
end;

function TfrmSysDbSet.TestConn(): boolean;
begin
  if Trim(mdlCnnStr)='' then mdlCnnStr:=buildCnnStr;
  if Trim(mdlCnnStr)='' then exit;        //如果串为空,则退出
  try
    with dmHr do
    begin
      if adoCnnHr.Connected then adoCnnHr.Close ;
      adoCnnHr.ConnectionString :=mdlCnnStr;
      adoCnnHr.Open ;
    end;
    showmessage('数据库连接成功!');
    Result:=true;
  except
    showmessage('数据库连接失败,请重试!');
    Result:=false;
  end;//try
 
end;

procedure TfrmSysDbSet.bbtnTestClick(Sender: TObject);
begin
    //参数设置
    mdlServerName :=Trim(ledtServerName.Text);
    mdlDbName     :=Trim(cbDbName.Text);

    TestConn;
end;

end.