次の方法で共有


方法:複数のアクティブな結果セット (MARS) を無効にする

PHP ドライバーのダウンロード

複数のアクティブな結果セット (MARS) を有効にしていない SQL Server データ ソースに接続する必要がある場合、MultipleActiveResultSets 接続オプションを使用して、MARS を無効または有効にすることができます。

手順

MARS のサポートを無効にするには

  • 次の接続オプションを使用します。

    'MultipleActiveResultSets'=>false  
    

    アプリケーションが、開いているアクティブな結果セットのある接続でクエリを実行しようとする場合、2 番目のクエリ試行で、次のエラー情報が返されます。

    接続は、結果が保留中のステートメントがあるために、この操作を処理できません。 他のクエリが接続を使用できるようにするには、すべての結果をフェッチするか、ステートメントをキャンセルまたは解放します。 MultipleActiveResultSets 接続オプションの詳細については、「 Connection Options」を参照してください。

SQLSRV の例

次の例は Microsoft SQL Server 用 Drivers for PHPの SQLSRV ドライバーを使用して、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);  
?>  

PDO_SQLSRV の例

次の例は、Microsoft SQL Server 用 Drivers for PHP の PDO_SQLSRV ドライバーを使用して、MARS サポートを無効にする方法を示しています。

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

参照

サーバーへの接続