我想知道Microsoft 的 Access 数据库是否存在多个活动结果集MARS ?我知道这适用于 SQL Server。我尝试将它与 Access 一起使用,但它对我不起作用。我想知道如何将 MARS 与 Access 一起使用。
问问题
1165 次
1 回答
1
简而言之,Microsoft Access 不支持多个活动结果集 (MARS)。ODBC 提供程序不支持它,如果您从性能的角度考虑 MARS 实际为您提供的功能,那么为什么不支持的原因应该很明显。
如果您认为 MARS 存在的最重要原因是您是否在 SQL 服务器上执行了存储过程,这些过程会产生多个结果集。如果您有这样的查询,您需要能够以某种方式访问这些多个结果集。
但是在 Access 中没有存储过程之类的东西。如果您有多个查询,您可以分别执行每个查询并获取每个查询的结果集。因此,不需要火星。
笔记
根据评论,这是一个如何同时打开两个数据读取器的示例:
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 回答