sqlsrv_cancel
Bricht eine Anweisung ab. Dies bedeutet, dass alle ausstehenden Ergebnisse für die Anweisung verworfen werden. Nachdem diese Funktion aufgerufen wurde, kann die Anweisung erneut ausgeführt werden, wenn sie mit sqlsrv_prepare vorbereitet wurde. Das Aufrufen dieser Funktion ist nicht erforderlich, wenn alle Ergebnisse, die der Anweisung zugeordnet sind, verwendet wurden.
Syntax
sqlsrv_cancel( resource $stmt)
Parameter
$stmt: Die Anweisung, die abgebrochen werden soll.
Rückgabewert
Ein boolescher Wert: true , wenn der Vorgang erfolgreich war. Andernfalls lautet der Wert false.
Beispiel
Das folgende Beispiel nimmt die AdventureWorks-Datenbank als Ziel zur Ausführung einer Abfrage. Es werden dann Ergebnisse verarbeitet und gezählt, bis die Variable $salesTotal einen angegebenen Betrag erreicht. Die verbleibenden Abfrageergebnisse werden anschließend verworfen. Das Beispiel setzt voraus, dass SQL Server und die AdventureWorks-Datenbank auf dem lokalen Computer installiert sind. Wenn das Beispiel über die Befehlszeile ausgeführt wird, werden alle Ausgaben in die Konsole geschrieben.
<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Prepare and execute the query. */
$tsql = "SELECT OrderQty, UnitPrice FROM Sales.SalesOrderDetail";
$stmt = sqlsrv_prepare( $conn, $tsql);
if( $stmt === false )
{
echo "Error in statement preparation.\n";
die( print_r( sqlsrv_errors(), true));
}
if( sqlsrv_execute( $stmt ) === false)
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Initialize tracking variables. */
$salesTotal = 0;
$count = 0;
/* Count and display the number of sales that produce revenue
of $100,000. */
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.\n";
/* Cancel the pending results. The statement can be reused. */
sqlsrv_cancel( $stmt);
?>
Kommentare
Eine Anweisung, die mit der Kombination von sqlsrv_prepare und sqlsrv_execute vorbereitet und ausgeführt wird, kann nach dem Aufruf von sqlsrv_cancel erneut mit sqlsrv_execute ausgeführt werden. Eine Anweisung, die mit sqlsrv_query ausgeführt wird, kann nach dem Aufruf von sqlsrv_cancel nicht erneut ausgeführt werden.
Weitere Informationen
API-Referenz für den SQLSRV-Treiber