- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在tadodataset的delphi应用程序中遇到问题
从delphi xe2切换到xe9和sql2014之后的简单问题
我在探查器中看到我的所有查询都以SET NO_BROWSETABLE ON开头,这会导致在SQL Server中重新编译存储过程和函数
有人可以告诉我如何禁用此选项吗
和示例代码
ADODataSet1.Close; ADODataSet1.CommandText:='选择*从
mytable'; ADODataSet1.Open;
并导致分析器:
设置NO_BROWSETABLE ON
从mytable中选择*
最佳答案
您的问题似乎暗示SET NO_BROWSETABLE ON
仅在更改为最新的Delphi版本之后才开始。
如果这是您的意思,那么我不确定您的观察是否准确,至少我无法重现15年来使用当前Delphi版本,XE10 Seattle和Delphi 7编译的应用程序在NO_BROWSETABLE方面的行为差异。
我在这台Windows 10 Pro 64位计算机上运行Sql Server 2014的实例。如果我编译并运行一个最小的Delphi Seattle项目,该项目使用select * from sometable
和TAdoConnection
做一个简单的TAdoQuery
,则Sql Server的探查器将像您一样显示MDac层发送一个SET NO_BROWSETABLE ON
。但是,如果我在Delphi 7中编译并运行完全相同的项目,则会得到与探查器中所示完全相同的语句-如果应用程序是在D7或Seattle中编译的,则没有任何区别。
光标位置设置为clUseClient
。如果使用SET NO_BROWSETABLE ON
,则不会出现clUseServer
。在使用TSqlConnection
和TSqlQuery
的最小DBExpress应用程序中,它也不会发生,因此也许也使用服务器端游标。
请参阅此处以获取有关NO_BROWSETABLE
的更多信息:
https://support.microsoft.com/en-us/kb/885146
我正在使用Microsoft OLE DB Provider for Sql Server
。尽管据说它已被MS弃用,但与它的ODBC或“本地客户端”提供程序相比,我遇到的麻烦要少得多。
您可能还想看看这个SO q:
Strange ADO behavior generating unwanted NO_BROWSETABLE / set fmtonly queries in VB6
顺便说一句,您提到“ xe9”。您是说XE8还是Delphi Seattle还是什么?
关于sql-server - tadodataset生成的不需要的SET NO_BROWSETABLE ON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620407/
我可以在设计模式下使用 TADODataset 创建一个新的聚合字段 (TAggregateField ),使用表达式“Sum(MyPrice)”(MyPrice 是此数据集中的一个字段)。 但该字段
我有一个TADODataSet,它从数据库(一个SP,但这并不重要)加载一些列。例如: SELECT A, B, C, D FROM Foo 现在,之后我打开数据集,是否可以更改TADODataSet
我有一个与 this 非常相似的代码复制 TADODataSet 组件及其事件。 因此,如果我有一个 ADODataSet1,我想创建一个新实例 ADODataSet2 作为前一个组件的精确重复组件。
这些组件能够一次性检索多个结果集(例如,从存储过程),并且使用 D5,我可以成功使用 NextRecordSet 从 Sql Server 获取第二个和后续结果集。 但是,只有当我将光标位置指定为 c
首先,请不要问我为什么需要这样做。除非您能告诉我如何将 TFDDataset 直接转换为 _RecordSet,否则请不要问。 :-) 所以,这是我的问题: 给定一个 TFDDataset,如何将该数
我已经尝试调试以下问题几个星期了 - 该方法是从同一数据模块内的多个位置调用的,但此异常(来自本文的主题行)仅在用于特定目的的整数时发生(取货订单与我们通过承运商运送的订单)的使用 - 不要问我应用程
根据http://www.delphigroups.info/2/3/181838.html ( archive ) The preferred approach with ADOcomponents
在 Delphi XE5 中,我使用 TADODataSet 并将其 CommandText 设置为此命令(使用 CASE) : SELECT Master.*, CASE
我是一名优秀的程序员,十分优秀!