sqlsrv_cancel
문을 취소합니다. 즉, 문의 보류 중인 결과가 모두 삭제됩니다. 이 함수가 호출된 후 sqlsrv_prepare가 준비되었으면 명령문을 다시 실행할 수 있습니다. 문과 연결된 모든 결과가 사용된 경우에는 이 함수를 호출할 필요가 없습니다.
구문
sqlsrv_cancel( resource $stmt)
매개 변수
$stmt: 취소할 문입니다.
Return Value
부울 값: 작업이 성공한 경우 true 입니다. 그렇지 않으면 false입니다.
예시
다음 예제에서는 AdventureWorks 데이터베이스를 대상으로 쿼리를 실행한 다음 변수 $salesTotal 지정된 양에 도달할 때까지 결과를 사용하고 계산합니다. 나머지 쿼리 결과는 삭제됩니다. 이 예시에서는 SQL Server 및 AdventureWorks 데이터베이스가 로컬 컴퓨터에 설치된 것으로 가정합니다. 모든 출력은 명령줄에서 예시가 실행될 때 콘솔에 기록됩니다.
<?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);
?>
설명
sqlsrv_prepare 및 sqlsrv_execute 조합하여 준비하고 실행하는 문은 sqlsrv_cancel 호출한 후 sqlsrv_execute 사용하여 다시 실행할 수 있습니다. sqlsrv_query 사용하여 실행되는 문은 sqlsrv_cancel 호출한 후 다시 실행할 수 없습니다.