可在制作安裝程序時,利用安裝程序的制作工具來修改注冊表,完成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;