PB连接两个access数据库,提示database transaction information not available

代码如下:
// Profile connect_dj
Transaction Tr_access
Tr_access=Create Transaction;

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=a_dj;UID=;PWD=',CommitOnDisconnect='No'"

connect using Tr_access;

dw_2.settransobject(Tr_access)
dw_2.retrieve()

第1个回答  2017-07-16
PB中的数据窗在Retrieve之前要使用SetTransObject()函数的,因为该函数是指定数据窗使用哪个事务(一个每连接一个数据库就是一个单独的事务,当一个实例下多个数据库时,就需要定义多个实例),要不然PB怎么知道去连接哪个数据库呢?~从你的报错情况来看,是你的事务不可用,也就是定义错误了,在DataBase Profile下有一个PreView选项,里面就是定义连接到数据库的事务,可以拷出来,放在打开主窗口的Open事件中,就可以了
第2个回答  2017-07-16
你自定义了数据库连接实例Tr_access,但配置连接参数,使用的又是默认实例SQLCA。当然连接数据库失败。
一般情况使用系统默认实例SQLCA就可以了。追问

那么配置连接参数要在哪里改呢?

追答

Transaction Tr_access
Tr_access=Create Transaction;
这两行删掉
Tr_access都改成SQLCA 就行了

追问

可是我已经有一个sqlca的示例了,这个tr_access是在连接另一个数据库

追答

那你就把SQLCA 改成 Tr_access,
Transaction Tr_access
Tr_access=Create Transaction;

Tr_access.DBMS = "ODBC"
Tr_access.AutoCommit = False
Tr_access.DBParm = "ConnectString='DSN=a_dj;UID=;PWD=',CommitOnDisconnect='No'"

connect using Tr_access;

dw_2.settransobject(Tr_access)
dw_2.retrieve()

追问

可是我的代码里面没有出现sqlca啊,能麻烦您直接改一下我的代码?

追答

这个就是你自己的代码,你连接的是Tr_access,配置的却是SQLCA,把SQLCA改成Tr_access不就行了吗?

本回答被提问者采纳

PB连接两个access数据库,提示database transaction information not ava...
~从你的报错情况来看,是你的事务不可用,也就是定义错误了,在DataBase Profile下有一个PreView选项,里面就是定义连接到数据库的事务,可以拷出来,放在打开主窗口的Open事件中,就可以了

...database transaction information not available.是什么意思啊_百 ...
是不是没有设置sqlca的值,没有connect,或者没有对数据窗口settransobject(sqlca)?

出现这个Database transaction information not available
1.一个是在你连接的时间出现问题,那是你sqlca没设置好 2.还有一个是在你数据窗口retrieve的时间出问题,那是因为在你retrieve没有settransobject(sqlca)

...database transaction information not available,call settrans or...
dataobject的设置放到最前面去

...这个提示transaction information not available...
你的dw_1.settransobject(sqlca)这个写了么?并不只是你写好了连接代码窗口上放了数据窗口就直接可以查询数据了。而是要通过事务sqlca把数据窗口和数据库连接起来。否则数据窗口和数据库之间就是断开的。在dw_1.retrieve()之前或者之前执行的事件中,有没有写dw_1.settransobject(sqlca)这句?

...Datebase transaction information not available.Call SetTrans or...
在窗口的open事件中或者是dw_1数据窗口的constructor事件中写如下代码:dw_1.settransobject(sqlca)\/\/保持与数据库通信。

...Database transaction information not available. Call SetTrans...
没有设置事务对象吧?记得数据窗口都要设置一下数据库事务对象,dw_1.settransobject(sqlca),如果是下拉数据窗口没有数据的话,记得edit属性页里面的autoretrieve属性打勾

...database transaction information not available怎么解决
可能是病毒针对某杀软的防御手段。请尝试杀毒。

access数据库连接出错
access数据库连接错误解决办法步骤一:请检查conn.asp中的连接字符是否正确,如果没有错误,还提示数据库连接出错,请往下看access数据库连接错误解决办法步骤二:把数据库下载到本地(默认数据库 database\/#newasp.mdb),用ACCESS打开,压缩修复数据库(打开ACCESS -- 工具 -- 数据库实用工具 -- 压缩和...

Access数据库无法连接是什么意思?
为了解决这个问题,您需要安装或重新安装Microsoft Access Database Engine 2010 Redistributable。这个组件是微软提供的一个数据库引擎,它使得应用程序能够通过OLE DB接口读取和写入Access数据库文件。您可以从微软的官方网站下载并安装这个组件。安装完成后,您的系统就应该能够识别并使用“microsoft.ACE....

相似回答
大家正在搜