sqlsrv_cancel

Cancels a statement

説明

bool sqlsrv_cancel(resource $stmt)

Cancels a statement. Any results associated with the statement that have not been consumed are deleted. After sqlsrv_cancel has been called, the specified statement can be re-executed if it was created with sqlsrv_prepare. Calling sqlsrv_cancel is not necessary if all the results associated with the statement have been consumed.

パラメータ

stmt

The statement resource to be cancelled.

戻り値

成功した場合に true を、失敗した場合に false を返します。

例1 sqlsrv_cancel example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Sales FROM Table_1";

$stmt = sqlsrv_prepare( $conn, $sql);

if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

if( sqlsrv_execute( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

$salesTotal = 0;
$count = 0;

while( ($row = sqlsrv_fetch_array( $stmt)) && $salesTotal <=100000)
{
     $qty = $row[0];
     $price = $row[1];
     $salesTotal += ( $price * $qty);
     $count++;
}

echo "$count sales accounted for the first $$salesTotal in revenue.<br />";

// Cancel the pending results. The statement can be reused.
sqlsrv_cancel( $stmt);
?>

注意

The main difference between sqlsrv_cancel and sqlsrv_free_stmt is that a statement resource cancelled with sqlsrv_cancel can be re-executed if it was created with sqlsrv_prepare. A statement resource cancelled with sqlsrv_free_statement cannot be re-executed.

参考

  • sqlsrv_free_stmt
  • sqlsrv_prepare