程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 發布程序時對ODBC數據源的配置方法

發布程序時對ODBC數據源的配置方法

編輯:Delphi
方法1:  修改注冊表

         可在制作安裝程序時,利用安裝程序的制作工具來修改注冊表,完成ODBC數據源的配置,
         ODBC可用的驅動程序放在系統注冊表的  HKEY_LOCAL_MacHINESOFTWAREODBCODBCINST.INI  下,
         ODBC的 System DSN 在系統注冊表的  HKEY_LOCAL_MacHINESOFTWAREODBCODBC.INI 下,
         ODBC的 User DSN 在系統注冊表的 HKEY_CURRENT_USERSoftwareODBCODBC.INI 下
         你可以打開注冊表看一看就明白了!
              
  方法2: 程序設置法, 可用自己的程式序來完成ODBC的配置,一種簡單的方法是使用ODBCCP32.DLL中提供的一個函數來實現,
         此函數在Delphi中可聲明如下:

       //配置ODBC數據源,成功則返回True
       function SQLConfigDataSource(
           hwndParent: Integer; 
           fRequest: LongInt; 
           lpszDriverString: string;
           lpszAttributes: string
       ): LongBool; stdcall; external 'ODBCCP32.DLL';

     參數說明:
       hwndParent: 父窗口Handle,當指定為0時不會出現對話框,否則會彈出標准的ODBC配置對話框
      
       fRequest: 命令請求,用來指明你要完成的功能,其值可為:
                 ODBC_ADD_DSN        = 1;
                 ODBC_CONFIG_DSN     = 2;
                 ODBC_REMOVE_DSN     = 3;
                 ODBC_ADD_SYS_DSN    = 4;
                 ODBC_CONFIG_SYS_DSN = 5;
                 ODBC_REMOVE_SYS_DSN = 6;
      
       lpszDriverString: 驅動程序名稱,就是在ODBC設置中顯示的驅動程序名稱,如 Microsoft Access Driver (*.mdb)
      
       lpszAttributes: 此DSN的一些屬性,可有多項,各項之間用分號(;)分隔
      
      
  用法如下:    

  const
    ODBC_ADD_DSN        = 1;
    ODBC_CONFIG_DSN     = 2;
    ODBC_REMOVE_DSN     = 3;
    ODBC_ADD_SYS_DSN    = 4;
    ODBC_CONFIG_SYS_DSN = 5;
    ODBC_REMOVE_SYS_DSN = 6;
   
  在Form中放入一個Button,在其事件中寫
  procedure TForm1.Button1Click(Sender: TObject);
  begin
   SQLConfigDataSource(
       0,
       ODBC_ADD_SYS_DSN,
       'Microsoft Access Driver (*.mdb)',
       'DSN=MyAccessDB;DBQ=C:MyDBMyDB.MDB;DefaultDir=C:MyDB;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;Description=我的數據庫'
    );
  end;

  單擊Button1後
  再打開控制面板的ODBC設置程序,可看到其中已加入名為MyAccessDB的DSN

  你也可以在系統注冊表中看到新加入了HKEY_LOCAL_MacHINESOFTWAREODBCODBC.INIMyAccessDB鍵,其它存放著函數中指定的參數.

  若改為
  procedure TForm1.Button1Click(Sender: TObject);
  begin
   SQLConfigDataSource(
       Handle,
       ODBC_ADD_SYS_DSN,
       'Microsoft Access Driver (*.mdb)',
       'DSN=MyAccessDB;DBQ=C:MyDBMyDB.MDB;DefaultDir=C:MyDB;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;Description=我的數據庫'
    );
  end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved