In句をパラメータにするとうまくいかない

前提

delete from Item where itemID in (111,222,333)

というSQLをSSMSで実行すると問題なく実行されるのですが
これを下記のようにコマンドパラメータにするとなぜか実行されません。
strItemは文字列型で111,222,333を入れています

括弧のせいかなのかと思って
strSQL = strSQL & " itemID in ?"
にしても実行されません

itemIDフィールドはintegerですが、strItemはstringなので

Conn.Parameters.Append Conn.CreateParameter("@itemID", 3, 1, , strItem)
とか
Conn.Parameters.Append Conn.CreateParameter("@itemID", 129, 1, , strItem)
にしても反映されません

何が悪いでしょうか。

該当のソースコード

SQL

strSQL = "" strSQL = strSQL & "delete from Item " strSQL = strSQL & " where" strSQL = strSQL & " itemID in (?)" Set Conn = CreateObject("ADODB.Command") Conn.CommandTimeout = 1200 Conn.ActiveConnection =xxx Conn.CommandType = 1 Conn.CommandText = strSQL Conn.Parameters.Append Conn.CreateParameter("@itemID", 3, 1, , strItem) Set oRS = Conn.Execute()

試したこと

実際のSQLが問題ないことを確認しました
括弧をつけたり外したり、型を変えたりしてみましたが
うまくいきません

コメントを投稿

0 コメント