gpt4 book ai didi

sql-server - tadodataset生成的不需要的SET NO_BROWSETABLE ON

转载 作者:行者123 更新时间:2023-12-03 18:35:28 24 4
gpt4 key购买 nike

我在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 sometableTAdoConnection做一个简单的TAdoQuery,则Sql Server的探查器将像您一样显示MDac层发送一个SET NO_BROWSETABLE ON。但是,如果我在Delphi 7中编译并运行完全相同的项目,则会得到与探查器中所示完全相同的语句-如果应用程序是在D7或Seattle中编译的,则没有任何区别。

光标位置设置为clUseClient。如果使用SET NO_BROWSETABLE ON,则不会出现clUseServer。在使用TSqlConnectionTSqlQuery的最小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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com