Cómo deshabilitar los conjuntos de resultados activos múltiples (MARS)
Esta característica se ha agregado en la versión 1.1 del Controlador de SQL Server para PHP.
La versión inicial del Controlador de SQL Server para PHP depende de la funcionalidad de conjuntos de resultados activos múltiples (MARS) de SQL Server. Esta característica se introdujo en SQL Server 2005 y permite ejecutar consultas adicionales sin tener que cerrar el conjunto de resultados de la consulta inicial.
Con todo, podría necesitar conectarse con un origen de datos de SQL Server que no habilita MARS.
El Controlador de SQL Server para PHP versión 1.1 cuenta con una opción de conexión que permite habilitar o deshabilitar MARS.
Para deshabilitar la compatibilidad con MARS desde una aplicación del Controlador de SQL Server para PHP versión 1.1
Puede usar la siguiente opción de conexión:
'MultipleActiveResultSets'=>false
Si la aplicación trata de ejecutar una consulta en una conexión que tiene un conjunto de resultados activo abierto, el segundo intento de consulta devolverá la información de error parecida a la siguiente:
La conexión no puede procesar esta operación porque hay una instrucción con resultados pendientes. Para que la conexión esté disponible para otras consultas, capture todos los resultados, o cancele o libere la instrucción. Para obtener más información, vea la documentación del producto sobre la opción de conexión de conjuntos de resultados activos múltiples.
Ejemplo
En el ejemplo siguiente se muestra cómo deshabilitar la compatibilidad con MARS.
<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "MyServer";
$connectionInfo = array( "Database"=>"AdventureWorks", 'MultipleActiveResultSets'=> false);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
}
sqlsrv_close( $conn);
?>