PB连接sybase anywhere数据库

/*********************************************************************************
*函数名称:f_reg_db
*参数列表:无
*返回值:0-失败,1-成功
*作者:李永结
*函数功能:注册数据库(sybase anywhere)
*创建时间:2011/10/03
*说明:需要文件:dbodbc9.dll,dbeng9.exe
*********************************************************************************/


string ls_dbfile,ls_driver
string ls_dbodbc_dll,ls_dbeng_dll
string ls_db_path,ls_db_name,ls_ds_name
String ls_start
string ls_location
long ll_rtn
string ls_dbms


//设置数据库路径及文件名
ls_db_path = gs_rootpath +"\modeldb.db" 
//设置数据库名称
ls_db_name = "modeldb" 
//设置ODBC数据源名称
ls_ds_name = "modeldb"


//如果连接数据库方式不是ODBC,则不需要注册数据库
ls_dbms = trim(profilestring("system.ini","database","DBMS","ODBC"))
if upper(ls_dbms) <> "ODBC" then
f_log("连接数据库方式不是ODBC,不需注册数据库")
return 1
end if


//检查数据库是否已经注册
ll_rtn=RegistryGet("HKEY_current_user\Software\ODBC\ODBC.INI\ODBC Data Sources","modeldb",RegString!,ls_driver)
IF ll_rtn=1 THEN
f_log(ls_db_name+"数据库已经注册")
RETURN 2
ELSE
f_log(ls_db_name+"数据库没有注册,准备注册")
END IF


ll_rtn = RegistryGet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 9.0","Driver", RegString!, ls_driver)
if ll_rtn =  1 then
f_log("已经设置好ODBC驱动")
else
f_log("ODBC驱动没有设置")
end if


ll_rtn = RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\modeldb","DatabaseFile", RegString!, ls_dbfile)
if ll_rtn =  1 then
f_log("已经设置好数据文件")
else
f_log("数据文件没有设置")
end if


IF right(ls_driver,11) = 'dbodbc9.dll' and right(ls_dbfile,10) = 'modeldb.db' THEN 
IF FileExists(ls_driver) And FileExists(ls_dbfile) THEN
//MessageBox("^_^","已经设置好数据源")
f_log("已经设置好数据源")
RETURN 1
ELSE
f_log("没有驱动文件或数据文件")
return -1
END IF
END IF


//获得该应用的目录
ls_location = gs_rootpath + "\" 
ls_dbodbc_dll = ls_location + "dbodbc9.dll"
ls_dbeng_dll = ls_location + "dbeng9.exe"


IF Not FileExists(ls_dbodbc_dll) And Not FileExists(ls_dbeng_dll) THEN
f_logbox("系统中没有数据库驱动引擎和动态链接库!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers","Adaptive Server Anywhere 9.0",RegString!,"Installed")
IF ll_rtn = -1 THEN
f_logbox("系统设置Adaptive Server Anywhere 9的驱动出现错误")
RETURN -1
END IF


//设置ODBC\ODBCINST.INI
/*
ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 9.0","CPTimeout",RegString!,"not pooled")
IF ll_rtn = -1 THEN
f_logbox("系统设置注册表ODBC\ODBCINST错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 9.0","Driver",RegString!,ls_driver)
IF ll_rtn = -1 THEN
f_logbox("系统设置注册表ODBC\ODBCINST错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 9.0","Setup",RegString!,ls_driver)
IF ll_rtn = -1 THEN
f_logbox("系统设置注册表ODBC\ODBCINST错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBCINST.INI\ODBC Data Sources",ls_ds_name,RegString!,"Adaptiver Server Anywhere 9.0")
IF ll_rtn = -1 THEN
f_logbox("系统设置ODBC数据源错误!系统将终止运行!")
RETURN -1
END IF
*/


//设置ODBC.INI的细节
ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.ini\" + ls_ds_name,"Driver",RegString!,ls_driver)
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\Driver 错误!系统将终止运行!")
RETURN -1
ELSE
f_log("设置 ODBC\ODBC.INI\" + ls_ds_name + "\Driver ok")
END IF


ls_start = gs_rootpath + "\dbeng9.exe -d -Q -c200m"
ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.ini\" + ls_ds_name,"start",RegString!,ls_start)
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\start 错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"AutoStop",RegString!,"yes")
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\autostop 错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"DatabaseFile",RegString!,ls_db_path)
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\DataBaseFile 错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"DatabaseName",RegString!,ls_db_name)
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\DataBaseName 错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"UID",RegString!,"DBA")
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\UID 错误!系统将终止运行!")
RETURN -1
END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"PWD",RegString!,"SQL")
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\PWD 错误!系统将终止运行!")
RETURN -1
END IF


//ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"EncryptedPassword",RegString!,"22f4c70a26ceba1afda291a1fda9")
//IF ll_rtn = -1 THEN
// f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\EncryptedPassword 错误!系统将终止运行!")
// RETURN -1
//END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"EngineName",RegString!,ls_ds_name)
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\EngineName 错误!系统将终止运行!")
RETURN -1
END IF


//ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"Compress",RegString!,"YES")
//IF ll_rtn = -1 THEN
// f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\Compress 错误!系统将终止运行!")
// RETURN -1
//END IF


ll_rtn = RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\" + ls_ds_name,"Integrated",RegString!,"No")
IF ll_rtn = -1 THEN
f_logbox("系统设置 ODBC\ODBC.INI\" + ls_ds_name + "\Compress 错误!系统将终止运行!")
RETURN -1
END IF


f_log(ls_db_name + "数据库注册完成")


RETURN 1

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

liyongjie

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者