如何使用C++的CDatabase ODBC连接到SQL Server数据库来设置或禁用查询超时。

问题描述 投票:0回答:1

我需要通过一些代码来运行一个查询。在MSSMS中运行查询需要一分半钟的时间(对于超过4M的行来说还算不错).在代码中,我用以下方法打开连接

CDatabase *base = new CDatabase () ;
base->OpenEx ("Driver={SQL Server};Server=Computer\\User;Database=base;") ;

然后,我可以创建 CRecordset 对象并运行查询。的 SELECT COUNT 查询正常工作(给出~4M)。第一个 SELECT cols 查询(获取一些属性)正常工作。它们各自的 CRecordset 是适当的封闭和清洁。第二种 SELECT cols 查询(返回4M行的大连接)每次尝试都会超时。

我不知道如何设置查询超时值,如何调用该参数,或者在哪里首先设置它。我尝试了 多种组合 的参数,我试着编辑ODBC试验池选项。我对使用另一个ODBC连接对象不感兴趣,但我可以设置一个DSN并通过它进行连接,而不是使用直接的连接字符串。

最坏的情况下,我就把它全部分页,但现在很麻烦,既然查询可以超时,从逻辑上讲应该也有办法设置超时,我想知道是什么。

c++ sql-server odbc query-timeout
1个回答
1
投票

查询超时不是一个连接字符串参数,至少对于SQL Server来说不是。你可能在寻找 CDatabase::SetQueryTimeout 成员功能。

© www.soinside.com 2019 - 2024. All rights reserved.