掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ADOでParameterを指定するには? (ID:142106)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
test1 where col1 = ? 構文の場合、名前を指定するには Parameter オブジェクトを自分で組み立てるしかありません。 名前付きのパラメータ構文がサポートされていれば、 そちらの構文に変更してください。 もし、? の構文しかサポートされていないのだとしたら、 Refresh で使う場合、基本的には番号で指定するか、もしくは Refresh を使わず、Parameter を自前で組み立てていく事になります。 > プロバイダがパラメータオブジェクトを作ってくれるので > これで大丈夫だと思ったんですが・・。 プロバイダによっては、名前を自動生成してくれ場合もあります。 その名前がどのようなものになるのかは、 Dim p As ADODB.Parameter For Each p In cmd.Parameters Debug.Print p.Name Next などの構文で確認できるかと思います。ただし、この名前を使って パラメータを呼び出せるかどうかは、プロバイダに依存しています。 > m_AdoComm("col1") = "1" '★ここでエラーになります 番号で指定するにしても、名前で指定するにしても、 m_AdoComm(x) = 値 ではなく、 m_AdoComm(x).Value = 値 の構文を利用するようにしてください。 これは Parameter だけではなく、Field の場合も同様で、 rs.Fields("Col1").Value = 値 rs.Collect("Col1") = 値 などの構文は良いですが、 rs.Fields("Col1") = 値 は避けるべきとされています。 まぁ、ADO の場合は Value を忘れても問題は少ないのですが、 Value を指定した方が、実行速度は向上します。 (これが oo4o だと、.Value を忘れて誤動作するケースがしばしば…)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.