当SQL_SOPT_SS_CURSOR_OPTIONS选项设置为SQL_CO_FIREHOSE_AF时,使用firehose游标的自动提取行为

时间:2013-03-19 14:52:19

标签: odbc

在firehose游标上,当语句属性SQL_SOPT_SS_CURSOR_OPTIONS设置为SQL_CO_FIREHOSE_AF并执行语句时,会观察到自动提取的不同行为,如下所述:

1)第一次调用SQLExecute时,它不会自动提取。 2)当在同一个stament句柄上第二次调用SQLExecute时,在使用SQLFreestmt(hstmt, SQL_CLOSE)关闭游标后,它会使用SQLExecute自动提取1行。

那么预期的行为是什么,是否应该自动提取?这似乎是SQL Native客户端驱动程序中的错误。

此外,我没有看到SQL_CO_FIREHOSE_AF的文档,但它列在sqlncli.h中?

带有评论的

代码段:

    rc = SQLSetStmtAttr(hstmt1, (UWORD) SQL_SOPT_SS_CURSOR_OPTIONS, (SQLPOINTER) SQL_CO_FIREHOSE_AF, 0);
    ...
    rc = SQLSetStmtAttr(hstmt1, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)1, 0);   
 // Execute first statement
    rc = SQLExecute(hstmt1);  // it does not autofetch the data.
    ...

    rc = SQLFreeStmt(hstmt1, SQL_CLOSE);
    ...
    rc = SQLSetStmtAttr(hstmt1, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)1, 0);   
 // Execute first statement
 rc = SQLExecute(hstmt1);  // it  autofetch 1 record.

谢谢,

穆克什

0 个答案:

没有答案