维志,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;
|