Fix error message in close cursor. Change prepare to query in test.

This commit is contained in:
v-dareck 2017-02-09 16:41:39 -08:00
parent 690571d41d
commit fc8433ac83
2 changed files with 8 additions and 9 deletions

View file

@ -393,11 +393,11 @@ int pdo_sqlsrv_stmt_close_cursor(pdo_stmt_t *stmt TSRMLS_DC)
try {
SQLSRV_ASSERT( stmt != NULL, "pdo_sqlsrv_stmt_next_rowset: pdo_stmt object was null" );
SQLSRV_ASSERT( stmt != NULL, "pdo_sqlsrv_stmt_close_cursor: pdo_stmt object was null" );
sqlsrv_stmt* driver_stmt = reinterpret_cast<sqlsrv_stmt*>( stmt->driver_data );
SQLSRV_ASSERT( driver_stmt != NULL, "pdo_sqlsrv_stmt_next_rowset: driver_data object was null" );
SQLSRV_ASSERT( driver_stmt != NULL, "pdo_sqlsrv_stmt_close_cursor: driver_data object was null" );
// to "close the cursor" means we make the statement ready for execution again. To do this, we
// skip all the result sets on the current statement.
@ -415,7 +415,7 @@ int pdo_sqlsrv_stmt_close_cursor(pdo_stmt_t *stmt TSRMLS_DC)
}
catch( ... ) {
DIE( "pdo_sqlsrv_stmt_next_rowset: Unknown exception occurred while advanding to the next result set." );
DIE( "pdo_sqlsrv_stmt_close_cursor: Unknown exception occurred while advancing to the next result set." );
}
return 1;

View file

@ -27,18 +27,17 @@ try
var_dump($ret);
// prepare two stmt, execute, and fetch, then closeCursor.
// use two stmt, execute, and fetch, then closeCursor.
// use one with client side buffering.
$stmt1 = $conn->prepare("select 123 as 'IntCol'");
$stmt1 = $conn->query("select 123 as 'IntCol'");
$stmt2 = $conn->prepare("select 'abc' as 'Charcol'", array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL, PDO::SQLSRV_ATTR_CURSOR_SCROLL_TYPE => PDO::SQLSRV_CURSOR_BUFFERED));
$stmt1->execute();
$result = $stmt1->fetch(PDO::FETCH_NUM);
$result = $stmt1->fetch(PDO::FETCH_NUM);
print_r($result[0]);
echo "\n";
$ret = $stmt1->closeCursor();
var_dump($ret);
$stmt2->execute();
$result = $stmt2->fetch(PDO::FETCH_NUM);
$stmt2->execute();
$result = $stmt2->fetch(PDO::FETCH_NUM);
print_r($result[0]);
echo "\n";
$ret = $stmt2->closeCursor();