openquery構文について


saha  2005-04-26 00:25:30  No: 89556

[OSのVER]:(クライアント)NT4.0/WinXP (サーバー)Win2000
[SQLServerのVER]:SQLServer2000

お世話になっております。

以下のような現象が出て、原因がわからず困ってます。
SQLServerにoracleのリンクテーブルを作成していまして
vb6.0でopenquery構文を使用してデータの削除を行おうとしています。

    g_adoConnection.BeginTrans                                'トランザクション開始
        
    strSql = "delete from openquery(ORA,'select item_cd,item_nm from m_hin')"    'データを削除"
    g_adoConnection.Execute strSql

上記構文のExecuteした時点で  OLE DB エラー トレース [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]
とエラーが出てしまいます。
BeginTrans を使用しなければ上手くいくのですが、
エラートラップしてrollback処理をしたい為どうしても使用したいです。
どなたかお分かりになる方いらっしゃったらご教授お願い致します。


saha  2005-04-26 20:33:25  No: 89557

[OSのVER]:(クライアント)NT4.0/WinXP (サーバー)Win2000
[SQLServerのVER]:SQLServer2000

お世話になっております。
sahaです。

http://support.microsoft.com/default.aspx?scid=kb;ja;280106
リンクを参考にレジストリを変更して環境は整えたのですが、

g_adoConnection.BeginTrans 'トランザクション開始

strSql = "delete from openquery(ORA,'select item_cd,item_nm from m_hin')" 'データを削除"
g_adoConnection.Execute strSql

Executeした時点で  今度は[OLE/DB provider returned message: このセッションでは、これ以上のトランザクションを開始できません。]
とエラーが出てしまいます。
色々調べてみたのですが、ネストもしていないのに原因が良く分かりません。
もしご存知の方いらっしゃいましたら申し訳ありませんが
宜しくお願い致します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加