(摘自)http://jxlearnew.blog.163.com/blog/static/549786592007102451431413/
这里介绍一种用Delphi来实现动态注册的方法,希望对各位有所帮助. 这里我们直接使用ODBCCP32.DLL中提供的SQLConfigDataSource函数来实现,该函数在在Delphi中可声明如下: //配置ODBC数据源,成功则返回True function SQLConfigDataSource( hwndParent: Integer; fRequest: LongInt; lpszDriverString: string; lpszAttributes: string ): LongBool; stdcall; external ''''ODBCCP32.DLL''''; 参数说明: 1、hwndParent: 父窗口Handle,当指定为0时不会出现对话框,否则会弹出标准的ODBC配置对话框 2、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; 3、lpszDriverString: 驱动程序名称,就是在ODBC设置中显示的驱动程序名称,如SQL Server以及 Microsoft Access Driver (*.mdb) 4、lpszAttributes: 此DSN的一些属性,可有多项,各项之间用分号(;)分隔
首先在Delphi中对以上函数进行声明之后,接下来的步骤如下: 1、声明常量: 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; 2、在Form中放入一个Button,在其事件中写 procedure TForm1.Button1Click(Sender: TObject); begin SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,//~换成Handle就是手工配置 'SQL Server', //数据库类型 'DSN=house'#0 + //数据源名称 'Server=(local)'#0 + //SQL Server服务器名 'Database=房屋销售数据库'#0 + //数据库名称 'Description=动态配置ODBC'#0 //描述 ); end; 单击Button1后,数据源house的信息就已经成功写入到注册表中 以上方法已经在Delphi 7.0下测试通过,不过在应用本方法前首先确保你的机器上已经正确安装了Microsoft SQL Server2000数据库系统,并且 Database = 房屋销售数据库 是存在的,否则可能会产生未知的错误。
|
请发表评论