云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > INFORMIX-4GL实用手册

INFORMIX-4GL实用手册

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 23:32:33

select max(rec_prem_acc_no) into acc_rec_prem_no from rec_prem_acc where I_info_appl_branch=rev_I_info_branch

and I_info_appl_no=rev_I_info_appl_no

and I_info_date=rev_I_info_date

and o_rev_date=rev_o_rev_date

and rev_item_code=\

ac_rev_amnt=rev_o_rev_amt;

select date(rec_prem_date) into acc_rec_prem_date

from rec_prem_acc where I_info_appl_branch=rev_I_info_branch

and I_info_appl_no=rev_I_info_appl_no

and I_info_date=rev_I_info_date

and o_rev_date=rev_o_rev_date

and rev_item_code=\

ac_rev_amnt=rev_o_rev_amt and

rec_prem_acc_no=acc_rec_prem_no ;

select ac_rev_amnt into acc_ac_rev_amnt

from rec_prem_acc

where I_info_appl_branch=rev_I_info_branch

and I_info_appl_no=rev_I_info_appl_no

and I_info_date=rev_I_info_date

and o_rev_date=rev_o_rev_date

and rev_item_code=\

and rec_prem_acc_no=acc_rec_prem_no

and ac_rev_amnt=rev_o_rev_amt;

if acc_ac_rev_amnt is null or acc_rec_prem_date is null then

continue foreach;

end if;

update rev_rec_tbl

set p_rev_date=acc_rec_prem_date,

p_rev_amt =acc_ac_rev_amnt

where I_info_appl_branch=rev_I_info_branch

and I_info_date=rev_I_info_date

and I_info_appl_no=rev_I_info_appl_no

and o_rev_date=rev_o_rev_date;

end foreach;

commit work;

end procedure;

②.执行例程语法:

A):在dbaccess中

EXECUTE PROCEDURE DBNAME@SERVER_NAME:例程名(参数1,参数2,.....)用这种方法可对例程进行调试。

B):在Informix-4GL中

PREPARE PREP STATTEMENT FROM \例程名(?,?,?,...)

DECLARE P_CURS SURSOR FOR PREP STMT

OPEN P_CURS USING 参数1,参数2,....

FETCH P_CURS INTO 返回值1,返回值2,...

CLOSE P_CURS

当应用程序不支持EXECUT PROCEDURE语法,则需使用PREPARE命令,如INFORMIX-4GL中,而使用INFORMIX-NEWEAR则无此限制,需注意的是PREPARE语句中变量用?号代替,其个数要与例程的参数个数和类型一致,返回值也是一样。

C):在Informix-ESQL/C中

EXEC SQL EXECUTE PROCEDURE 例程名(参数1,参数2,...) INTO (返回值1,返回值2,...)在EC5.0或更高版本可使用EXECUTE PROCEDURE 语法,在ESQL/C中宿主变量用于想存储例程传递值,同时也接收返回值.

D):在POWER BUILDER中

DECLARE 逻辑名 PROCEDURE FOR 例程名(:参数1,:参数2:...) INTO :返回值1,:返回值2,..USING 事物名

EXEC 例程名(:参数1,:参数2,.....)

PB要求为例程制定逻辑名,以后的SQL语句将以逻辑名为准指向后台数据库例程,当例程即便没有参数也必须有小扩号.

2.流程控制语言:

在过程中也提供了其他语言具备的流程控制语言,完成循环判断和分类处理的能力,主要有:①.IF ....ELIF.....ELSE.....END IF例:

CRAETE PROCEDURE STR_COM(STR1 CHAR(20),STR2 CHAR(20))

RETURNING INT;

DEFINE REL INT;

IF STR1>;STR2 THEN --当STR1>;STR2 REL=1

LET REL=1;

ELIF STR2>;STR1 THEN --当STR2>;STR1 REL=-1

LET REL=-1;

ELSE

LET REL=0; --当STR1=STR2 REL=0

END IF

RETUEN REL;

END PROCEDURE

当IF的条件为一个SQL语句如SELECT时需用扩号,并且返回值为单值。

②.FOR .....END FOR

例:FOR INDEX IN (20 TO 30 STEP 2,100 TO 200 STEP 10)

--执行代码

END FOR

FOR的条件可以是变量,常量或一个SQL语句的返回值

③.WHILE.......END WHILE

当WHILE的条件为TRUE时执行WHILE后的语句,为FALSE退出循环。

例:WHILE I<10

INSERT INTO TBB_1 VALUES(I);

LET I=I+1;

END WHILE;

④.FOREACH........END FOREACH

该语句较为特别FOREACH循环能够声明并打开游标,读取记录行,并关闭游标.其完整语法:

FOREACH 游标名 [WITH HOLD] SELECT 字段名 INTO 变量 FROM

TABLE WHERE 条件 ;

END FOREACH

搜索更多关于: INFORMIX-4GL实用手册 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

select max(rec_prem_acc_no) into acc_rec_prem_no from rec_prem_acc where I_info_appl_branch=rev_I_info_branch and I_info_appl_no=rev_I_info_appl_no and I_info_date=rev_I_info_date and o_rev_date=rev_o_rev_date and rev_item_code=\ ac_rev_amnt=rev_o_rev_amt; select date(rec_prem_date) into acc_rec_pr

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com