0

我需要通过一些代码运行查询。在 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 并通过它进行连接,而不是使用直接连接字符串。

最坏的情况是最坏的情况,我只是将它全部分页,但现在很麻烦,而且由于查询可能超时,从逻辑上讲,也应该有一种方法来设置超时,我想知道它是什么。

4

1 回答 1

0

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

于 2020-04-30T08:11:23.907 回答