前提
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 コメント