📄 urmcfgdbmysql.pas
字号:
unit UrmCfgDBMySQL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UfrmModel, ActnList, ExtCtrls, StdCtrls, Buttons, DB, DBTables;
type
TfrmCfgDBMySQL = class(TfrmModel)
Panel1: TPanel;
Panel2: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
edtDB: TEdit;
edtUser: TEdit;
edtPassword: TEdit;
edtServer: TEdit;
edtPort: TEdit;
dbTest: TDatabase;
bbtODBC: TBitBtn;
edtName: TComboBox;
bbtRefresh: TBitBtn;
CheckBox1: TCheckBox;
procedure BitBtn1Click(Sender: TObject);
procedure bbtODBCClick(Sender: TObject);
procedure bbtRefreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmCfgDBMySQL: TfrmCfgDBMySQL;
implementation
uses Udbm;
{$R *.dfm}
procedure TfrmCfgDBMySQL.BitBtn1Click(Sender: TObject);
var
vDatabaseParam:TDatabaseParam;
sLocalIP,ss : string;
sName,sServer,sDB,sUser,sPass : string;
iPort : Integer;
begin
inherited;
sName := Trim(edtName.Text);
if sName='' then
begin
if edtName.CanFocus then edtName.SetFocus;
Exit;
end;
sServer := Trim(edtServer.Text);
if sServer='' then
begin
if edtServer.CanFocus then edtServer.SetFocus;
Exit;
end;
iPort := StrToIntDef(edtPort.Text,-1);
if iPort<0 then
begin
if edtPort.CanFocus then edtPort.SetFocus;
edtPort.SelectAll;
Exit;
end;
sDB := Trim(edtDB.Text);
if sDB='' then
begin
if edtDB.CanFocus then edtDB.SetFocus;
Exit;
end;
sUser := Trim(edtUser.Text);
if sUser='' then
begin
if edtUser.CanFocus then edtUser.SetFocus;
Exit;
end;
sPass := Trim(edtPassword.Text);
ShowMSG('连接数据库可能需要几分钟时间,'+#10#13+'请耐心等候!');
if CheckBox1.Checked then//没有则创建数据源
begin
//CreateOdbc(DateSourceName,Server,sPORT,sUser,sPWD,DataBase:String);
if CreateOdbcMySQL( sName,sServer,IntToStr(iPort),sUser,sPass,sDB ) <=0 then
begin
ShowMSG('创建 ODBC 失败!');
Exit;
end;
end;
try
with dbTest do
begin
if Connected then Connected := false;
Params.Values['ODBC DSN'] := sName;//edtName.Text;
Params.Values['DATABASE NAME'] := sDB;//edtDB.Text;
Params.Values['USER NAME'] := sUser;//edtUser.Text;
Params.Values['PASSWORD'] := sPass;//edtPassword.Text;
Connected := true;
if dbTest.Connected then
begin
//--------------------------------------
//保存数据库配置
with databaseParam do
begin
ODBCName := edtName.Text;//Params.Values['ODBC DSN'];
DatabaseName := edtDB.Text;//Params.Values['DATABASE NAME'];
UserName := edtUser.Text;//Params.Values['USER NAME'];
Password := edtPassword.Text;//Params.Values['PASSWORD'];
sPort := edtPort.Text;
saveDatabaseParam(databaseParam,'DBMySQL');
end;//with databaseParam do
//--------------------------------------
modalResult := 1;
end;//if dbTest.Connected then
end;
except
exit;
end;
end;
procedure TfrmCfgDBMySQL.bbtODBCClick(Sender: TObject);
begin
inherited;
URLink('odbcad32');
end;
procedure TfrmCfgDBMySQL.bbtRefreshClick(Sender: TObject);
begin
inherited;
dbm.listODBCs( edtName.Items );
end;
procedure TfrmCfgDBMySQL.FormShow(Sender: TObject);
begin
inherited;
bbtRefresh.Click;
with databaseParam do
begin
edtName.Text := ODBCName;//Params.Values['ODBC DSN'];
edtPort.Text := sPort;
edtDB.Text := DatabaseName;//Params.Values['DATABASE NAME'];
edtUser.Text := UserName;//Params.Values['USER NAME'];
edtPassword.Text := Password;//Params.Values['PASSWORD'];
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -