我有一个最初需要连接到Sybase(通过ODBC)的应用程序,但我还需要添加连接到SQL Server的能力。由于ODBC应该能够处理这两个问题,所以我认为我处于一个很好的位置。不幸的是,默认情况下,SQL Server不会让我嵌套ODBC命令和ODBCDataReaders--它会抱怨连接忙(连接忙于另一个命令的结果)。打开SQL Server的ODBC连接中的多个结果集
我知道我必须指定在通过本机驱动程序连接到SQL Server时在类似情况下允许多个活动结果集(MARS),所以我认为这不是问题。
创建SystemDSN时,DSN向导没有entr y。 (为HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBC.INI \ system-dsn-name添加一个值为Yes的MARS_Connection)。有些人已经提供了注册表黑客来解决这个问题,但这并不起作用。
另一个建议是创建一个文件dsn,并添加“MARS_Connection = YES”。没有工作。
最后,一个无DSN的连接字符串。我已经试过这一个(使用MultipleActiveResultSets - 相同的变量作为SQL Server连接将使用),
"Driver={SQL Native Client};Server=xxx.xxx.xxx.xxx;Database=someDB;Uid=u;Pwd=p;MultipleActiveResultSets=True;"
这一个:
"Driver={SQL Native Client};Server=192.168.75.33\\ARIA;Database=Aria;Uid=sa;Pwd=service;MARS_Connection=YES;"
我已经检查了各种连接字符串网站 - 他们都表明我已经尝试过。
我要声明,我都试过SQL Server驱动程序和SQL Server本机驱动程序...
不是一个真正的解决方案,而是过多的信息(或者至少相当一点):[SQL Server 2005中的多活动结果集(MARS)](http://msdn.microsoft.com/zh-cn/library /ms345109%28SQL.90%29.aspx)。另一方面,也许你已经阅读过......你使用的是什么版本的SQL Server? 2005+? – scherand 2010-04-23 21:34:54