2011-07-09 7 views
0

私はMicrosoft ODBCをOracle用に使用し、TransactionScopeで分散トランザクションを処理しますが、コードでエラーが発生します:エラー[HYC00] [ORACLE] [ODBC]オプションが実装されていません。 vb.net。 、なぜ感謝を私に言うことができるMicrosoft ODBC for TransactionScope

sub Main() 
    dim strConn1 as string = "Driver={Microsoft ODBC for Oracle};Server=server1;UID=user1;PWD=pwd1;" 
    dim strConn2 as string = "Driver={Microsoft ODBC for Oracle};Server=server2;UID=user2;PWD=pwd2;" 
    try 
     using scope as new TransactionScope() 
      using conn1 as new OdbcConnection(strConn1) 
       conn1.Open() 'always throws error here 
       dim command1 as new OdbcCommand(strSQL1) 
       command1.ExecuteNonQuery() 
       using conn2 as new OdbcConnection(strConn2) 
        dim command2 as new OdbcCommand(strSQL2) 
        command2.ExecuteNonQuery() 
       end using 
      end using 
      scope.Complete() 
     end using 
    catch 
    end try 
end sub 

は、ここに私のコードです。

答えて

0

具体的にしてください。接続オブジェクトはどこですか?クラスファイルのコード全体を入れてください。接続オブジェクトに問題があるようです。

+0

こんにちはAmRan、私は自分のコードを改訂しました。ありがとう – viscroad

1

これは問題ではないかもしれませんが、Microsoft Oracleドライバを使用することはありません。私は常に、Oracle Instant Clientとも呼ばれるOracleドライバを使用します。あなたはget it hereです。

+1

Oracle用のMicrosoft ODBCは悪いニュースです。疫病を避けてください。理由の長い一覧はこの領域の対象外ですが、ここで最初の点について言及します.8i以降のOracleではサポートされていません。 – Dan

+0

私はマイクロソフト社のドライバーにとってあまりにも多くの悪い経験をしていますので、もはや気にしません。 8iを使用していたときに問題が発生しました。 – DCookie

+0

同じです。 Unicodeサポートの完全な欠如、結果セットを返すプロシージャに対する非標準的なサポート、サーバー側のカーソルなどからのフェッチエラーの奇妙な処理などです。その唯一の利点は、後継者とは異なり、WCHARをすべてのものに使用する必要はありませんでした。 – Dan