一尘不染

带参数的AS400 SQL查询

sql

我正在测试一个简单的查询,以从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编写对我来说是全新的。
谢谢


阅读 162

收藏
2021-03-17

共1个答案

一尘不染

好的,我通过反复试验和尝试不同的方法来获得解决方案。

正如我之前所说,我习惯于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语句中添加问号(?)。

2021-03-17