菜鸟初学,连接数据库报错:database transaction information not available call settrans or settransobject function

douliang 2005-04-28 02:53:55
初学powerbuilder,用着数据窗口控件和数据窗口对象。

数据库能正常连接,在数据窗口对象里能看到数据的。我用的后台数据库是SQL SERVER 2000。我在应用里写的语句如下:

SQLCA.Database = "db_client"
SQLCA.ServerName = "Douliang"
SQLCA.LogId = "sa"
SQLCA.LogPass = "sa"
SQLCA.AutoCommit =true
SQLCA.DBParm = ""
connect;
//这些都是我从database profile setup对话框中的preview选项里复制过来的

然后做了一个窗口,放了一个数据窗口控件w_student,选择了数据窗口对象d_student,按钮“检索”的click函数为:

dw_student.settransobject(SQLCA)
dw_student.retrieve()


为何一运行就提示database transaction information not available call settrans or settransobject function”
请各位大侠教我!!!!
...全文
1422 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
douliang 2005-04-28
  • 打赏
  • 举报
回复
谢谢各位了!我搞订了!程序没有写错,是我的运行方式不对,我没有从主程序开始运行,而是从数据窗口去运行,所以出现错误!
princelily 2005-04-28
  • 打赏
  • 举报
回复
对了,SQLCA.AutoCommit =false ,不要设置成true,一般都是我们在程序中通过函数比如dw_**.update()的返回值来判断执行SQL语句数据库变更是否成功,然后通过commit;或者rollback;来最终提交数据,或者回滚数据。可能和你问的问题不搭边,但是这是一个好的技巧。
douliang 2005-04-28
  • 打赏
  • 举报
回复
if SQLCA.sqlcode<>0 then
MessageBox("连接数据库失败!",SQLCA.sqlerrtext)
halt
end if
这个代码有的,就在主程序open里面写的
princelily 2005-04-28
  • 打赏
  • 举报
回复
dw_student.settransobject(SQLCA)
dw_student.retrieve()
把这些代码放在窗口的open事件中,看看还出现这些错误么?
princelily 2005-04-28
  • 打赏
  • 举报
回复
在connect using sqlca;后边,加上

if sqlca.sqlcode <> 0 then
messagebox('错误:','连接数据库失败!')
return
end if

看看sqlca.sqlcode的返回值是多少。

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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