Compartir a través de


sqlsrv_send_stream_data

Envía datos a partir de secuencias de parámetros al servidor. Con cada llamada a sqlsrv_send_stream_data se envían hasta ocho kilobytes (8K) de datos.

Nota

De forma predeterminada, todos los datos en secuencia se envían al servidor cuando se ejecuta una consulta. Si no se cambia este comportamiento predeterminado, no es necesario usar sqlsrv_send_stream_data para enviar datos en secuencia al servidor. Para obtener información acerca de cómo cambiar el comportamiento predeterminado, consulte la sección Parámetros de sqlsrv_query o sqlsrv_prepare.

Sintaxis

sqlsrv_send_stream_data( resource $stmt)

Parámetros

$stmt: un recurso de instrucción correspondiente a una instrucción ejecutada.

Valor devuelto

Valor booleano: true si hay más datos para enviar. En caso contrario, false.

Ejemplo

En el ejemplo siguiente se abre una revisión del producto como una secuencia y se envía al servidor. El comportamiento predeterminado de enviar todos los datos en secuencia en tiempo de ejecución está deshabilitado. En el ejemplo se supone que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Cuando se ejecuta el ejemplo desde la línea de comandos, todos los resultados se escriben en la consola.

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

/* Define the query. */
$tsql = "UPDATE Production.ProductReview 
         SET Comments = ( ?) 
         WHERE ProductReviewID = 3";

/* Open parameter data as a stream and put it in the $params array. */
$comment = fopen( "data://text/plain,[ Insert lengthy comment.]", "r");
$params = array( &$comment);

/* Prepare the statement. Use the $options array to turn off the
default behavior, which is to send all stream data at the time of query
execution. */
$options = array("SendStreamParamsAtExec"=>0);
$stmt = sqlsrv_prepare( $conn, $tsql, $params, $options);

/* Execute the statement. */
sqlsrv_execute( $stmt);

/* Send up to 8K of parameter data to the server with each call to
sqlsrv_send_stream_data. Count the calls. */
$i = 1;
while( sqlsrv_send_stream_data( $stmt)) 
{
      echo "$i call(s) made.\n";
      $i++;
}

/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

Vea también

Conceptos

Acerca de ejemplos de código en la documentación

Otros recursos

Referencia de la API (Controlador SQL Server para PHP)
Actualizar datos (Controlador de SQL Server para PHP)