自动配置ODBC连接Anywhere 8.0总是有问题!
霖湘凝 2005-01-16 04:54:30
我想在程序中自动配置ODBC连接Anywhere 8.0,可总是有问题!
其实前面有一会儿是可以的,可是现在就根本连不上了,
只要一运行程序就弹出“ODBC Configuration for Adaptive.....”要求我配置相关信息,
我点了确定,只要之后有数据窗口刷新,就说:
“Database transaction information not available.
Call SetTrans or SetTransObject function”
数据库根本就没连上,大家帮我看看啊,是哪儿有问题啊?谢谢啊~
代码如下:
Ulong ul_num
Int answer,answer1,answer2,answer3,answer4,answer5,ansapp
String ls_driver,ls_start,ls_location,apppath,db_path,odbcstr
ls_location=GetCurrentDirectory()
ls_driver=ls_location+'\配置\dbodbc8.dll'
ls_start=ls_location+'\配置\dbodbc8.dll'
IF NOT (FileExists(ls_driver) AND FileExists(ls_start))THEN
Messagebox('错误','系统中没有安装SQLAnywhere的驱动程序,系统将终止运行!',StopSign!)
RETURN
END IF
answer=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBCDRIVER','Adaptive Server Anywhere 8.0',RegString!,'Installed')
IF answer=-1 THEN
Messagebox('错误','应用程序无法设置ODBCDRIVERS,系统将终止运行!',StopSign!)
RETURN
END IF
answer1=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0','CPTimeout',RegString!,'notpooled')
answer2=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0','Driver',RegString!,ls_driver)
answer3=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0','Setup',RegString!,ls_driver)
IF answer1=-1 OR answer2=-1 OR answer3=-1 THEN
Messagebox('错误','应用程序无法设置ODBCINST.INI,系统将终止运行!',StopSign!)
RETURN
END IF
answer=RegistrySet('HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBCDataSources','handan',RegString!,'Adaptive Server Anywhere 8.0')
IF answer=-1 THEN
Messagebox('错误','应用程序无法设置ODBCDATASOURCE名称,系统将终止运行!',StopSign!)
RETURN
END IF
db_path=ls_location+'\数据\handan.db'
answer1=RegistrySet('HKEY_current_user\software\odbc\odbc.ini\handan','driver',RegString!,ls_driver)
answer2=RegistrySet('HKEY_current_user\software\odbc\odbc.ini\handan','start',RegString!,ls_start)
answer3=RegistrySet('HKEY_current_user\software\odbc\odbc.ini\handan','autostop',RegString!,'yes')
answer4=RegistrySet('HKEY_current_user\software\odbc\odbc.ini\handan','DataBaseFile',RegString!,db_path)
answer5=RegistrySet('HKEY_current_user\software\odbc\odbc.ini\handan','DataBaseName',RegString!,'handan')
IF answer1=-1 OR answer2=-1 OR answer3=-1 OR answer4=-1 OR answer5=-1 THEN
Messagebox('错误','应用程序无法设置ODBC.INI细节,系统将终止运行!',StopSign!)
RETURN
END IF
odbcstr='dsn=handan;databasename=handan;databasefile='+db_path
sqlca.dbms='odbc'
sqlca.database='handan'
sqlca.dbparm="connectstring='"+odbcstr+";uid=handan;pwd=handan'"
connect using sqlca;
open(kaishi)