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

📄 dbconfig.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit DBConfig;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ComCtrls, ExtCtrls, ImgList, Dialogs, ExtDlgs,
  DBCtrls, Db, ADODB,adoconed, Spin, FileCtrl, Grids, Outline, DirOutln;

type
  TForm_DBConfig = class(TForm)
    ImageList1: TImageList;
    OpenPictureDialog1: TOpenPictureDialog;
    ADOConnection1: TADOConnection;
    OpenDialog1: TOpenDialog;
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Bevel2: TBevel;
    Label9: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label_server: TLabel;
    Label8: TLabel;
    DBBtn: TSpeedButton;
    ComboBox_DBtype: TComboBox;
    Edit_DBName: TEdit;
    Edit_account: TEdit;
    Edit_password: TEdit;
    Edit_Server: TEdit;
    ConnectBtn: TBitBtn;
    SaveConBtn: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Edt_TimeOut: TSpinEdit;
    TabSheet2: TTabSheet;
    Btn_backup: TButton;
    edt_dbname: TEdit;
    Lbl_backname: TLabel;
    GroupBox1: TGroupBox;
    DriveComboBox1: TDriveComboBox;
    DirectoryListBox1: TDirectoryListBox;
    RadioGroup1: TRadioGroup;
    ADOQ_Backup: TADOQuery;
    Label4: TLabel;
    Edt_backname: TEdit;
    procedure FormShow(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure ComboBox_DBtypeChange(Sender: TObject);
    procedure SaveBtnClick(Sender: TObject);
    procedure DBBtnClick(Sender: TObject);
    procedure SaveConBtnClick(Sender: TObject);
    procedure ConnectBtnClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure E_sampinKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Btn_backupClick(Sender: TObject);
    procedure DriveComboBox1Change(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }
    procedure dispdata();
    Function ConnectTest(DispFlag:boolean):Boolean;
  public
    TmpDBConnectstring:string;
    Tmpcompanylogo:string;
    { Public declarations }
  end;

var
  Form_DBConfig: TForm_DBConfig;

implementation
uses sharevar, sharefun, data;

{$R *.DFM}

//显示当前应用系统所登陆的数据库参数
procedure TForm_DBConfig.dispdata();
begin
       //database setup
       ComboBox_DBtype.ItemIndex:=SysConfig.DBTYPE;
       Edit_DBName.Text:=SysConfig.DBName;
       edit_server.text:=SysConfig.ServerName;
       edit_account.text:=SysConfig.DBACCOUNT;
       edit_password.text:=SysConfig.DBPASSWORD;
       Edt_TimeOut.Value :=SysConfig.DBTimeOut;
end;


procedure TForm_DBConfig.FormShow(Sender: TObject);
begin
        dispdata();
        ComboBox_DBtypeChange(ComboBox_DBtype);
        PageControl1.ActivePageIndex :=ReadIniFile(WsInteger,'TableSheet','FrmDBConfig'); 
end;

procedure TForm_DBConfig.CancelBtnClick(Sender: TObject);
begin
  dispdata();
end;

procedure TForm_DBConfig.ComboBox_DBtypeChange(Sender: TObject);
begin
      case ComboBox_DBtype.ItemIndex of
      0..1:
        begin
                label_server.Visible :=false;
                edit_server.Visible :=false;
                DBBtn.Visible:=true;
        end;
      2:
        begin
                label_server.Visible :=true;
                edit_server.visible:=true;
                DBBtn.Visible:=false;
        end;
      end;
end;

procedure TForm_DBConfig.SaveBtnClick(Sender: TObject);
begin
  if MsgQst(handle,'你确认保存当前的更改设置吗?')=mrNo then exit;
//  if MessageDlg('你确认保存当前的更改设置吗?',mtConfirmation,[mbyes,mbno],0)=mrNo then exit;
end;

procedure TForm_DBConfig.DBBtnClick(Sender: TObject);
begin
        OpenDialog1.Title :='指定数据库的路径';
        OpenDialog1.Filter:='Database file (*.mdb)|*.mdb';
        if OpenDialog1.Execute then
        Edit_DBName.Text:=OpenDialog1.FileName; 
end;

Function TForm_DBConfig.ConnectTest(DispFlag:boolean):Boolean;
var
        ServerName,UID,PWD,DBName:string;
        tmpstr:string;
        DBType:integer;
begin    
        result:=false;
        if  trim(Edit_DBName.Text)='' then
        begin
            MsgErr(handle,'数据库名称不能为空!');
            Edit_DBName.SetFocus;
            exit;
        end;
                  
        if  (ComboBox_DBtype.ItemIndex=2) and (trim(edit_server.text)='') then
        begin
            MsgErr(handle,'数据库服务器名称不能为空!');
            edit_server.SetFocus;
            exit;
        end;

        DBName:=Edit_DBName.Text;
        UID:=edit_account.text;
        PWD:=trim(edit_password.text);
        ServerName:=edit_server.text;
        DBType:=ComboBox_DBtype.ItemIndex;
        case DBType of
         0:     //Access *.mdb
             begin
               tmpstr:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DBName+';';
               tmpstr :=tmpstr + 'Persist Security Info=False;Jet OLEDB:Database Password='+PWD+';';
               tmpstr :=tmpstr + 'Persist Security Info=True;';
               //Connect Testting
               try
                   AdoConnection1.Connected:=false;
                   AdoConnection1.ConnectionString:='';
                   AdoConnection1.ConnectionString:=tmpstr;
                   AdoConnection1.CommandTimeout:=Edt_TimeOut.Value; 
                   SysConfig.DBCONNECTSTRING:=tmpstr; 
                   AdoConnection1.Connected :=True;
               except
                   MsgErr(handle,'连接数据库失败!');
                   exit;
               end;
             end;
//         1:     //Excel  *.xls
//             if not CreateDSN_EXCEL(DSN,DataBase,spath,'D&N Time SoftWare') then exit;
         2:     //SQL Server
             begin
               tmpstr:='Provider=SQLOLEDB.1;Password='+PWD+';';
               tmpstr :=tmpstr + 'Persist Security Info=True;User ID='+UID+';';
               tmpstr :=tmpstr + 'Initial Catalog='+DBName+';Data Source='+ServerName+';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;';
               //Connect Testting
               try
                   AdoConnection1.Connected:=false;
                   AdoConnection1.ConnectionString:='';
                   AdoConnection1.ConnectionString:=tmpstr;
                   AdoConnection1.CommandTimeout:=Edt_TimeOut.Value; 
                   SysConfig.DBCONNECTSTRING:=tmpstr; 
                   AdoConnection1.Connected :=True;
               except
                   MsgErr(handle,'连接数据库失败!');
                   exit;
               end;
             end;

        end;  
       //
       AdoConnection1.Connected :=false;
       result:=true;
       if DispFlag then
       MsgOK(handle,'连接数据库成功!');
end;



procedure TForm_DBConfig.SaveConBtnClick(Sender: TObject);
begin
       if not ConnectTest(false) then exit;
       if MessageDlg('你确认更改当前数据库接联接吗?',mtConfirmation,[mbyes,mbno],0)=mrNo then exit;

       SysConfig.DBTYPE :=ComboBox_DBtype.ItemIndex;
       SysConfig.SECURITY :='True';
       SysConfig.DBName :=Edit_DBName.Text;
       SysConfig.ServerName :=edit_server.text;
       SysConfig.DBACCOUNT :=edit_account.text;
       SysConfig.DBPASSWORD :=edit_password.text;
       SysConfig.DBTimeOut  :=Edt_TimeOut.value;

       WriteIniFile(WsInteger,'DB','DBTYPE',SysConfig.DBTYPE);
       WriteIniFile(WsString,'DB','Data Source',SysConfig.DBName);
       WriteIniFile(WsString,'DB','Password',SysConfig.DBPASSWORD);
       WriteIniFile(WsString,'DB','User ID',SysConfig.DBACCOUNT);
       WriteIniFile(WsString,'DB','Persist Security Info','True');
       WriteIniFile(WsString,'DB','Server',SysConfig.ServerName);
       WriteIniFile(WsInteger,'DB','TimeOut',SysConfig.DBTimeOut); 
end;

procedure TForm_DBConfig.ConnectBtnClick(Sender: TObject);
begin
       ConnectTest(true);
end;

procedure TForm_DBConfig.PageControl1Change(Sender: TObject);
var tmpdatetime:Tdatetime;
begin
  WriteIniFile(WsInteger,'TableSheet','FrmDBConfig',PageControl1.TabIndex );
  if edit_dbname.Text<>'' then
  begin
    edt_dbname.Text:=Edit_DBName.Text;
    GetHostDateTime(DataMod.ADOCon,tmpdatetime);
    Edt_backname.Text:=edt_dbname.Text+'_'+formatdatetime('yyyymmdd',tmpdatetime);
  end;
end;

procedure TForm_DBConfig.E_sampinKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',chr(13),chr(8)]) then abort;
end;

procedure TForm_DBConfig.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;

⌨️ 快捷键说明

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