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.