熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

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

2022-06-13   來源: Delphi編程 

  方法:  修改注冊表

  可在制作安裝程序時利用安裝程序的制作工具來修改注冊表完成ODBC數據源的配置ODBC可用的驅動程序放在系統注冊表的  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINSTINI  下ODBC的 System DSN 在系統注冊表的  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINI 下ODBC的 User DSN 在系統注冊表的 HKEY_CURRENT_USER\Software\ODBC\ODBCINI 下你可以打開注冊表看一看就明白了!
            

  方法: 程序設置法

  可用自己的程式序來完成ODBC的配置一種簡單的方法是使用ODBCCPDLL中提供的一個函數來實現

       此函數在Delphi中可聲明如下:

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

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

const
  ODBC_ADD_DSN        = ;
  ODBC_CONFIG_DSN     = ;
  ODBC_REMOVE_DSN     = ;
  ODBC_ADD_SYS_DSN    = ;
  ODBC_CONFIG_SYS_DSN = ;
  ODBC_REMOVE_SYS_DSN = ;
 
在Form中放入一個Button在其事件中寫
procedure TFormButtonClick(Sender: TObject);
begin
SQLConfigDataSource(
    
     ODBC_ADD_SYS_DSN
     Microsoft Access Driver (*mdb)
     DSN=MyAccessDB;DBQ=C:\MyDB\MyDBMDB;DefaultDir=C:\MyDB;FIL=MS Access;MaxBufferSize=;PageTimeout=;Description=我的數據庫
  );
end;

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

你也可以在系統注冊表中看到新加入了HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINI\MyAccessDB鍵其它存放著函數中指定的參數

若改為
procedure TFormButtonClick(Sender: TObject);
begin
SQLConfigDataSource(
     Handle
     ODBC_ADD_SYS_DSN
     Microsoft Access Driver (*mdb)
     DSN=MyAccessDB;DBQ=C:\MyDB\MyDBMDB;DefaultDir=C:\MyDB;FIL=MS Access;MaxBufferSize=;PageTimeout=;Description=我的數據庫
  );
end;


From:http://tw.wingwit.com/Article/program/Delphi/201311/25069.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.