-1

<-------人员代码------>

你好,

我有一个我尝试使用 SQLEXEC 和 SQL.fetch() 执行的 SQL 查询,但问题是,当我将值传递给参数 (:1,:2...) 时,它不会返回一行但是当我对查询本身的 where 子句中的值进行硬编码,它检索到正确的值。有人可以帮忙吗?

我的查询类似于以下示例查询: Select * from PS_rec1 where emplid=:1 and plan_type=:2

在我对值进行硬编码之前,它不会返回任何数据。

我已经检查了后端的值,并且可以获取一些数据。此外,相同的查询在 TOAD 中运行时会检索数据。

4

3 回答 3

0

好的,您需要将确切的 SQLExec 语句放在问题中。

但是,您在 SQLExec 中真的有“Select * ...”吗?你的表中有多少列?既然你提到了 where 子句,是你的陈述

SQLExec("select * from PS_rec where emplid=:1 and plan_type=:2", &var1, &var2, &vartocontainthewholerow);

这将在 SQL 工具(蟾蜍)中工作,但可能不适用于 AE 或任何类型的 Peoplecode 程序。

现在,如果你的表有三列,你应该没有这样的东西:

SQLExec("select emplid, plan_type, column3 from PS_rec where emplid = :1 and plan_type=:2", &emplidIn, &plan_typeIn, &emplidOut, &plan_typeOut, &column3Out);

请注意,表中的三列 emplid 和 plan_type 是其中的两列,您需要列出所需的所有列,而不是星号“*”。不过,选择 emplid 和 plan_type 有点傻。

于 2011-03-06T04:42:51.813 回答
0

您是否尝试在 SQL 语句中使用它们之前将绑定输出到日志文件?

如果绑定不起作用,但文字是,那么您的绑定可能不包含您期望的值。

您还可以尝试在 SQL 语句之前将绑定显式设置为您期望的值。这将证明您传递绑定的方式工作正常。

于 2011-03-04T00:39:11.417 回答
0

它需要对同一记录进行另一次更新以获取在 SQL exec 中获取的值。M 不确定是什么问题,但我想可能是以前的更新即使在显式提交之后也没有将更改写入数据库。

于 2011-03-05T20:06:41.280 回答