推荐自动注册ODBC的解决方案(已成功)
前段时间为我们系做一个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")修改以下,把这个路径改改.
如果你的配置和上面不同.
只需要稍微修改就可以.
请各位大哥斧正.
谢谢!