WindowsXP(SP2) VB2005 Oracle9i
①DBからデータをDataSetにバインドする
②データセットに行を追加。
J20_DataSet.Tables("J20F").Rows.Add("オーバー納品", W_Date, W_Suryo, W_Suryo, 0, "オーバー納品", 0, "99")
③ある条件を満たしたら追加した行をデータセットから削除。
J20_DataSet.Tables("J20F").Rows.RemoveAt(追加した行)
④フォームの×ボタンでフォームを閉じる。
「呼び出し履歴のフレームにシンボルは読み込まれません。
ソース コードを表示できません。」
のメッセージの後に、
LoaderLock が検出されました。
Message: OS ローダー ロック内でマネージ実行を試行しました。
DllMain またはイメージ初期化関数内部でマネージ コードを実行しないで
ください。この動作は、アプリケーションをハングさせる原因となる
可能性があります。
のエラーが出ます。どなたか解決方法をご教授願います。
手元の環境では再現しないので、思いつくところで…
-------------
(1) データ操作のために、別スレッドを起動していませんか?
(2) iTunes をインストールしていませんか?
http://social.msdn.microsoft.com/forums/en-US/clr/thread/fd3b1842-531e-42c0-9a40-b78b77e14abb/
> どなたか解決方法をご教授願います。
何か問題があってエラーになっていると思うので、原因は明らかに
しておいた方が良いと思いますが、メッセージが出ないようにするなら、
1) メニューから [デバッグ] - [例外] を選択。
2) [例外]ダイアログで [Managed Debugging Assistants] を展開。
3) [LoaderLock] の [スローされるとき] をオフにする。
とすると回避できるかも知れません。それでも駄目ならば、レジストリの
HKLM\SOFTWARE\Microsoft\.NETFramework で MDA を 0 にするとか。
魔界の仮面弁士さんレスありがとうございます。
>(1) データ操作のために、別スレッドを起動していませんか?
現状はフォームロードでDBに接続してトランザクションを開始
しています。
Private Trn As OracleTransaction
'-- 接続文字列セット --
OraCon.ConnectionString = "User ID= " & CnUser & ";Password=" & CnPass & ";Data Source=" & CnServ
OraCmd.Connection = OraCon
OraCon.Open()
Trn = OraCon.BeginTransaction
としています。これが原因かと思いFromClosingイベントで
Trn.Rollback()
OraCon.Close()
OraCon.Dispose()
を実行してもエラーが発生します。
やり方を間違えているのでしょうか?
上記以外で問題のデータセットを作成
する前に4つデータセットを作成しています。
>(2) iTunes をインストールしていませんか?
>http://social.msdn.microsoft.com/forums/en-US/clr/thread/fd3b1842->531e-42c0-9a40-b78b77e14abb/
iTunes はインストールしていません。
参照アドレスを見たのですが英語でよく分かりません^^;
インストールするだけで駄目なのでしょうか?
それとも iTunes を起動しながらのVB2005の作業が
駄目なのでしょうか?
>1) メニューから [デバッグ] - [例外] を選択。
>2) [例外]ダイアログで [Managed Debugging Assistants] を展開。
>3) [LoaderLock] の [スローされるとき] をオフにする。
アドバイスのやり方でメッセージはでないようになるのですが
ビルドしてエグゼを実行したらエラーが発生します。
解決しました。
掲示したコードと違う箇所(今回のエラーとは無関係)
のコードを変更したらエラーが発生しなくなりました。
(※魔界の仮面弁士さんからのアドバイスのメッセージを
表示しないようにする[LoaderLock] の [スローされるとき] をオフにする。
はしていない状態です。)
結局原因はわからないままエラーが発生しなくなりました。
魔界の仮面弁士さんアドバイスありがとうございました。