sql - 带参数的 AS400 SQL 查询

标签 sql ibm-midrange

我正在测试一个简单的查询以从 AS400 数据库中获取数据。 我不确定我使用 SQL 查询的方式是否正确。

我得到一个错误:“参数不正确。”

Select FIELD1, FIELD2 From Mylibrary.MyTable WHERE FIELD1 = @Field1

当我运行以下查询时,我没有收到错误消息:

Select FIELD1, FIELD2 From Mylibrary.MyTable WHERE FIELD1 = 'myvalue'

我正在使用 ADODB、VBScript 进行测试。

Set Param1 = cmd.CreateParameter("@Field1", 129, 1, 9, "myvalue")  ' 129 String
cmd.Parameters.Append Param1

我来自 MS Sql 环境,所以为 AS400 编写代码对我来说是全新的。
谢谢

最佳答案

好的,我通过反复尝试不同的方法得到了解决方案。

正如我之前所说,我习惯于使用 OLEDB 和 ADO.Net,所以我习惯于执行以下操作:

Select FIELD1, FIELD2 From Mylibrary.MyTable WHERE FIELD1 = @Field1

在 Access 和 SQL Server 中工作但在 AS/400 中不工作。

我得到了以下的工作:

Select FIELD1, FIELD2 From Mylibrary.MyTable WHERE FIELD1 = ?

cmd.ActiveConnection = connstr
cmd.CommandType = 1'4   'Stored Procedures '1 Text
cmd.CommandText = sql
Set Param1 = cmd.CreateParameter("@Field1", 129, 1, 9, "myvalue")  ' 129 String
cmd.Parameters.Append Param1
Set rs = cmd.Execute()

这都是 VbScript。诀窍是在 sql 语句中添加问号 (?)。

关于sql - 带参数的 AS400 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493119/

相关文章:

mysql - 从表中删除重复行

SQL 返回表的前两列

MySQL 使用表 JOIN 更改数据集..我所问的可能吗?

sql - DB2/400 select * 有效,但 count(*) 无效

ibm-midrange - 是否可以使用外部指示器来激活显示文件中的显示属性?

ibm-midrange - 如何确定*USRQ中的最大消息数

sql - 开发过程

c# - 来自 TransactionScope 的不明确异常

c - as400 : C headers include

ibm-midrange - 如何从 Windows 命令提示符调用 AS400 程序?