设置
使用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'
问题
问题是存储过程正确返回,我期待错误。
有什么想法吗?
答案 0 :(得分:2)
发现问题。
将timeOut变量(int)作为引用传递给SQLSetStmtAttr,并且引用位置的值远大于3.
正确实施是:
SQLSetStmtAttr( command, SQL_ATTR_QUERY_TIMEOUT, (SQLPOINTER)timeOut, NULL );