Stored procedures iReport执行存储过程在Informix中无法正常工作

Stored procedures iReport执行存储过程在Informix中无法正常工作,stored-procedures,jasper-reports,informix,ireport,Stored Procedures,Jasper Reports,Informix,Ireport,我想知道如何使用Informix DB连接从iReport调用存储过程。如果我执行一个简单的select操作,则可以毫无问题地检索所有列 现在,我必须处理一些从存储过程中检索的数据。为了测试如何执行此操作,我制作了一个样本SP,如下所示: CREATE PROCEDURE sp_example() RETURNING VARCHAR(100), INTEGER; RETURN 'some varchar', 100; END PROCEDURE; 这可以编译,我可以从我的SQL编辑器执

我想知道如何使用Informix DB连接从iReport调用存储过程。如果我执行一个简单的
select
操作,则可以毫无问题地检索所有列

现在,我必须处理一些从存储过程中检索的数据。为了测试如何执行此操作,我制作了一个样本SP,如下所示:

CREATE PROCEDURE sp_example() RETURNING VARCHAR(100), INTEGER;
    RETURN 'some varchar', 100;
END PROCEDURE;
这可以编译,我可以从我的
SQL
编辑器执行它。当我想从iReport检索数据时,问题来了,我只得到第一个返回值(
'some varchar'
),而不是第二个,如屏幕截图所示:

我错过了什么


我的Informix版本是Informix Dynamic Server 2000 9.21.TC4。

除了调用存储过程的软件之外,您可能没有遗漏任何东西。您可以尝试将
RETURNING
子句更改为
返回VARCHAR(100)作为名称,整数作为数字,从而为“列”提供明确的名称。通过将字符串显示为
name
而不是
(表达式)
,将数字显示为
number
而不是另一个
(表达式)
,这可能会改变情况,希望情况会更好。或者这可能没有任何区别。我已经尝试过了,但是Informix似乎不允许在返回变量时使用别名,当检查
将VARCHAR(100)返回为name
时,它在
AS
单词中给了我一个语法错误(同样
name
是Informix中的一个保留单词,应该是
my_VARCHAR
或类似的东西)Re:‘保留字’-是的,可能不是,但大部分是否。也就是说,你可以做一些古怪的事情,比如
创建表(整数十进制不为NULL,整数不为NULL)在Informix中,因为当关键字在上下文中没有意义时,它会尝试将关键字视为标识符。好提示,但仍然不起作用:p您连接到哪个版本的Informix?我可以创建
create PROCEDURE sp_example(),返回VARCHAR(100)作为名称,整数作为数字;返回'some varchar',100;结束程序在Mac上成功使用12.10.FC4,在11.70中也可以使用。
AS name
符号是最近添加的,因此它可能不在11.50或11.10或10.00或9.40中…但我认为它是在10.00时代添加的,因此您仍在运行的任何东西都应该支持它。除了调用存储过程的软件之外,您可能没有遗漏任何东西。您可以尝试将
RETURNING
子句更改为
返回VARCHAR(100)作为名称,整数作为数字,从而为“列”提供明确的名称。通过将字符串显示为
name
而不是
(表达式)
,将数字显示为
number
而不是另一个
(表达式)
,这可能会改变情况,希望情况会更好。或者这可能没有任何区别。我已经尝试过了,但是Informix似乎不允许在返回变量时使用别名,当检查
将VARCHAR(100)返回为name
时,它在
AS
单词中给了我一个语法错误(同样
name
是Informix中的一个保留单词,应该是
my_VARCHAR
或类似的东西)Re:‘保留字’-是的,可能不是,但大部分是否。也就是说,你可以做一些古怪的事情,比如
创建表(整数十进制不为NULL,整数不为NULL)在Informix中,因为当关键字在上下文中没有意义时,它会尝试将关键字视为标识符。好提示,但仍然不起作用:p您连接到哪个版本的Informix?我可以创建
create PROCEDURE sp_example(),返回VARCHAR(100)作为名称,整数作为数字;返回'some varchar',100;结束程序在Mac上成功使用12.10.FC4,在11.70中也可以使用。
AS name
符号是最近添加的,因此它可能不在11.50或11.10或10.00或9.40中……但我认为它是在10.00时代添加的,所以您仍在运行的任何东西都应该支持它。