Condividi tramite


Procedura: Disabilitare più set di risultati attivi (MARS)

Download del driver PHP

Se è necessario connettersi a un'origine dati SQL Server che non abilita più set di risultati attivi (MARS, Multiple Active Result Sets), è possibile usare l'opzione di connessione MultipleActiveResultSets per disabilitare o abilitare più set di risultati attivi.

Procedura

Per disabilitare il supporto MARS

  • Usare l'opzione di connessione seguente:

    'MultipleActiveResultSets'=>false  
    

    Se l'applicazione tenta di eseguire una query su una connessione con un set di risultati attivo aperto, il secondo tentativo di query restituirà le informazioni di errore seguenti:

    La connessione non può elaborare questa operazione perché è presente un'istruzione con risultati in sospeso. Per rendere disponibile la connessione per altre query recuperare tutti i risultati, annullare o liberare l'istruzione. Per altre informazioni sull'opzione di connessione MultipleActiveResultSets, vedere Connection Options.

Esempio di SQLSRV

L'esempio seguente mostra come disabilitare il supporto di MARS usando il driver SQLSRV dei driver Microsoft per PHP per 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);  
?>  

Esempio di PDO_SQLSRV

L'esempio seguente mostra come disabilitare il supporto di MARS usando il driver PDO_SQLSRV dei driver Microsoft per PHP per 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;   
?>  

Vedi anche

Connessione al server