Partager via


sqlsrv_cancel

Télécharger le pilote PHP

Annule une instruction. Cela signifie que les résultats de l’instruction en attente sont ignorés. Une fois que cette fonction a été appelée, l’instruction peut être réexécutée si elle a été préparée avec sqlsrv_prepare. L’appel de cette fonction n’est pas nécessaire si tous les résultats associés à l’instruction ont été consommés.

Syntaxe

  
sqlsrv_cancel( resource $stmt)  

Paramètres

$stmt: instruction à annuler.

Valeur renvoyée

Valeur booléenne : true si l’opération a réussi. Dans le cas contraire, la valeur est false.

Exemple

L’exemple suivant cible la base de données AdventureWorks pour exécuter une requête, puis consomme et compte les résultats jusqu’à ce que la variable $salesTotal atteigne le montant spécifié. Les autres résultats de requête sont alors ignorés. L’exemple part du principe que SQL Server et la base de données AdventureWorks sont installés sur l’ordinateur local. Toute la sortie est écrite dans la console quand l’exemple est exécuté à partir de la ligne de commande.

<?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);  
?>  

Commentaires

Une instruction préparée et exécutée à l’aide de la combinaison de sqlsrv_prepare et sqlsrv_execute peut être exécutée avec sqlsrv_execute après l’appel à sqlsrv_cancel. Une instruction exécutée avec sqlsrv_query ne peut pas être réexécutée après l’appel à sqlsrv_cancel.

Voir aussi

Informations de référence sur l’API du pilote SQLSRV

Connexion au serveur

Récupération de données

À propos des exemples de code dans la documentation

sqlsrv_free_stmt