2011-07-09 26 views
0

我使用Microsoft ODBC for Oracle,並使用TransactionScope處理分佈式事務,但代碼拋出錯誤:錯誤[HYC00] [ORACLE] [ODBC]選項未實現,我的代碼位於vb.net。用於Oracle的Microsoft ODBC與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驅動程序,也稱爲Oracle即時客戶端。你可以get it here

+1

用於Oracle的Microsoft ODBC是個壞消息。避免它像瘟疫一樣。一長串的理由超出了這個空間的範圍,但我會在這裏提到第一個:它在8i以後的任何版本的Oracle中都不支持。 – Dan

+0

我對微軟的驅動程序有太多不好的經驗,所以我甚至不再爲它煩惱。當我使用8i時,我遇到了問題。 – DCookie

+0

同樣在這裏。完全缺乏Unicode支持,對返回結果集的過程的非標準支持,*非常奇怪的處理服務器端遊標的提取錯誤等等。它唯一的優點是不像其後繼者那樣,它並沒有強迫我使用WCHAR。 – Dan