📄 unit_condb.pas
字号:
unit Unit_ConDB;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls,Registry;
type
TFrm_ConDB = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
Image2: TImage;
Label6: TLabel;
Edt_LoginID: TEdit;
Edt_LoginPassword: TEdit;
Cb_Server: TComboBox;
Rb_WindowNTMode: TRadioButton;
Rb_SQLServerMode: TRadioButton;
Cb_DBName: TComboBox;
TabSheet2: TTabSheet;
Label5: TLabel;
Image4: TImage;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label7: TLabel;
edt_RemotUser: TEdit;
edt_RemotPwd: TEdit;
edt_RemotIP: TEdit;
edt_DBName: TEdit;
Panel3: TPanel;
Button5: TButton;
Button6: TButton;
btn_TestConnect: TButton;
TabSheet3: TTabSheet;
Label11: TLabel;
Edt_BServer: TEdit;
procedure LoadData;
function SaveData(aInt:Integer): Boolean;
procedure FormCreate(Sender: TObject);
procedure Cb_ServerDropDown(Sender: TObject);
procedure Cb_DBNameDropDown(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Cb_ServerChange(Sender: TObject);
procedure Rb_SQLServerModeClick(Sender: TObject);
procedure Rb_WindowNTModeClick(Sender: TObject);
procedure btn_TestConnectClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure Button6Click(Sender: TObject);//加载数据
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_ConDB: TFrm_ConDB;
implementation
uses
unit_public,DataAccessCommonShell,datamodule;
{$R *.dfm}
procedure TFrm_ConDB.LoadData;
var
Reg : TRegistry;
begin
Reg:=Tregistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('\Software\HeadSoft\HeadZtb\DBLogin',true);
Cb_Server.Text := Reg.ReadString('DBServer');
Rb_SQLServerMode.Checked := LowerCase(Reg.ReadString('LoginMode'))='sqlserver';
Rb_WindowNTMode.Checked := not Rb_SQLServerMode.Checked;
Edt_LoginID.Text := Reg.ReadString('LoginID');
Edt_LoginPassword.Text := Reg.ReadString('LoginPassword');
Cb_DBName.Text := Reg.ReadString('DBName');
//
Edt_BServer.Text:=reg.ReadString('BsServer');
//远程数据库连接字符串
edt_RemotIP.Text := Reg.ReadString('RemoteDBServer');
edt_RemotUser.Text := Reg.ReadString('RemoteLoginID');
edt_RemotPwd.Text := Reg.ReadString('RemoteLoginPassword');
edt_DBName.Text := Reg.ReadString('RemoteDBName');
Reg.CloseKey;
finally
Reg.Destroy;
end;
end;
function TFrm_ConDB.SaveData(aInt:Integer): Boolean;
var
Reg: TRegistry;
begin
Result := False;
Reg := TRegistry.Create;
try
//本地数据库连接
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('\Software\HeadSoft\HeadZtb\DBLogin',true);
if aInt=0 then
begin
if IsADOConnect(datamodule1.ADOMainConn,cb_server.Text,Rb_WindowNTMode.Checked,Edt_LoginID.Text,Edt_LoginPassword.Text
Cb_DBName.Text) then
begin
Reg.WriteString('DBServer',Cb_Server.Text);
if Rb_SQLServerMode.Checked then
Reg.WriteString('LoginMode','sqlserver')
else
Reg.WriteString('LoginMode','winnt');
Reg.WriteString('LoginID',Edt_LoginID.Text);
Reg.WriteString('LoginPassword',Edt_LoginPassword.Text);
Reg.WriteString('DBName',Cb_DBName.Text);
end
else
begin
application.MessageBox('参数设置错误','提示',MB_OK + MB_ICONERROR);
Reg.CloseKey;
Reg.Free;
exit;
end;
end
else if aInt=1 then
begin
//远程数据库连接
Reg.WriteString('BsServer',Edt_BServer.Text);
end
else if aInt=2 then
begin
//远程数据库连接
Reg.WriteString('RemoteDBServer', edt_RemotIP.Text);
Reg.WriteString('RemoteLoginID', edt_RemotUser.Text);
Reg.WriteString('RemoteLoginPassword', edt_RemotPwd.Text);
Reg.WriteString('RemoteDBName', edt_DBName.Text);
end;
Reg.CloseKey;
finally
Reg.Free;
end;
Result := True;
showmessage('保存成功')
end;
procedure TFrm_ConDB.FormCreate(Sender: TObject);
begin
tabsheet2.TabVisible:=false;
pagecontrol1.ActivePageIndex:=0;
loaddata;
end;
procedure TFrm_ConDB.Cb_ServerDropDown(Sender: TObject);
begin
if Cb_Server.Items.Count = 0 then
GetSQLServerList(Cb_Server.Items);
end;
procedure TFrm_ConDB.Cb_DBNameDropDown(Sender: TObject);
begin
if Cb_DBName.Items.Count=0 then
GetDatabaseList(Rb_WindowNTMode.Checked,cb_server.Text,Edt_LoginID.Text,Edt_LoginPassword.Text,Cb_DBName.Items)
end;
procedure TFrm_ConDB.Button5Click(Sender: TObject);
begin
if savedata(pagecontrol1.ActivePageIndex) then
begin
ReadDBLogin;
modalresult:=1;
end;
{if pagecontrol1.Pages[1].TabVisible then
begin
if pagecontrol1.ActivePageIndex=0 then
begin
if IsADOConnect(datamodule1.ADOMainConn,cb_server.Text,Rb_WindowNTMode.Checked,Edt_LoginID.Text,Edt_LoginPassword.Text
Cb_DBName.Text) then
begin
if savedata then
begin
ReadDBLogin;
modalresult:=1;
end
else
begin
application.MessageBox('保存失败','提示',MB_OK + MB_ICONERROR);
end;
end
else
begin
application.MessageBox('参数设置错误','提示',MB_OK + MB_ICONERROR);
exit;
end;
end
else
begin
if TestConnectServer(False,edt_RemotIP.Text,edt_RemotUser.Text,edt_RemotPwd.Text,edt_DBName.Text) = 1 then
begin
if savedata then
begin
ReadDBLogin;
Application.MessageBox('连接成功!','提示',MB_OK + MB_ICONINFORMATION);
modalresult:=1;
end
else
begin
application.MessageBox('保存失败','提示',MB_OK + MB_ICONERROR);
end;
end
else
Application.MessageBox('连接失败!','提示',MB_OK + MB_ICONERROR);
end;
end
else
begin
if IsADOConnect(datamodule1.ADOMainConn,cb_server.Text,Rb_WindowNTMode.Checked,Edt_LoginID.Text,Edt_LoginPassword.Text
Cb_DBName.Text) then
begin
if savedata then
begin
ReadDBLogin;
modalresult:=1;
end
else
begin
application.MessageBox('保存失败','提示',MB_OK + MB_ICONERROR);
end;
end
else
begin
application.MessageBox('参数设置错误','提示',MB_OK + MB_ICONERROR);
exit;
end;
end; }
end;
procedure TFrm_ConDB.Cb_ServerChange(Sender: TObject);
begin
Cb_DBName.Items.Clear;
end;
procedure TFrm_ConDB.Rb_SQLServerModeClick(Sender: TObject);
begin
Edt_LoginID.Enabled:=True;
Edt_LoginPassword.Enabled:=True;
end;
procedure TFrm_ConDB.Rb_WindowNTModeClick(Sender: TObject);
begin
Edt_LoginID.Enabled:=False;
Edt_LoginPassword.Enabled:=False;
end;
procedure TFrm_ConDB.btn_TestConnectClick(Sender: TObject);
begin
//测试数据库连接
if TestConnectServer(False,edt_RemotIP.Text,edt_RemotUser.Text,edt_RemotPwd.Text,edt_DBName.Text) = 1 then
Application.MessageBox('连接成功!','提示',MB_OK + MB_ICONINFORMATION)
else
Application.MessageBox('连接失败!','提示',MB_OK + MB_ICONERROR);
end;
procedure TFrm_ConDB.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=Cafree;
end;
procedure TFrm_ConDB.FormDestroy(Sender: TObject);
begin
Frm_ConDB:=nil;
end;
procedure TFrm_ConDB.Button6Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -