sql - 如何在 VBScript 中使用带有 adArray 数据类型的 ADODB 参数化查询?

标签 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

这会引发类型错误。我很好奇是否有人曾经让它发挥作用或有任何例子。那就太好了。

感谢您提前提供的帮助!

最佳答案

我不知道哪些数据库提供商将支持数组。

我更喜欢做的是将数组作为单个长字符串传递,然后使用名为 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/

相关文章:

excel - 将每个工作表导出到单独的 csv 文件

c - 如何从 $1 重新开始命名 GDB 的内部变量?

windows - 用于创建计划任务的 VBScript

batch-file - 获得所有连接的显示器的最大支持分辨率

sql - 如何为可搜索性构建数据

scripting - 在远程机器上执行 gacutil 的方法

bash - 脚本不显示目录中存在的文件名

MySQL 使用 max 函数通过子查询更新查询

sql - 获取乱序 <ora-01002> 回滚

sql - 在新的数据库服务器上创建新的非对称 key 会导致旧数据失效吗?