|
出处: |
INFORMIX 4GL 的程序架构 <语法格式> #=========================== DATABASE database-name #--------------------------- GLOBAL ... END GLOBALS #--------------------------- MAIN ... END MAIN #--------------------------- FUNCTION function-name() ... END FUNCTION #--------------------------- REPORT report-name() ... END REPORT #===========================
IF 叙述 <语法格式> IF boolean-exp THEN ... ELSE ... END IF
FOR 叙述 <语法格式> FOR varibale = integer_exp TO integer_exp ... [CONTINUE FOR] ... [EXIT FOR] ... END FOR
WHILE 叙述 <语法格式> WHILE boolean-exp ... [CONTINUE WHILE] ... [EXIT WHILE] ... END WHILE CASE 叙述 <语法格式> CASE [(exp)] WHEN ... [exit case] ... WHEN ... [exit case] ... OTHERWISE ... [exit case] ... END CASE
GOTO 叙述 无条件跳至标记处(同一函数、报表、MAIN之中)执行命令。 <语法格式> GOTO 标记名称
LABEL 叙述 标记GOTO跳到的地址。 <语法格式> LABEL 标记名称 例: if status != 0 then goto stop_run end if statement ... label stop_run: statement
SLEEP 叙述 使程序暂停几秒。 <语法格式> SLEEP 整数表达式 WHENEVER 叙述 当错误或警告发生时执行 ... <语法格式> WHENEVER {GOTO 标计|CALL 函数|CONTINUE|STOP} 例: whenever error continue whenever error stop
SET LOCK MODE TO WAIT
FOREACH 叙述 相当于 WHILE 循环半和 FETCH 的组合。 <语法格式> FOREACH 指针名称 [INTO 变量串行] ... [CONTINUE FOREACH] ... [EXIT FOREACH] END FOREACH
CALL 叙述 <语法格式> CALL 函数([参数串行]) [RETURNING 变数串行]
例: call sample_function(parm1,parm2) returning variable call sample_function(parm) call sample_function()
DEFER 叙述 阻止使用者中断程序执行 <语法格式> DEFER INTERRUPT 一旦宣告,无法改变。 RUN 叙述 执行操作系统下的可执行文件 <语法格式> RUN 可执行档名称
例: LET l_cmd=" echo '",str CLIPPED," '> cmsr350.out" RUN l_cmd
PROMPT 叙述 PROMPT 叙述可以从使用者处,交谈式的接受所输入之数据 <语法格式> PROMPT display_list FOR variable 例: define stuff_num char(7) prompt "请输入员工编号" for stuff_num
DISPLAY 叙述 <语法格式> DISPLAY display_list [USING|CLIPPED] AT ROW,COLUMN
MESSAGE 叙述 用来显示讯息至屏幕的讯息行(default 第二行) <语法格式> MESSAGE display_list 5-19 ERROR 叙述 用来显示错误讯息至屏幕的错误行(default 第 24 行) <语法格式> ERROR display_list 5-20 CLEAR 叙述 <语法格式一> CLEAR SCREEN 此叙述用来清除整个屏幕,包刮讯息行、错误行 <语法格式二> CLEAR FORM 此叙述用来清除所有的屏幕字段数据值。 <语法格式三> CLEAR VARIABLE_LIST 此叙述用来清除 field_list 所包含的一个或一个以上的屏幕字段数据值。 INITIALIZE 叙述 通常变量可以用LET 设定,但若要设定为 NULL 时,必须使用 INITIALIZE。 INITIALIZE l_bmd04 TO null LET lsql='database dsb' PREPARE chgdsb FROM lsql EXECUTE chgdsb
LET l_sql=" SELECT DISTINCT xhb11 FROM ",l_azp03 CLIPPED,":xha_file,",l_azp03 CLIPPED,":xhb_file", " WHERE xha01=xhb01", " AND xha20=Today - 186", " AND xhaconf<>'X'" PREPARE xha_pre FROM l_sql DECLARE xha_cur CURSOR FOR xha_pre FOREACH xha_cur INTO l_xhb11 LET l_sql=" SELECT xfb11 FROM ",l_azp03 clipped,":xfb_file", " WHERE xfb01='",l_xhb11 clipped,"' and xfb09='Y' " PREPARE xfc_pre FROM l_sql DECLARE xfc_cus CURSOR FOR xfc_pre OPEN xfc_cus FETCH xfc_cus INTO l_xhb11 CLOSE xfc_cus IF not (l_xhb11 is NULL or l_xhb11=' ') THEN INSERT INTO cmsp350_temp2(azp01,azp03,xfb01) valueS(l_azp01,l_azp03,l_xhb11) END IF END FOREACH END FOREACH
LET l_sql = " SELECT azj03 from azj_file", " WHERE azj01 = 'USD' and azjacti='Y' ", " order by azj02 desc" PREPARE sel_zu0_pre FROM l_sql DECLARE sel_zu0_cus CURSOR FOR sel_zu0_pre OPEN sel_zu0_cus FETCH sel_zu0_cus INTO l_azj03 CLOSE sel_zu0_cus
| | |
阅读(1079) | 评论(0) | 转发(0) |