是否可以让ODBC连接和ADO连接共享相同的基础SQL Server连接,以便两者都使用相同的SPID?
目前我正在使用SQLDriverConnect和ADODB :: _ ConnectionPtr-> Open。我可以按任意顺序建立这些连接,所以也许可以打开另一个使用另一个连接?
(语言是C ++,数据库是SQL Server 2005& 2008. ODBC连接字符串使用DSN.ADO使用Provider = SQLNCLI10,但如果需要,可以更改。)
答案 0 :(得分:1)
ADO使用OleDB,因此您无法与ODBC共享连接。即使您使用ODBC的ADO提供程序,您仍然无法使用,因为没有ADO API允许包装现有的ODBC连接句柄。
但真正的问题是:你为什么要分享这种联系?唯一有效的原因是在同一事务中注册两个连接而不执行环回本地分布式事务。始终可以在同一事务中注册两个不同的连接,这就是MTS和COM +的工作方式。第一个连接使用sp_getbindtoken获取注册令牌,第二个连接使用sp_bindsession注册自己。这个机制是濒临灭绝的濒危名单,但毕竟你问的是90年代的技术......(ODBC,ADO)