作者:小思绪 | 来源:互联网 | 2023-05-18 13:49
如题retrieve后,就会申请锁定,这时如果更新结果中的记录字段值时就会待,如果提交就不会锁定了。网上说sqlserver2005中READ_COMMITTED_SNAPSHOT默认是of
如题
retrieve后,就会申请锁定,这时如果更新结果中的记录字段值时就会待,如果提交就不会锁定了。
网上说sqlserver2005中READ_COMMITTED_SNAPSHOT 默认是off状态,如果设置为on即可,如何设置呢?是否需要pb脚 本中设置,救 命啊。
9 个解决方案
经测试发现,同样的sqlserver2005服务器数据库,如果用old db连接数据库,就会出现这种情况,连接如下:
SQLCA.DBMS = "OLE DB"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='服务器',PROVIDERSTRING='database=数据库'"
如果采用专用接口连接就不会:
SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "数据库"
SQLCA.ServerName = "服务器"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
大侠帮看看,是不是我的oledb连接写的哪不对啊。
SQLCA.AutoCommit = False 这个改为True试试?
找到解决办法了,在oledb连接时加上sqlca.lock="RC" //RU是允许脏读
但这是为什么呢,有人解答照样给分。
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = ProfileString("zhite.INI", "database","passw", "123")
SQLCA.LogId = ProfileString("zhite.INI", "database","id", "sa")
SQLCA.Lock='RC'
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='SQLOLEDB',DATASOURCE='.',PROVIDERSTRING='database=test'"
看来只能用sqlca.lock='rc'了,结帖了。
如果dw里的数据是只显示的,把update的属性去掉,试试呢