我无法找到如何在任何地方使用它的示例。我正在尝试使用参数化查询执行简单的 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
这会引发类型错误。我很好奇是否有人曾经让它发挥作用或有任何例子。那就太好了。
感谢您提前提供的帮助!
最佳答案
我不知道哪些数据库提供商将支持数组。
我更喜欢做的是将数组作为单个长字符串传递,然后使用名为 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
但我还没有测试过这个。
关于sql - 如何在 VBScript 中使用带有 adArray 数据类型的 ADODB 参数化查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9315002/