是什么原因导致无法从.NET在DB2中设置QRYTIMLMT?

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

我们正在使用C#.NET 4.5中的IBM数据提供程序来查询i系列DB2数据库。通常,这很好,但是对于某些查询,DB2报告错误“ SQL0666-SQL查询超出了指定的时间限制或存储限制”。

我已经尝试过setting the command timeout to 0,但没有效果。我还尝试过以here解释的方式执行CHGQRYA命令,将QRYTIMLMT值设置为* NOMAX(或其他较大的值),但似乎无效。但是,如果我使用相同的命令来设置QRYSTGLMT(存储限制),它将生效。因此,我知道我正确使用了该命令,并且该命令已由数据库解释和执行。

那么,是什么导致我无法设置QRYTIMLMT值?

此外,我们的“ DBA”已将限制设置为* NOMAX,对于未通过.NET提供程序运行的查询,一切正常。

我们正在使用带有Service Pack SI42423的IBM客户端工具版本6r1。

ado.net timeout db2 .net-4.5
1个回答
0
投票

好,所以经过大量测试,我发现了问题。

我们正在使用DeriveParameters()方法正确设置参数类型,如果在设置CommandTimeout之前调用此方法,则后者无效(!)。解决的办法是颠倒这些语句的顺序。

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