基础问题(在线等待)。。。急

liangjuan01 2004-07-02 09:31:47
Database transacation infomation not available.
Call SetTrans or SetTransObject function.
运行后出现这样的错,数据库连不上,怎么处理啊
...全文
98 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
int answer,answer1,answer2,answer3,answer4,answer5,answer6
string ls_driver,ls_trans,app_path,db_path
//获取应用程序路径
app_path=GetCurrentDirectory()
ls_driver=app_path+"\"+as_driver+"\DBODBC7.dll" //驱动程序路径
ls_trans=app_path+"\"+as_driver+"\DBODTR7.dll"
if not fileexists(ls_driver) then
MessageBox("错误","没有ASA7.0驱动程序,系统将终止运行!",StopSign!)
return false
end if
//设置ODBC=ODBCINST.INI\ODBC DRIVERS
string tmp
answer=RegistryGet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers",&
"Adaptive Server Anywhere 7.0",RegString!,tmp)
if answer=-1 then
answer=RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers",&
"Adaptive Server Anywhere 7.0",RegString!,"Installed")
if answer=-1 then
MessageBox("错误","应用程序无法设置ODBC DRIVERS,系统将终止运行!",StopSign!)
return false
end if
end if
//设置ODBC\ODBCINST.INI(1)
answer2=RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 7.0",&
"Driver",RegString!,ls_driver)
answer3=RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 7.0",&
"Setup",RegString!,ls_driver)
if answer1=-1 or answer2=-1 or answer3=-1 then
MessageBox("错误","应用程序无法设置ODBCINST.INI,系统将终止运行!",StopSign!)
return false
end if
//设置ODBC\ODBCINST.INI(2)
answer1=RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 7.0 Translator",&
"Translator",RegString!,ls_trans)
answer2=RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 7.0 Translator",&
"Driver",RegString!,ls_trans)
answer3=RegistrySet("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 7.0 Translator",&
"Setup",RegString!,ls_trans)
if answer1=-1 or answer2=-1 or answer3=-1 then
MessageBox("错误","应用程序无法设置ODBCINST.INI,系统将终止运行!",StopSign!)
return false
end if
//设置ODBC DATA SOURCE名称(as_datasource为数据源)
answer=RegistrySet("HKEY_CURRENT_USER\software\odbc\odbc.ini\ODBC Data Sources",&
as_datasource,Regstring!,"Adaptive Server Anywhere 7.0")
if answer=-1 then
MessageBox("错误","应用程序无法设置ODBC DATA SOURCE,系统将终止运行!",StopSign!)
return false
end if
//设置ODBC.INI的细节
db_path=app_path+"\"+as_datasource+".db" //数据库文件
answer1=RegistrySet("HKEY_CURRENT_USER\software\odbc\odbc.ini\"+as_datasource,&
"driver",Regstring!,ls_driver)
answer2=RegistrySet("HKEY_CURRENT_USER\software\odbc\odbc.ini\"+as_datasource,&
"Integrated",Regstring!,"No")
answer3=RegistrySet("HKEY_CURRENT_USER\software\odbc\odbc.ini\"+as_datasource,&
"Autostop",Regstring!,"yes")
answer4=RegistrySet("HKEY_CURRENT_USER\software\odbc\odbc.ini\"+as_datasource,&
"DataBaseFile",Regstring!,db_path)
answer5=RegistrySet("HKEY_CURRENT_USER\software\odbc\odbc.ini\"+as_datasource,&
"PWD",Regstring!,"SQL")
answer6=RegistrySet("HKEY_CURRENT_USER\software\odbc\odbc.ini\"+as_datasource,&
"UID",Regstring!,"DBA")
if answer1=-1 or answer2=-1 or answer3=-1 or answer4=-1 or answer5=-1 or answer6=-1 then
MessageBox("错误","应用程序无法设置ODBC.INI的细节,系统将终止运行!",StopSign!)
return false
else
//MessageBox("信息","ODBC注册成功!",Exclamation!)
return true
end if


我是这样做的,缺了什么啊

zzyman 2004-07-02
  • 打赏
  • 举报
回复
如果你真的用odbc连接的数据库,那其他计算机要是没有odbc的话,那你只能把odbc补上
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
一直以来,我遇到过好几次,用PB自带的ASA建数据库,有时候当我们把程序移植到其他机子上的时候,会出现数据库连接不上的情况,就是当你配置好连接后,进行连接时,就会弹出那个配置窗口,总也连接不上去,不知道是什么原因,请大家帮忙!!谢谢!!
zzyman 2004-07-02
  • 打赏
  • 举报
回复
dbmssocn.dll
dbnetlib.dll
dbnmpntw.dll
libjcc.dll
libjsybheap.dll
ntwdblib.dll
pbdwe80.dll
pbmss80.dll
pbvm80.dll
sqlsrv32.dll
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
其他机上没有驱动程序啊
zzyman 2004-07-02
  • 打赏
  • 举报
回复
你是用什么连接的数据库啊,如果odbc的话,你在其他计算机上需要重新配置一下odbc,另外看看计算机名称一样吗???你最好在连接数据库的connect后加上
if sqlca.sqlcode<>0 then
messagebox("提示","数据库因为'"+sqlca.sqlerrtext+"'连接失败!")
end if
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
要那些呢
zzyman 2004-07-02
  • 打赏
  • 举报
回复
如果再其他计算机不好用的话,可能是连接数据库的dll文件没有,这样你可以在pb8的目录中收索以下,试试看
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
关键是数据库连不上
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
我用的是pb8+asa7 ,怎么才能使程序在其他机上可以运行啊
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
在本机上没问题啊
xiao_bai 2004-07-02
  • 打赏
  • 举报
回复
按照楼主说的不太可能的
建议debug一下,看看什么问题
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
有啊,不成功啊,这是为什么啊
我移到没有pb的机上去运行,采用动态添加数据源的啊
会跳出数据库配置窗口啊
runsoft 2004-07-02
  • 打赏
  • 举报
回复
看看你的数据库连接CONNECT之后 有判断连接是否成功没有。
liangjuan01 2004-07-02
  • 打赏
  • 举报
回复
有啊
dw_1.settransobject(sqlca)
dw_1.retrieve()
swordmanli 2004-07-02
  • 打赏
  • 举报
回复
在datawindow control的contructor中写:this.SetTransObject(SQLCA)
galaxypilot 2004-07-02
  • 打赏
  • 举报
回复
给数据窗口没有指定事务对像,用SetTrans or SetTransObject指定就行了
Thinkinger 2004-07-02
  • 打赏
  • 举报
回复
数据窗口retrieve()前,用settransobject(sqlca)绑定一次事务对象

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧