array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.sqlsrv-cancel.php', 1 => 'sqlsrv_cancel', ), 'up' => array ( 0 => 'ref.sqlsrv.php', 1 => 'Функции SQLSRV', ), 'prev' => array ( 0 => 'function.sqlsrv-begin-transaction.php', 1 => 'sqlsrv_begin_transaction', ), 'next' => array ( 0 => 'function.sqlsrv-client-info.php', 1 => 'sqlsrv_client_info', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/sqlsrv/functions/sqlsrv-cancel.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(No version information available, might only be in Git)
sqlsrv_cancel — Отменяет оператор
Отменяет оператор. Все неиспользованные результаты, связанные с оператором, удаляются. После вызова sqlsrv_cancel() указанный оператор может быть выполнен повторно, если он был создан с помощью sqlsrv_prepare(). Вызов sqlsrv_cancel() не требуется, если все результаты, связанные с оператором, были использованы.
stmt
Ресурс оператора, который нужно отменить.
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Пример #1 Пример использования sqlsrv_cancel()
<?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 продаж составили первый $$salesTotal выручки.<br />";
// Отменить ожидающие результаты. Оператор можно использовать повторно.
sqlsrv_cancel( $stmt);
?>
Основное различие между sqlsrv_free_stmt() и sqlsrv_cancel() заключается в том, что ресурс оператора, отменённый с помощью sqlsrv_cancel(), может быть повторно выполнен, если он был создан с помощью sqlsrv_prepare(). Ресурс оператора, отменённый с помощью sqlsrv_free_statement(), не может быть повторно выполнен.