0

ODBC接続とADO接続で同じ基になるSQLServer接続を共有して、両方が同じSPIDを使用するようにすることは可能ですか?

現在、SQLDriverConnectとADODB :: _ConnectionPtr->Openを使用しています。これらの接続はどちらの順序でも行うことができるので、おそらくもう一方を利用して一方を開くことは可能ですか?

(言語はC ++、データベースはSQL Server2005および2008です。ODBC接続文字列はDSNを使用します。ADOはProvider=SQLNCLI10を使用しますが、必要に応じて変更できます)。

4

1 に答える 1

1

ADOはOleDBを使用するため、ODBCと接続を共有することはできません。ODBC用のADOプロバイダーを使用している場合でも、既存のODBC接続ハンドルをラップできるADO APIがないため、使用できません。

しかし、本当の問題は、なぜ接続を共有したいのかということです。唯一の正当な理由は、ループバックローカル分散トランザクションを実行せずに2つの接続を同じトランザクションに登録することです。同じトランザクションに2つの異なる接続を登録することは常に可能でした。これが、MTSとCOM+の仕組みです。最初の接続はsp_getbindtokenを使用して登録トークンを取得し、2番目の接続はsp_bindsessionを使用してそれ自体を登録します。このメカニズムは絶滅の危機に瀕している非推奨のリストに含まれていますが、結局のところ、90年代のテクノロジーについて質問しています...(ODBC、ADO)

于 2009-12-18T17:30:27.220 に答える