- PR -

VB.NETのSQL更新エラーにつきまして

1
投稿者投稿内容
mike
会議室デビュー日: 2004/10/06
投稿数: 14
投稿日時: 2004-10-14 20:08
VB.NETでoracle接続の環境で開発しております。
SQL実施時に、下記のとおりパラメータ変数を使用して、
更新を実施しましたが、更新されません。
SQLエラーにはなっていないのですが・・・。

myCommand = New OracleCommand("UPDATE LOG_TABLE SET CNT=CNT+1,ACCESS=:access WHERE URL=:url", myConnection)
myCommand.Parameters.Add("url", Request.Url.ToString())
myCommand.Parameters.Add("access", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))

デバッグして、どうやらSETコマンドのところで、
変数「:access」を使用しているとうまくいかないのですが、
SETコマンドの箇所だと変数は使えないのでしょうか??
解決策などありましたらご教授頂きたいです。
よろしくお願い致します。


[ メッセージ編集済み 編集者: mike 編集日時 2004-10-14 20:09 ]
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-10-14 20:36
myCommand.Parameters.Add("url")

myCommand.Parameters.Add(":url")

ではないでしょうか?
Ten.
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 67
投稿日時: 2004-10-14 21:00
引用:

myCommand.Parameters.Add("url")

myCommand.Parameters.Add(":url")


これは「myCommand.Parameters.Add("url") 」であってます。

原因はこちらだと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13995&forum=7
nanbu
大ベテラン
会議室デビュー日: 2004/08/19
投稿数: 178
投稿日時: 2004-10-14 22:05
南部です。

引用:

SQLエラーにはなっていないのですが・・・。



他のエラーはでないのですか?
私のところでは、
-----------
System.Data.OracleClient.OracleException: ORA-01745: ホスト/バインド変数名が無効です。
-----------
と出ましたが。

引用:

myCommand = New OracleCommand("UPDATE LOG_TABLE SET CNT=CNT+1,ACCESS=:access WHERE URL=:url", myConnection)
myCommand.Parameters.Add("url", Request.Url.ToString())
myCommand.Parameters.Add("access", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))

デバッグして、どうやらSETコマンドのところで、
変数「:access」を使用しているとうまくいかないのですが、
SETコマンドの箇所だと変数は使えないのでしょうか??
解決策などありましたらご教授頂きたいです。
よろしくお願い致します。



上記エラーがでているなら、
「:access」を別の名前にして実行してみてください。

また、
System.Data.OracleClient.OracleException: ORA-01747: user.table.column、table.columnまたは列指定が無効です
が出たら、
"UPDATE 〜 , \"ACCESS\"=:access 〜";
とACCESSをダブルコーテーションで囲ってみてください。
(VB.NETだと、「"」2つでエスケープだっけ?)

的外れでしたら、ごめんなさい。
mike
会議室デビュー日: 2004/10/06
投稿数: 14
投稿日時: 2004-10-15 08:54
引用:

Ten.さんの書き込み (2004-10-14 21:00) より:
引用:

myCommand.Parameters.Add("url")

myCommand.Parameters.Add(":url")


これは「myCommand.Parameters.Add("url") 」であってます。

原因はこちらだと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13995&forum=7



皆様ご回答ありがとうございます。
tenさんのご指摘どおり、
過去スレに同じ現象が載っていました・・・。
確認もれです。申し訳ありません。
パラメータセットの前に、
myCommand.BindByName = True で解決出来ました。
本当に助かりました。
ありがとうございます。

1

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