我需要一些代码运行一个查询。在MSSMS中运行查询需要1分半钟(对于超过4M行来说不太破旧)。在我打开连接的代码中
CDatabase *base = new CDatabase () ;
base->OpenEx ("Driver={SQL Server};Server=Computer\\User;Database=base;") ;然后,我可以创建CRecordset对象并运行查询。SELECT COUNT查询工作正常(给出4m)。第一个SELECT cols查询(获取一些属性)工作正常。他们各自的CRecordset是正确关闭和清洗。第二个SELECT cols查询(返回400万行的大联接)每次尝试都会超时。
我不知道如何设置查询超时值,如何调用该参数,或者首先在何处设置该参数。我尝试了连接字符串中参数的多组合,我尝试了编辑ODBC试点池选项。我对使用另一个ODBC连接对象不感兴趣,但我可以设置一个DSN并通过它进行连接,而不是使用直接连接字符串。
最糟糕的是--我只需要分页就行了--但现在这是个麻烦,而且由于查询可以超时,所以逻辑上也应该有一种方法来设置超时,我想知道它是什么。
发布于 2020-04-30 08:11:23
查询超时不是连接字符串参数,至少对于Server不是。您可能正在寻找CDatabase::SetQueryTimeout成员函数。
https://stackoverflow.com/questions/61508133
复制相似问题