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

📄 ufrmcondbserver.pas

📁 面向对象数据库开发时
💻 PAS
字号:
unit UFrmConDBServer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UFrmBase, StdCtrls, ExtCtrls, Buttons, IniFiles;

type
  TFrmConDBServer = class(TFrmBase)
    Panel1: TPanel;
    Label3: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    cbServerIP: TComboBox;
    edtUserName: TEdit;
    edtPassWord: TEdit;
    btnOK: TButton;
    btnExit: TButton;
    procedure btnExitClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
    
  public
    { Public declarations }
    //设置并显示数据库连接参数
  end;

var
  FrmConDBServer: TFrmConDBServer;
  ConResult: boolean=False;

//连接数据库服务器,返回成功或失败
function ConnectDBServer: boolean;

implementation

uses UDM, UFrmMain, USysPublic;

{$R *.dfm}

function ConnectDBServer: boolean;
begin
  FrmConDBServer := TFrmConDBServer.Create(nil);
  FrmConDBServer.ShowModal;
  FrmConDBServer.Free;
  Result := ConResult;
end;

procedure TFrmConDBServer.btnExitClick(Sender: TObject);
begin
  inherited;
  if FrmMain = nil then
    Halt(0) 
  else
  begin
    Self.Close;
    ConResult := False;
  end;
end;

procedure TFrmConDBServer.btnOKClick(Sender: TObject);
begin
  inherited;
  with DM do
  begin
    try
      ADOCon.Close;
      ADOCon.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;'
        + ';User ID=' + edtUserName.Text
        + ';Password=' + edtPassWord.Text
        + ';Initial Catalog=;'
        + 'Data Source=' + cbServerIP.Text
        + ';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;'
        + 'Use Encryption for Data=False;Tag with column collation when possible=False';
      ADOCon.Open;
      ConResult := True;

      IniFile.WriteString('SysIni', 'ServerIP', cbServerIP.Text);
      IniFile.WriteString('SysIni', 'UserName', edtUserName.Text);
      IniFile.WriteString('SysIni', 'PassWord', edtPassWord.Text);

      Self.Close;
    except
      MessageBox(Handle, '数据库连接失败!', '错误', MB_OK);
    end;
  end;
end;

procedure TFrmConDBServer.FormShow(Sender: TObject);
var
  strServerIP,
  strUserName,
  strPassWord: string;
begin
  inherited;
  strServerIP := IniFile.ReadString('SysIni', 'ServerIP', '.');
  strUserName := IniFile.ReadString('SysIni', 'UserName', 'sa');
  strPassWord := IniFile.ReadString('SysIni', 'PassWord', '');

  cbServerIP.Text := strServerIP;
  edtUserName.Text := strUserName;
  edtPassWord.Text := strPassWord;
end;

procedure TFrmConDBServer.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  if (ConResult = False) and (FrmMain = nil) then
    Halt(0) 
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -