如何克服失败,从上表中的记录得到记录锁定(How to overcome Failure getti

2019-09-26 12:55发布

我正在使用OPENQUERY查询并得到一个特殊的errot。

这是我的查询:

 select * from OpenQuery("CAPITAOC",'SELECT per.*                                                  
                                          FROM pub."re-tenancy" AS t 
                                               INNER JOIN pub."re-tncy-person" AS per
                                               ON t."tncy-sys-ref" = per."tncy-sys-ref" 
                                               INNER JOIN pub."re-tncy-place" AS place
                                               ON t."tncy-sys-ref" = place."tncy-sys-ref"
                                         WHERE t."tncy-status" = ''CUR'' and place."place-ref"=''GALL01000009''') 

这是错误信息:

OLE DB提供程序 “MSDASQL” 链接服务器 “CAPITAOC” 返回了消息 “[DataDirect的] [ODBC进展OpenEdge Wire Protocol驱动程序] [OPENEDGE]失败从表PUB.RE-TNCY人的纪录越来越记录锁定。” OLE DB提供程序 “MSDASQL” 链接服务器 “CAPITAOC” 返回了消息 “[DataDirect的] [ODBC进展OpenEdge Wire Protocol驱动程序]错误行。” 消息7330,级别16,状态2,第1行无法获取来自OLE DB提供程序“MSDASQL”链接服务器“CAPITAOC一排”。

如何解读这些数据?

Answer 1:

记录锁定错误:在多用户环境中是非常有用的锁定正在更新,以防止访问该记录的其他用户会话的记录。 这可以防止您的数据的“脏读”。

为了克服这个问题,我建议你在看这篇文章: http://knowledgebase.progress.com/articles/Article/20255

事务隔离级别之前,必须在会话中任何其他交易设置。

这是你如何找出谁已锁定您的记录: http://knowledgebase.progress.com/articles/Article/19833

另外,我想建议,如果你正在使用类似SQL资源管理器里面,除非你问它,那么数据库表可能被锁定,直到你提交你的修改不会自动提交您的更新。



文章来源: How to overcome Failure getting record lock on a record from table
标签: openquery