(解决方法)c3p0、hibernate 连接sybase数据库无法设置连接选项 SET_READONLY_TRUE、SET_CATALOG

来源:互联网 发布:清单好帮手软件 编辑:程序博客网 时间:2024/04/16 12:28

 解决hibernate连sybase出现的"SET_READONLY_TRUE"警告

原因:
java.sql.Connection有一个setReadOnly(boolean)方法用以通知数据库优化返回的结果集,但Sybase及Sybase ASE不需要。

解决:
Darrell Fuller已经解决了此问题。
(参见http://forums.hibernate.org/viewtopic.php?p=2209134&highlight=&sid=d94eb4a43870a4d8303b6557af2aee5d)

Sybase及SQLAnywher有一叫spt_mda的系统表,修改此表中的数据,可解决此问题。(此表在Sybase存放在master数据库中)

ASA数据库

(参见http://forums.hibernate.org/viewtopic.php?p=2209134&highlight=&sid=d94eb4a43870a4d8303b6557af2aee5d)

Sybase及SQLAnywher有一叫spt_mda的系统表,修改此表中的数据,可解决此问题。(此表在Sybase存放在master数据库中)

(用sa账号登录,用master数据库命令:use master )

通过“select * from spt_mda where mdinfo='SET_READONLY_FALSE' or mdinfo='SET_READONLY_TRUE'”的语句可列出相应内容:

 

mdinfoquerytypequerySET_READONLY_FALSE3 SET_READONLY_TRUE3 

 

使用

update spt_mda set querytype = 4, query = '0' where mdinfo = 'SET_READONLY_FALSE'

update spt_mda set querytype = 4, query = '0' where mdinfo = 'SET_READONLY_TRUE'

的语句将此表修改。原来的3代表不支持,因此发出SQLWarning。改为4及0后,将不报错。