SQL_ATTR_QUERY_TIMEOUT未定时

时间:2013-04-16 16:12:43

标签: sql-server sql-server-2008-r2 timeout odbc

设置

使用SQL Server 2008 R2。

我有一个对存储过程的ODBC调用,应该使用带有SQL_ATTR_QUERY_TIMEOUT参数的SQLSetStmtAttr函数在3秒后超时。

SQLSetStmtAttr( command, SQL_ATTR_QUERY_TIMEOUT, (SQLPOINTER)&timeOut, NULL );

测试

我在存储过程中设置延迟15秒。存储过程确实需要超过15秒才能返回。

WAITFOR DELAY '00:00:15'

问题

问题是存储过程正确返回,我期待错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

发现问题。

将timeOut变量(int)作为引用传递给SQLSetStmtAttr,并且引用位置的值远大于3.

正确实施是:

SQLSetStmtAttr( command, SQL_ATTR_QUERY_TIMEOUT, (SQLPOINTER)timeOut, NULL );