Compartir a través de


sqlsrv_cancel

Descargar controlador PHP

Cancela una instrucción. Esto significa que se descarta cualquier resultado pendiente de la instrucción. Después de llamar a esta función, se puede volver a ejecutar la instrucción si se ha preparado con sqlsrv_prepare. No resulta necesario llamar a esta función si se han consumido todos los resultados asociados con la instrucción.

Sintaxis

  
sqlsrv_cancel( resource $stmt)  

Parámetros

$stmt: la instrucción que se va a cancelar.

Valor devuelto

Se devuelve un valor booleano True si la operación se realiza correctamente. De lo contrario, se devuelve el valor False.

Ejemplo

En el siguiente ejemplo se ejecuta una consulta en la base de datos AdventureWorks y luego se usan y cuentan los resultados hasta que la variable $salesTotal alcanza una cantidad especificada. Luego se descartan los resultados restantes de la consulta. En el ejemplo se da por hecho que SQL Server y la base de datos de AdventureWorks están instalados en el equipo local. Los resultados se agregan a la consola cuando se ejecuta el ejemplo en la línea de comandos.

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

Comentarios

Una instrucción preparada y ejecutada mediante la combinación de sqlsrv_prepare y sqlsrv_execute se puede volver a ejecutar con sqlsrv_execute después de llamar a sqlsrv_cancel. Una instrucción ejecutada con sqlsrv_query no se puede volver a ejecutar después de llamar a sqlsrv_cancel.

Consulte también

Referencia de API del controlador SQLSRV

Conexión al servidor

Recuperación de datos

Sobre los ejemplos de código de la documentación

sqlsrv_free_stmt