推荐自动注册ODBC的解决方案(已成功)

xiegang2004 2004-04-03 08:36:48
前段时间为我们系做一个MIS系统
需要一个自动注册ODBC的程序,
通过jedensen大哥的指导,和自己不断的摸索,
终于实验成功,
今天先把源代码帖上来,
改天在详细讲解.

RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC data Sources","dyxx",RegString!,"SQL Server")

Registryset("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dyxx","",REGSTRING!,"")

REGISTRYSET("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dyxx","Database",REGSTRING!,"dyxx")

REGISTRYSET("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dyxx","Driver",REGSTRING!,"D:\WINDOWS\System32\sqlsrv32.dll")

REGISTRYSET("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dyxx","LastUser",REGSTRING!,"xg")

REGISTRYSET("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dyxx","Server",REGSTRING!,"(local)")

REGISTRYSET("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dyxx","Trusted_Connection",REGSTRING!,"Yes")

把上述程序放到你的应用程序的OPEN时间中.更好的方法是将上述程序写成一个函数,本例将上述代码放在函数 f_odbc()中,并在代码最好加一个return语句.
并且建议大家通过INI文件控制只有在程序第一次运行是执行这个自动注册程序.
integer odbc_init

odbc_init=profileint("system.ini","start","first",1)

if odbc_init=1 then
f_odbc();//上述代码的函数名
setprofilestring("system.ini","start","first","0")
end if

其中system.ini文件应该包含以下内容:
[start]
first=1
//1表示程序自安装后一次都还没有运行,
//0表示本自动注册程序已经被运行过了.
//当然,你可以认为的来修改这个地方,以使你的自动注册程序再运行一遍.
//一般没有这个必要.

这个程序在下面平台成功运行:
系统目录是D盘
SQL-SERVER2000采用系统windows认证
SQL-SERVER2000允许默认的ID和密码访问

如果你的是其他盘,你只需要将REGISTRYSET"HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dyxx","Driver",REGSTRING!,"D:\WINDOWS\System32\sqlsrv32.dll")修改以下,把这个路径改改.
如果你的配置和上面不同.
只需要稍微修改就可以.

请各位大哥斧正.
谢谢!
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
njdxbzu 2004-04-03
  • 打赏
  • 举报
回复
up
lzheng2001 2004-04-03
  • 打赏
  • 举报
回复
学习
wiselyjs 2004-04-03
  • 打赏
  • 举报
回复
顶!
鸡翅多 2004-04-03
  • 打赏
  • 举报
回复
支持一下

752

社区成员

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

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