非常奇怪的问题,数据库连接成功了还提示Database transaction information not available

时间:2022-03-09 16:55:35
PB程序使用sql server2005,连接方式是odbc,用全局事务sqlca连接,本来都连接好了,操作大部分保存的客户时都很正常,但是操作到某一个客户时,比如执行到dw_1.update()时就会报错,就是报database transaction information not available call....   然后我再操作其它客户时又没有错.我无法判断究竟为什么会报这种错?请问大致会有什么样的原因呢?

6 个解决方案

#1


你pb是什么版本?

#2


是11.0 6525

#3


你SQLCA.AutoCommit 设置成true了吗?
设置成true的话dw_1.update()就提交数据了,如果失败是不是就提示这个这个错误了。
设置成false的话可以根据dw_1.update的返回值来判断执行SQL语句数据库变更是否成功,
然后通过commit;或者rollback;来最终提交数据,或者回滚数据。

#4


11的话用ole DB来连sql server 试试。

#5


请问ole db的方式该如何连接啊?关键是我用installshield做安装包,之前我用ODBC的方式,可以在installshield中注册ODBC,那请问ole db的方式在installshield中如何做安装包了?也就是说应该不需要ODBC注册了,那应该怎么做呢?

#6


// Profile db_server_84
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = <**********>
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='192.168.0.84',PROVIDERSTRING='database=huaqian'"

#1


你pb是什么版本?

#2


是11.0 6525

#3


你SQLCA.AutoCommit 设置成true了吗?
设置成true的话dw_1.update()就提交数据了,如果失败是不是就提示这个这个错误了。
设置成false的话可以根据dw_1.update的返回值来判断执行SQL语句数据库变更是否成功,
然后通过commit;或者rollback;来最终提交数据,或者回滚数据。

#4


11的话用ole DB来连sql server 试试。

#5


请问ole db的方式该如何连接啊?关键是我用installshield做安装包,之前我用ODBC的方式,可以在installshield中注册ODBC,那请问ole db的方式在installshield中如何做安装包了?也就是说应该不需要ODBC注册了,那应该怎么做呢?

#6


// Profile db_server_84
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = <**********>
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='192.168.0.84',PROVIDERSTRING='database=huaqian'"