前提
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
1 strSQL = "" 2 strSQL = strSQL & "delete from Item " 3 strSQL = strSQL & " where" 4 strSQL = strSQL & " itemID in (?)" 5 6 Set Conn = CreateObject("ADODB.Command") 7 Conn.CommandTimeout = 1200 8 Conn.ActiveConnection =xxx 9 Conn.CommandType = 1 10 Conn.CommandText = strSQL 11 Conn.Parameters.Append Conn.CreateParameter("@itemID", 3, 1, , strItem) 12 Set oRS = Conn.Execute()
試したこと
実際のSQLが問題ないことを確認しました
括弧をつけたり外したり、型を変えたりしてみましたが
うまくいきません
回答1件
あなたの回答
tips
プレビュー