Procédure : Désactiver MARS (Multiple Active Result Set)

Télécharger le pilote PHP

Si vous avez besoin de vous connecter à une source de données SQL Server qui n’active pas MARS (Multiple Active Result Sets), vous pouvez utiliser l’option de connexion MultipleActiveResultSets pour désactiver ou activer MARS.

Procédure

Pour désactiver la prise en charge de MARS

  • Utilisez l’option de connexion suivante :

    'MultipleActiveResultSets'=>false  
    

    Si votre application tente d’exécuter une requête sur une connexion qui a un jeu de résultats actif ouvert, la deuxième tentative de requête retourne les informations d’erreur suivantes :

    La connexion ne peut pas traiter cette opération, car il existe une instruction avec des résultats en attente. Pour rendre la connexion disponible pour d’autres requêtes, extrayez tous les résultats, annulez l’instruction ou libérez-la. Pour plus d’informations sur l’option de connexion MultipleActiveResultSets, consultez Connection Options.

Exemple SQLSRV

L’exemple suivant montre comment désactiver la prise en charge de MARS, à l’aide du pilote SQLSRV de Pilotes Microsoft SQL Server pour PHP.

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

Exemple PDO_SQLSRV

L’exemple suivant montre comment désactiver la prise en charge de MARS, à l’aide du pilote PDO_SQLSRV de Pilotes Microsoft SQL Server pour PHP.

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

Voir aussi

Connexion au serveur