cur_dir = Space(256)
GetCurrentDirectoryA(256,cur_dir) //取当前目录
/*在注册表中查找文件dbodbc6.dll和dbeng6.exe的位置.若不存在则在当前位置查找.*/
if answer = -1 then
ls_location = cur_dir
ls_driver = ls_location + 'dbodbc6.dll'
ls_start = ls_location + 'dbeng6.exe'
if not (FileExists(ls_driver) AND FileExists(ls_start)) THEN
li_flag = 1
GoTo ErrHandle
else
RegistrySet(ls_apppath + "dbeng6.exe","path",RegString!,ls_location)
RegistrySet(ls_apppath + "dbeng6.exe","",RegString!,ls_start)
end if
else
ls_driver = ls_location + 'dbodbc6.dll'
ls_start = ls_location+'dbeng6.exe'
if not (FileExists(ls_driver) AND FileExists(ls_start)) THEN
li_flag = 1
GoTo ErrHandle
end if
end if
//设置ODBC\ODBCINST.INI\ODBC DRIVERS
answer = RegistryGet(ls_odbc1 + 'ODBC DRIVERS','Adaptive Server Anywhere 6.0',RegString!,ls_value)
if answer = -1 THEN
answer = RegistrySet(ls_odbc1 + 'ODBC DRIVERS','Adaptive Server Anywhere 6.0',RegString!,'Installed')
if answer = -1 then
li_flag = 2
GoTo ErrHandle
end if
answer = RegistrySet(ls_odbc1 + 'Adaptive Server Anywhere 6.0','Driver',RegString!,ls_driver)
if answer = -1 then
li_flag = 2
GoTo ErrHandle
end if
answer = RegistrySet(ls_odbc1 + 'Adaptive Server Anywhere 6.0','Setup',RegString!,ls_driver)
if answer = -1 then
li_flag = 2
GoTo ErrHandle
end if
end if
//设置ODBC DATA SOURCE名称
answer = RegistryGet(ls_odbc2 + 'ODBC Data Sources',s_dsn,RegString!,ls_value)
if answer = -1 THEN
db_path = cur_dir+'\'+db_name+".db"
answer = RegistrySet(ls_odbc2 + 'ODBC Data Sources',s_dsn,RegString!,'Adaptive Server Anywhere 6.0')
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc2 + s_dsn,'driver',RegString!,ls_driver)
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc2 + s_dsn,'start',RegString!,ls_start+' -d -Q -c1024')
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc2 + s_dsn,'autostop',RegString!,'yes')
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc2 + s_dsn,'DataBaseFile',RegString!,db_path)
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc2 + s_dsn,'DataBaseName',RegString!,db_name)
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc2 + s_dsn,'uid',RegString!,"dba")
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc2 + s_dsn,'pwd',RegString!,"sql")
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + s_dsn,"Driver", RegString!,ls_driver)
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + s_dsn,"uid", RegString!,"dba")
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + s_dsn,"pwd", RegString!,"sql")
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + s_dsn,"Start", RegString!,ls_start + ' -d -Q -c1024')
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + s_dsn,"DatabaseFile", RegString!,db_path)
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + s_dsn,"DatabaseName", RegString!,db_name)
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + s_dsn,"AutoStop", RegString!, "yes")
if answer = -1 then GoTo ErrHandle
answer = RegistrySet(ls_odbc3 + "ODBC Data Sources",s_dsn, RegString!, "Adaptive Server Anywhere 6.0")
if answer = -1 then GoTo ErrHandle
end if
return 0
ErrHandle:
choose case li_flag
case 1
Messagebox('错误',ls_location + '目录中没有安装dbeng6.exe和dbodbc6.dll文件!',StopSign!)
case 2
Messagebox('错误','应用程序无法设置ODBC DRIVERS,运行不能继续!',StopSign!)
case else
Messagebox('错误','应用程序无法设置ODBC DATA SOURCE,运行不能继续!',StopSign!)
end choose
RETURN -1