Como desabilitar vários conjuntos de resultados ativos (MARS)

Baixar o driver PHP

Se você precisa se conectar a uma fonte de dados do SQL Server que não permite vários conjuntos de dados ativos (MARS), pode usar a opção de conexão MultipleActiveResultSets para desabilitar ou habilitar o MARS.

Procedimento

Para desabilitar o suporte de MARS

  • Use a seguinte opção de conexão:

    'MultipleActiveResultSets'=>false  
    

    Se o aplicativo tentar executar uma consulta em uma conexão que tem um conjunto de resultados ativo aberto, a segunda tentativa de consulta retornará as informações de erro a seguir:

    A conexão não pode processar esta operação porque há uma instrução com resultados pendentes. Para disponibilizar a conexão para outras consultas, busque todos os resultados ou então cancele ou libere a instrução. Para obter mais informações sobre a opção de conexão MultipleActiveResultSets, consulte Connection Options.

Exemplo com SQLSRV

O exemplo a seguir mostra como desabilitar o suporte de MARS usando o driver SQLSRV dos Drivers da Microsoft para PHP para SQL Server.

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

Exemplo com PDO_SQLSRV

O exemplo a seguir mostra como desabilitar o suporte para MARS usando o driver PDO_SQLSRV dos Drivers da Microsoft para PHP para SQL Server.

<?php  
// Connect to the local server using Windows Authentication and AdventureWorks database  
$serverName = "(local)";   
$database = "AdventureWorks";  
  
try {  
   $conn = new PDO(" sqlsrv:server=$serverName ; Database=$database ; MultipleActiveResultSets=false ", NULL, NULL);   
   $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );   
}  
  
catch( PDOException $e ) {  
   die( "Error connecting to SQL Server" );   
}  
  
$conn = null;   
?>  

Consulte Também

Conectando-se ao servidor