interbase的interactive sql的问题?(100分)

K

knwang

Unregistered / Unconfirmed
GUEST, unregistred user!
我写一个测试存储过程如下:
create procedure test
returns (i char(10))
as
begin
i='222';
end
为什么用ibconsole的interactive sql来执行execute procedure test
在数据页中没有返回值?
但是用在dos环境下的isql却有返回值?
如果这样,请问大家怎样调试interbase的存储过程?
我不太想到delphi下去调试。
 
有谁能解释一下吗?
 
有谁知道吗?
解决问题,马上给分噢。
 
仔细看看help,应该这样写:
select * from test !!!! 才能返回结果集。
 
谢谢你的回答。
不过,这方法我以前也试过,这样也不能返回数据。
只能出现返回字段的名字,但内容为空。
我只是想调试一下返回结果对不对,不知大家怎样高度interbase的存储过程?
 
create procedure test
returns (i char(10))
as
begin
i='222';
suspend ;//加这句试试
end
 
>>zhh.wang
多谢你的热心回答。
这个方法我也曾试过,我再试了一遍,
在IBconsole的interactive sql中的data页中就是不会返回数据。
同样在用delphi的Tstoreproc,还有dos下的isql就能返回数据。
如果这样,那我调试存储过程不是要到delphi下去做了,那也太痛苦了,
请各位帮忙。
 
ib6.01 open source server
IBConsole 1.1.0.13
加入 SUSPEND 后。
execute procedure TEST
返回 列 i 值 222
select * from TEST 出个PLAN错,估计是这个版本的IBCOnsole的bug.
以前版本,我一般都是用select * from proc.

我这里测试通过。
 
我认为找到问题的原因了,我拿 IBConsole 1.0.0.339
就没有select * from TEST 出个PLAN错 的问题,
当然,如果不加 SUSPEND ,select 返回的是 null
加 SUSPEND select 结果正确。
execute 无论是否有 SUSPEND 都正确。
看来 IBConsole 1.1.0.13 自动prepare 结果出错了。
总之你把339 和 1.1.0.13 比较一下就知道了。
加不加 SUSPEND 就这几种情况。
 
ok!谢谢两位
特别是三代坦克,确实如此,
我原来的IBconsole是1.0.0.326,:(
现在我换了个1.0.1.334,问题解决
最后问一句:你的1.1.0.13是哪下的?
呵呵,答案一来,马上给分。
 
http://codecentral.borland.com/codecentral/ccweb.exe/author?authorid=102

IBX的老巢啊,你如果用ib,就经常去转转吧。
IBX readme中有的。
 
分分了。呵呵!谢谢二位,
谢谢三代坦克。以后可是有很多IB的问题请教了!
 
多人接受答案了。
 
顶部