明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

公布程序時(shí)對(duì)ODBC數(shù)據(jù)源的設(shè)置方法

[摘要]維志,2002.4.8方法1: 修改注冊(cè)表 可在制作安裝程序時(shí),利用安裝程序的制作工具來修改注冊(cè)表,完成ODBC數(shù)據(jù)源的配置, ODBC可用的驅(qū)動(dòng)程序放在系統(tǒng)注冊(cè)表的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI 下, ...
維志,2002.4.8

方法1:  修改注冊(cè)表

       可在制作安裝程序時(shí),利用安裝程序的制作工具來修改注冊(cè)表,完成ODBC數(shù)據(jù)源的配置,
       ODBC可用的驅(qū)動(dòng)程序放在系統(tǒng)注冊(cè)表的  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI  下,
       ODBC的 System DSN 在系統(tǒng)注冊(cè)表的  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 下,
       ODBC的 User DSN 在系統(tǒng)注冊(cè)表的 HKEY_CURRENT_USER\Software\ODBC\ODBC.INI 下
       你可以打開注冊(cè)表看一看就明白了!
             
方法2: 程序設(shè)置法, 可用自己的程式序來完成ODBC的配置,一種簡(jiǎn)單的方法是使用ODBCCP32.DLL中提供的一個(gè)函數(shù)來實(shí)現(xiàn),
       此函數(shù)在Delphi中可聲明如下:

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

   參數(shù)說明:
     hwndParent: 父窗口Handle,當(dāng)指定為0時(shí)不會(huì)出現(xiàn)對(duì)話框,否則會(huì)彈出標(biāo)準(zhǔn)的ODBC配置對(duì)話框
     
     fRequest: 命令請(qǐng)求,用來指明你要完成的功能,其值可為:
               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: 驅(qū)動(dòng)程序名稱,就是在ODBC設(shè)置中顯示的驅(qū)動(dòng)程序名稱,如 Microsoft Access Driver (*.mdb)
     
     lpszAttributes: 此DSN的一些屬性,可有多項(xiàng),各項(xiàng)之間用分號(hào)(;)分隔
     
     
用法如下:     

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中放入一個(gè)Button,在其事件中寫
procedure TForm1.Button1Click(Sender: TObject);
begin
SQLConfigDataSource(
     0,
     ODBC_ADD_SYS_DSN,
     'Microsoft Access Driver (*.mdb)',
     'DSN=MyAccessDB;DBQ=C:\MyDB\MyDB.MDB;DefaultDir=C:\MyDB;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;Description=我的數(shù)據(jù)庫'
  );
end;

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

你也可以在系統(tǒng)注冊(cè)表中看到新加入了HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyAccessDB鍵,其它存放著函數(shù)中指定的參數(shù).

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