pb自动注册ASA数据源

函数定义
/* 函数名称 f_odbc_autoreg
函数功能 将拷贝到winsystem32 下的数据库进行注册
函数参数:mydb_name 将注册数据库名称:
适用范围pb9.0 sqlanywhere9.0 数据库
实用注意事项:需将sqlanywhere9.0支持驱动 安装到系统目录
存在问题:运行后pb9.0 不能生成新的数据库,有待解决
2006 - 11  已解决 设置参数大小写问题.*/


constant long lensize=260
string str
str=Space(lensize)
GetSystemDirectory(str,lensize)
/自动设置odbc
int answer1,answer2,answer3,answer4,answer5,answer6,answer7,answer8,answer9,ing1,ing2,ing3,ing4,tag1,tag2,tag3
string ls_driver,ls_trans,app_path,db_path,db_start,ins1,ins2,ins3,ins4,tags1,tags2,tags3
 app_path = str  
SET ODBC/ODBCIST.INI/ODBC DRVIER
ls_driver=app_path+'/DBODBC9.DLL'
Ls_trans=app_path+'/DBODTR9.DLL'
tag1 =  RegistryGet('HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/ODBC Drivers','Adaptive Server Anywhere 9.0',RegString!,tags1)
if tag1 = - 1 then
answer1=RegistrySet('HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/ODBC Drivers','Adaptive Server Anywhere 9.0',RegString!,'Installed')
end if
if answer1=-1 then

  return -1
end if

 ing1 = RegistryGet('HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/Adaptive Server Anywhere 9.0','Driver',RegString!,ins1)
 ing2 = RegistryGet('HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/Adaptive Server Anywhere 9.0','Setup',RegString!,ins2)
if ing1= -1 or ing2= -1 then    
answer2=RegistrySet('HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/Adaptive Server Anywhere 9.0','Driver',RegString!,ls_driver)
answer3=RegistrySet('HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/Adaptive Server Anywhere 9.0','Setup',RegString!,ls_driver)
if answer2=-1 or  answer3=-1  then
return -1
end if
end if
///以上部分没有数据库数据

 tag3 = RegistryGet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/ODBC data Sources',&
 mydb_name,RegString!,tags3)
 if tag3 = -1 then
 answer4=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/ODBC data Sources',&
mydb_name,RegString!,'Adaptive Server Anywhere 9.0')
end if
if answer4=-1 then
return -1
end if
db_path=app_path+'/'+mydb_name+'.db'
db_start=app_path+'/dbeng9.exe -c9m'

answer1=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'autostop',RegString!,'yes')

answer2=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'DatabaseFile',RegString!,db_path)

answer3=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'DatabaseName',RegString!,mydb_name)

answer4=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'driver',RegString!,ls_driver)

answer5=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'Integrated',RegString!,'No')

answer6=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'PWD',RegString!,'SQL')

answer7=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'start',RegString!,db_start)

answer8=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'UID',RegString!,'DBA')
answer9=RegistrySet('HKEY_CURRENT_USER/SOFTWARE/ODBC/ODBC.INI/'+mydb_name,'AutoStop',RegString!,'Yes')
if answer1=-1 or answer2=-1 or answer3=-1 or answer4=-1 or answer5=-1 or answer6=-1 or answer7=-1 or answer8=-1 then
return -1
end if
return 1
以下写在应用的open事件
///自动注册数据库
string mydb
mydb = "tytank"
f_db_autoreg(mydb)
/数据库联结
// Profile Tank3
// Profile tytank
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=tytank;UID=;PWD='"

//数据库相应驱动程序拷贝到系统目录下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值