0

Microsoft の Access データベースに複数のアクティブな結果セットMARSが存在するかどうかを知りたいですか? これが SQL Server に存在することは承知しています。Accessで使ってみましたが、うまくいきませんでした。Access で MARS を使用する方法を知りたいです。

4

1 に答える 1

1

つまり、Microsoft Access は複数のアクティブな結果セット (MARS) をサポートしていません。これは ODBC プロバイダーによってサポートされておらず、パフォーマンスの観点から MARS が実際に提供するものについて考えれば、そうでない理由は明らかです。

MARS が存在する最も重要な理由は、複数の結果セットを生成する SQL サーバー上でストアド プロシージャを実行した場合です。そのようなクエリがある場合は、それらの複数の結果セットに何らかの方法でアクセスできる必要があります。

しかし、Access にはストアド プロシージャのようなものはありません。複数のクエリがある場合は、それぞれを個別に実行して、それぞれの結果セットを取得できます。したがって、MARS は必要ありません。

ノート

コメントに照らして、2 つのデータ リーダーを同時に開く方法の例を次に示します。

 using(var connection1 = new OdbcConnection("your connection string here"))
 {
   connection1.Open();
   using(var connection2 = new OdbcConnection("your connection string here"))
   {
     connection2.Open();

     using(var cmd1 = connection1.CreateCommand())
     {
       cmd1.CommandText = "YOU FIRST QUERY HERE";

       using(var dataReader1 = cmd1.ExecuteReader())
       {
          while(dataReader1.Read())
          {
             // keep reading data from dataReader1 / connection 1
             //  .. at some point you may need to execute a second query

             using(var cmd2 = connection2.CreateCommand())
             {
                cmd2.CommandText = "YOUR SECOND QUERY HERE";

                // you can now execute the second query here
                using(var dataReader2 = cmd2.ExecuteReader())
                {
                   while(dataReader2.Read())
                   {

                   }
                }
             }
          } 
       }
     }
     connection2.Close();
   }
   connection1.Close();
 }
于 2013-01-23T16:20:00.227 に答える