gpt4 book ai didi

java - 将 Informix-4GL 程序中的 SQL 查询 "SELECT UNIQUE 1..."转换为 Java 代码

转载 作者:搜寻专家 更新时间:2023-11-01 03:09:49 25 4
gpt4 key购买 nike

我想将 Informix-4GL 程序转换为 Java,但遇到了一些问题。我有一个 Java 代码并成功连接到 Informix,但我遇到了一些问题。

  1. 我如何在方法 executeQuery() 中使用“SELECT UNIQUE 1...”,因为 UNIQUE 1 不是 TSQL。
  2. SQLCA.SQLCODE 表示 SQL 查询正确然后返回 0。如何在 Java 中获取 SQLCA.SQLCODE 变量或 Java 可以提供相同的功能。

查看下面的 4GL 代码段;这意味着如果 SQL 查询返回任何行,则 SQLCA.SQLCODE 返回 0 并设置 SW_FBCHK = 1

SELECT  UNIQUE  1  FROM  FBFIL:FBRDPF1
WHERE COMPID = G_DEPTWN
AND FPRDAT = IO_FONLY.PRTDAT
AND INSU01 = '5'
IF SQLCA.SQLCODE = 0 THEN
LET SW_FBCHK = 1
ELSE
LET SW_FBCHK = 0
END IF

最佳答案

在 Informix 中,SELECT UNIQUE 是标准的 SELECT DISTINCT 的非标准等价物。

查询正在测试您的表 FBFIL:FBRDPF1 中是否有任何行(这意味着数据库 FBFIL 中的表 FBRDPF1)满足条件:

WHERE COMPID = g_deptwn
AND FPRDAT = io_fonly.prtdat
AND INSU01 = '5'

在那种情况下,可以合理猜测g_deptwn是一个全局变量(很多人使用g_前缀来表示一个全局变量),并且 io_fonly.prtdat 可能也是一个变量。因此,您需要将这些值传递给 Java SQL 语句。条件的 LHS 上的名称可能是表中的列,而不是更多的 I4GL 变量。您需要决定引用的表在 SQL Server 系统中的位置。

在 Java 中,您将使用 JDBC,因此您需要执行查询并尝试获取一行(可能提供一个变量来接收值 1)。如果该查询成功,则将 SW_FBCHK 的 Java 模拟设置为 1;否则,您会将其设置为 0。不要忘记从查询中释放资源。

关于java - 将 Informix-4GL 程序中的 SQL 查询 "SELECT UNIQUE 1..."转换为 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com