2017-04-05 51 views
0

我在C使用ODBC++应用程序连接到SQL Server 我不得不隐式游标转换仅前从“DynamicServer”(和任何服务器端ODBC游标)简单的SELECT查询意外发生在”客户端“隐式游标转换,由于意见

最近我意识到,这是由于意见(或/ ** /或 - )在查询的开头写的。

我可以重现此问题上都“的SQL Server Native Client的11.0”和“ODBC驱动程序13为SQL Server”

我们确实把那些意见,以便使查询可以在服务器端很容易识别。 下面一个例子:

没有游标类型转换发生在:

SELECT * from table_x 

但服务器游标不能与下面的查询打开

-- selectYY.sql 
SELECT * from table_x 

另外我注意到,随着/评论** /查询查询或之后,中间不触发游标转换

任何人有什么是怎么回事的线索? 这是预期的行为吗?

根据msdn的预期行为是将批量查询(具有多个语句的查询)转换为ClientForwardOnly,似乎奇怪的是,初始注释足以使查询看作批处理。

+0

难道触发 “批量查询” 换行?这个查询会发生什么:'/ * - selectYY.sql */SELECT * from table_x'?或使用具有换行符在什么地方之间的查询(不能写正确格式化的评论,希望你的想法),像'SELECT * FROM \ r \ n table_x' – erg

+0

我已经没用的新线和空间的尝试开始,在查询的中间,它不会影响游标类型 –

+0

它是由SqlServer的团队研究[链接](https://connect.microsoft.com/SQLServer/Feedback/Details/3132162) –

回答