如何在VBScript中使用ADODB参数化查询和adArray数据类型?

时间:2012-02-16 16:24:56

标签: sql scripting vbscript adodb

我无法在任何地方找到如何使用它的示例。我试图用参数化查询做一个简单的SELECT语句。我想使用adArray数据类型。这是一个例子

sql = "SELECT * FROM table WHERE id IN ?"
set objCmd = Server.CreateObject("ADODB.Command")
set objParam = objCmd.Createparameter("@id", 0x2000, 1, length, arrMyArray)

objCmd.Parameters.Append objParam

这会引发错误的类型错误。我很好奇,如果有人有这个工作或有任何例子。那太棒了。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我不知道哪些数据库提供程序会支持数组。

我更喜欢将数组作为单个长字符串传递,然后使用名为Split()的UDF。结果是这样的:

sql = "SELECT * FROM table WHERE id IN (Split(?))"
set objCmd = Server.CreateObject("ADODB.Command")
myBigString = ConvertArrayToCSV(arrMyArray) ' you have to write this, of course
set objParam = objCmd.Createparameter("@id", 200, 1, length, myBigString)

objCmd.Parameters.Append objParam

Here's a discussion of the Split() concept.

修改

我更正了上面的内容(参数类型是200,而不是0x2000),我现在也看到ADO似乎支持这种语法:

0x2000 OR 129 ' array of strings
0x2000 OR 200 ' array of varchar

但我没有测试过这个。