⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urmcfgdbmysql.pas

📁 数据库通用工具
💻 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 + -