在制作安装程序时如何修改注册表以达到注册ODBC数据源的目的?

qepe 2004-03-15 09:25:49
修改注册表时需要修改或添加哪些子键或键值?谢谢!!在线等待……
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunboy_hb 2004-03-16
  • 打赏
  • 举报
回复
你参考一下下面的代码,配置Sybase SQL Anywhere 5.0的数据库:
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources","room",&
regstring!,"Sybase SQL Anywhere 5.0")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","",&
regstring!,"")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","Driver",&
regstring!,soft_path+"\wod50t.dll")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","UID",&
regstring!,"DBA")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","PWD",&
regstring!,"SQL")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","Start",&
regstring!,"dbeng50 -d -Q -c512")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","DatabaseFile",&
regstring!,soft_path+"\room.db")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","DatabaseName",&
regstring!,"Room")
registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\room","AutoStop",&
regstring!,"yes")
billy145533 2004-03-15
  • 打赏
  • 举报
回复
gz
可以试一试动态配置odbc


Windows系统子目录中的动态链接库Odbcinst.dll提供了一个可以动态地增加、修改和删除数据源的函数SQLConfigDataSource()。该函数的原型如下:

BOOL SQLConfigDataSource(HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);

hwndParent参数是父窗口句柄。如果该值为NULL,将不会显示与父窗口有关的对话框。

fRequest参数可以设置为下面的数值之一:

ODBC_ADD_DSN:增加一个新的用户数据源;
ODBC_CONFIG_DSN:修改(配置)一个已经存在的用户数据源;
ODBC_REMOVE_DSN:删除一个已经存在的用户数据源;
ODBC_ADD_SYS_DSN:增加一个新的系统数据源;
ODBC_CONFIG_SYS_DSN:修改 (配置)一个已经存在的系统数据源;
ODBC_REMOVE_SYS_DSN:删除一个已经存在的系统数据源。

lpszDriver参数用于传递数据库引擎的名字,等同于方法一中strDbType变量。

lpszAttirbutes参数是关键字的值,即一连串的"keyname=value"字符串,每两个字符串之间用 "\"隔开,如 DSN = Personnel Data\0UID=Smith\0DATABASE=Personnel。关于该参数的详细设置请参阅MSDN中SQLConfigDataSource()函数的帮助文档和各种ODBC驱动程序文档。

具体实现

由于VC的缺省库文件中不包含SQLConfigDataSource()函数,因此使用该函数之前需要将odbcinst.h文件包含在工程的头文件中,在工程的Settings属性对话框Link属性页的Object/library modules编辑框中增加odbccp32.lib,同时保证系统目录system32下有文件odbccp32.dll。

仍以Microsoft Access为例,设置数据源名为demo,数据源描述为"示例数据源",那么在需要动态加载数据源的地方加入下列代码即可:

::SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN, "Microsoft Access Driver (*.mdb)", "DSN=demo\0Description=示例数据库");

qepe 2004-03-15
  • 打赏
  • 举报
回复
没有人会吗?难道各位都是程序安装完成后再手工设置的?
qepe 2004-03-15
  • 打赏
  • 举报
回复
各位高手,请快快出招救救小弟吧!

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧