首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TADOQuery和TADOTable中使用NOLOCK?

如何在TADOQuery和TADOTable中使用NOLOCK?
EN

Stack Overflow用户
提问于 2010-10-01 15:05:29
回答 2查看 1.3K关注 0票数 1

我有SQL文本"SELECT * FROM TABLE1 WITH (NOLOCK)“。

两个问题:

  1. 如何使我的TADOQuery使用NOLOCK提示而不必将其包含在SQL文本中?我的SQL动态构建了数千个TADOQuery,很难将with (NOLOCK)添加到所有这些数据库中,更不用说我在MSSQL以外的数据库平台上使用了。有TADOQuery属性吗?
  2. 如何使用TADOTable实现相同的功能?TADOTable没有任何SQL,所以我如何告诉它使用NOLOCK提示?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-01 23:32:05

如果使用MS,请在连接时运行下面的语句一次

设置事务隔离级别读取未提交

啦啦队

票数 0
EN

Stack Overflow用户

发布于 2010-10-01 15:44:58

提示是特定于数据库的,因此您必须为支持的每个数据库发出适当的提示。在一些数据库中,也没有类似的东西,例如Oracle不允许任何类似的东西(读者从不阻止作者,而作者从不阻止读者,因此不需要)。

IMHO --您根本不应该使用TADOTable组件--无论如何,AFAIK您无法为生成的查询指定提示--无论如何,这太通用了。

另外,您应该是,非常小心地使用NOLOCK 。它的意思是读未承诺,也就是肮脏的阅读。您正在绕过事务保护,除非您有一个非常好的理由来绕过它--性能上的提高可能不值得在数据完整性和一致性方面的损失。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3840425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档