我需要通过一些代码来运行一个查询。在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并通过它进行连接,而不是使用直接的连接字符串。
最坏的情况下,我就把它全部分页,但现在很麻烦,既然查询可以超时,从逻辑上讲应该也有办法设置超时,我想知道是什么。
查询超时不是一个连接字符串参数,至少对于SQL Server来说不是。你可能在寻找 CDatabase::SetQueryTimeout 成员功能。