我无法在任何地方找到如何使用它的示例。我试图用参数化查询做一个简单的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
这会引发错误的类型错误。我很好奇,如果有人有这个工作或有任何例子。那太棒了。
提前感谢您的帮助!
答案 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
但我没有测试过这个。