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

📄 unit_condb.pas

📁 招投标软件代码,很有应用价值,请大家参考下哦,不明白的地方给我留言
💻 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 + -