@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ExecuteNonQuery発行時の問題について

1
投稿者投稿内容
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-12-14 09:41
脳味噌筋肉です。お世話になっております。

Dim ConnectionInstance As New OracleConnection(接続文字列※1)
Dim OracleCommandInstance As New OracleCommand(UPDATE文※2)
OracleCommandInstance.Connection = ConnectionInstance
ConnectionInstance.Open()
OracleCommandInstance.ExecuteNonQuery() → 問題発生箇所

上記コードの流れでExecuteNonQueryを発行した際、制御が戻りません。
(例外も発生せず)

接続文字列も問題なく(他のトランザクション処理で問題がないため)、UPDATE
文もSQLPLUSなどで流してみると問題なく処理します。

何故かこのコードの時に限ってこの問題が発生するのですが、原因を調査する際のポイ
ントで結構ですので思い当たる事がある方、ご教示頂けませんでしょうか?

よろしくお願い致します。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-12-14 09:58
接続文字列をわざとおかしな文字列("fdsafd"など存在しないユーザー名を指定してみるとか)にしてみた場合どうなりますか?
UPDATE文をわざとおかしな文(存在しない列を指定するとか)にしてみたらどうなりますか?
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-12-14 10:08
一郎さん、レスありがとうございます。

引用:

一郎さんの書き込み (2004-12-14 09:58) より:
接続文字列をわざとおかしな文字列("fdsafd"など存在しないユーザー名を指定してみるとか)にしてみた場合どうなりますか?
UPDATE文をわざとおかしな文(存在しない列を指定するとか)にしてみたらどうなりますか?




・接続文字列を「hoge」に変更

Dim ConnectionInstance As New OracleConnection(common.connectString)

の箇所で例外発生します。
System.ArgumentException' のハンドルされていない例外が system.data.oracleclient.dll で発生しました。
追加情報 : Format of the initialization string does not conform to specification starting at index 0.

・UPDATE文で構文を間違えてみる

 →SQL文が無効

・UPDATE文で存在しない列を指定

 →列名が無効

と、このようになります。

にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2004-12-14 10:32
対象となるデータにロックがかかっていませんか?
かもがや
大ベテラン
会議室デビュー日: 2004/08/31
投稿数: 103
投稿日時: 2004-12-14 10:44
にしざきさん、レスありがとうございました。

引用:

にしざきさんの書き込み (2004-12-14 10:32) より:
対象となるデータにロックがかかっていませんか?



NOWAITは自分でかけているのでロックではないだろうと見ていましたが
別なデータを更新したところ問題は出ませんでした。
どうもおっしゃるとおりのようです。

排他を見直す事にします。
1

スキルアップ/キャリアアップ(JOB@IT)