📄 dbconnectfrm.~pas
字号:
unit DBConnectFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, INIFiles;
type
TfrmDBConnect = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
edtServerName: TEdit;
edtDatabaseName: TEdit;
edtUserName: TEdit;
edtPassword: TEdit;
btnOK: TBitBtn;
btnCancel: TBitBtn;
procedure btnOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
private
{ Private declarations }
public
//function TestDBConnect() boolean;
{ Public declarations }
end;
procedure ReadFromIni(var aServerName, aDatabaseName, aUserName, aPassword:
string); //读取配置文件信息
procedure WriteToIni(const aServerName, aDatabaseName, aUserName, aPassword:
string); //向配置文件写入信息
function DBConnectExecute(aClass: TFormClass): boolean;
//用于打开窗体,并判断是否配置成功
var
frmDBConnect: TfrmDBConnect;
Connected: Boolean;
implementation
uses MainForm, DMAgency;
{$R *.dfm}
//用于打开窗体,并判断是否配置成功
function DBConnectExecute(aClass: TFormClass): boolean;
begin
with aClass.Create(Application) do
begin
try
showModal;
finally
free;
result := Connected;
end;
end;
end;
//读取配置文件信息
procedure ReadFromIni(var aServerName, aDatabaseName, aUserName, aPassword:
string);
var
IniFile: TIniFile;
FileName: string;
begin
FileName := ExtractFilePath(application.ExeName) + '\DB.ini';
IniFile := TIniFile.Create(FileName);
aServerName := IniFile.ReadString('DB', 'ServerName', '');
aDatabaseName := IniFile.ReadString('DB', 'DatabaseName', '');
aUserName := IniFile.ReadString('DB', 'UserName', '');
aPassword := IniFile.ReadString('DB', 'Password', '');
IniFile.Free;
end;
//向配置文件写入信息
procedure WriteToIni(const aServerName, aDatabaseName, aUserName, aPassword:
string);
var
IniFile: TIniFile;
FileName: string;
begin
FileName := ExtractFilePath(application.ExeName) + '\DB.ini';
IniFile := TIniFile.Create(FileName);
IniFile.WriteString('DB', 'ServerName', aServerName);
IniFile.WriteString('DB', 'DatabaseName', aDatabaseName);
IniFile.WriteString('DB', 'UserName', aUserName);
IniFile.WriteString('DB', 'Password', aPassword);
IniFile.Free;
end;
//写入ini,并测试是否连接上
procedure TfrmDBConnect.btnOKClick(Sender: TObject);
var
Connstr, serverName, databaseName, userName, password: string;
begin
writeToIni(edtServerName.Text, edtDatabaseName.Text, edtUserName.Text,
edtPassword.Text);
readFromIni(serverName, databaseName, userName, password);
Connstr := 'Provider=SQLOLEDB.1;Password=' + password +
';Persist Security Info=True;User ID=';
Connstr := Connstr + userName + ';Initial Catalog=' + databaseName +
';Data Source='
+ serverName;
localstr := Connstr;
DM.conMain.ConnectionString := Connstr;
try
DM.conMain.Open;
except
begin
Application.MessageBox('数据库连接错误,请重新连接!', '系统提示',
MB_OK + MB_ICONWARNING);
end;
end;
if DM.adoconnection1.Connected = true then
begin
Application.MessageBox('数据库连接成功!', '系统提示', MB_OK +
MB_ICONINFORMATION);
close;
end;
end;
//当窗体被创建时,将配置文件信息显示到窗体上
procedure TfrmDBConnect.FormCreate(Sender: TObject);
var
serverName, databaseName, userName, password: string;
begin
readFromIni(serverName, databaseName, userName, password);
frmDBConnect.edtServerName.Text := serverName;
frmDBConnect.edtDatabaseName.Text := databaseName;
frmDBConnect.edtUserName.Text := userName;
frmDBConnect.edtPassword.Text := password;
end;
procedure TfrmDBConnect.btnCancelClick(Sender: TObject);
begin
Application.Terminate;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -