維志,2002.4.8
方法1: 修改注冊表
可在制作安裝程序時,利用安裝程序的制作工具來修改注冊表,完成ODBC數據源的配置, ODBC可用的驅動程序放在系統注冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI 下, ODBC的 System DSN 在系統注冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 下, ODBC的 User DSN 在系統注冊表的 HKEY_CURRENT_USER\Software\ODBC\ODBC.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:\MyDB\MyDB.MDB;DefaultDir=C:\MyDB;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;Description=我的數據庫' ); end;
單擊Button1后 再打開控制面板的ODBC設置程序,可看到其中已加入名為MyAccessDB的DSN
你也可以在系統注冊表中看到新加入了HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyAccessDB鍵,其它存放著函數中指定的參數.
若改為 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=我的數據庫' ); end;
|