interbase中使用光标出现的问题(100分)

  • 主题发起人 主题发起人 avay
  • 开始时间 开始时间
A

avay

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟在为interbase数据库编写的触发器中声明了一个光标,系统提示出错。
原SQL代码如下:set term !!;
create trigger tr_kmh_i for kmh after insert
as
declare variable kmh char(6); declare variable kmh_attrib int;
declare variable ye float; declare variable jh char(3);
declare variable fsrq char(10);
begin
ye=0.00;jh='000';fsrq=' ';
kmh=new.kmh; kmh_attrib=new.kmh_attrib;

if (kmh_attrib=1) then
begin
jh='000';
insert into acount_ye values(:kmh,:jh,:fsrq,:ye);
end

if (kmh_attrib=2) then
begin
declare kmh_i_cur cursor for
select unitno from unit where unitno<>'000'
for update of unitno;
open kmh_i_cur;
fetch kmh_i_cur into :jh;
while (!sqlcode)
begin
insert into acount_ye values(:kmh,:jh,:fsrq,:ye);
fetch kmh_i_cur into :jh;
end
close kmh_i_cur
end
end!!
set term ;!!

在dos方式下用isql.exe执行后提示出错信息如下:
dynamic sql error
-sql error code= -104
-token unknow - line 18 char 14
-declare
有那位大侠知晓内情,请指点以下迷津
email:avay_wang@yahoo.com
 
declare 挪到前面试试。
 
还是不中,系统提示:
dynamic sql error
-sql error code= -104
-token unknow - line 6 char 22
-kmh_i_cur
 
放第一个begin后的第一行如何?
 
提示错误信息和原来一样,难道是5.5版本中的cursor有bug吗?
 
有没有不可见的非法字符?
 
检查过了,没有非法字符。
 
附加功能 将问题提前
 
avay:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
738
import
I
D
回复
0
查看
828
DelphiTeacher的专栏
D
后退
顶部