INFORMIX4GL手册(三)数据库

aqi 分享 时间: 收藏本文

【简介】感谢网友“aqi”参与投稿,下面小编给大家整理了INFORMIX4GL手册(三)数据库(共3篇),供大家阅读参考。

篇1:INFORMIX4GL手册(四)数据库

Informix-SPL(过程)语法详解 Informix 数据库 用户一般都熟悉的使用 SQL 语句进行简单的查询和统计,而在Informix-Online的数据库 服务器 中提供了用结构化查询语言SQL语句和流程控制存储语言SPL创建存储例程,以减少Informix的处理,存储例程是SQL语句和SPL

Informix-SPL(过程)语法详解

Informix数据库用户一般都熟悉的使用SQL语句进行简单的查询和统计,而在Informix-Online的数据库服务器中提供了用结构化查询语言SQL语句和流程控制存储语言SPL创建存储例程,以减少Informix的处理。存储例程是SQL语句和SPL的集合。它们存放在数据库中,SQL语句会被分析.优化,在例程的执行中,高速缓存中会有一执行规划,使后续操作的执行速度很快。而单独的SQL语句只有在执行时才会被优化,并且存储例程可以被不同的开发工具调用(4GL、ESQL/C、POWERBUILDER.DELPHI),在SELECT语句中也调用过程。例程调试简单,不必重新编译应有软件包。在例程创建时Informix查询处理器会分析它,并产生一执行规划,永久存放于SPROCEDURES.SYSPROBODY.和SYSPROPLAN中,其后例程按此规划执行,由于大部分查询处理已经完成,存储例程可以在瞬间执行完毕。由于存储例程所具有的优越性,它已成为进行Informix数据库核心开发的有力工具,掌握它对Informix的开发人员有积极意义,现将我在实际工作中使用的语法和例子详解于下,疏漏和错误请来信指教。

1.创建和执行例程

①.创建例程语法:

CRAETEPROCEDURE[OWNER.]PROCEDURE_NAME(参数1参数类型=[DEFAULT],参数2参数类型=[DEFAULT],参数n参数类型=[DEFAULT])

RETURNING值1类型,值2类型,值n类型;

<......>语句体;ENDRPOCEDURE

例程大小不可超过64K,这包括所有的SQL.SPL.空格.跳格符,例程名最多18个字符,并在数据库中唯一存在,语句间用“;”分隔,例程只能在当前数据库中创建,例程创建后是一标准

执行模板块,可在不同的应有中对其调用,这对开发不同版本的应用将更为便利。例:

createprocedure“test”.upwage

definerev_rev_item_codevarchar(2,0);

definerev_p_rev_datedate;

defineaclearcase/“ target=”_blank“ >cc_rec_prem_nodecimal(8,2);definerev_p_rev_amtdecimal(10,2);definerev_I_info_branchvarchar(6,0);definerev_I_info_appl_nodecimal(8,0);definerev_I_info_datedate;definerev_o_rev_datedate;

definerev_o_rev_amtdecimal(10,2);

defineacc_ac_rev_amntdecimal(10,2);

defineacc_rec_prem_datedate;

beginwork;

foreachcur_revforselectI_info_appl_branch,I_info_appl_no,I_info_date,

o_rev_date,o_rev_amtintorev_I_info_branch,

rev_I_info_appl_no,rev_I_info_date,rev_o_rev_date,rev_o_rev_amtfromrev_rec_tblwhere

(rev_item_code=”PS“)andp_rev_dateisnulland

p_rev_amt=0and(I_info_appl_noisnotnullor

I_info_dateisnotnull);

selectmax(rec_prem_acc_no)intoacc_rec_prem_nofromrec_prem_accwhereI_info_appl_branch=rev_I_info_branch

andI_info_appl_no=rev_I_info_appl_no

andI_info_date=rev_I_info_date

ando_rev_date=rev_o_rev_date

andrev_item_code=”PS“and

ac_rev_amnt=rev_o_rev_amt;

selectdate(rec_prem_date)intoacc_rec_prem_date

fromrec_prem_accwhereI_info_appl_branch=rev_I_info_branch

andI_info_appl_no=rev_I_info_appl_no

andI_info_date=rev_I_info_date

ando_rev_date=rev_o_rev_date

andrev_item_code=”PS“and

ac_rev_amnt=rev_o_rev_amtand

rec_prem_acc_no=acc_rec_prem_no;

selectac_rev_amntintoacc_ac_rev_amnt

fromrec_prem_acc

whereI_info_appl_branch=rev_I_info_branch

andI_info_appl_no=rev_I_info_appl_no

andI_info_date=rev_I_info_date

ando_rev_date=rev_o_rev_date

andrev_item_code=”PS“

andrec_prem_acc_no=acc_rec_prem_no

andac_rev_amnt=rev_o_rev_amt;

ifacc_ac_rev_amntisnulloracc_rec_prem_dateisnullthen

continueforeach;

endif;

updaterev_rec_tbl

setp_rev_date=acc_rec_prem_date,

p_rev_amt=acc_ac_rev_amnt

whereI_info_appl_branch=rev_I_info_branch

andI_info_date=rev_I_info_date

andI_info_appl_no=rev_I_info_appl_no

ando_rev_date=rev_o_rev_date;

endforeach;

commitwork;

endprocedure;

②.执行例程语法:

A):在dbaccess中

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

B):在Informix-4GL中

PREPAREPREPSTATTEMENTFROM”EXECUTEPROCEDUREDBNAME@SERVER_NAME:例程名(?,?,?,...)

DECLAREP_CURSSURSORFORPREPSTMT

OPENP_CURSUSING参数1,参数2,....

FETCHP_CURSINTO返回值1,返回值2,...

CLOSEP_CURS

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

C):在Informix-ESQL/C中

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

D):在POWERBUILDER中

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

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

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

共3页: 1 [2] [3] 下一页

原文转自:www.ltesting.net

篇2:INFORMIX4GL手册(一)数据库

Informix环境变量的设定 一.环境范例 变量名称 变量说明 DBDELI MI TER 指定由dbload在卸出数据文件中使用的字段定界符 DBDATE 指定在DB中想要使用的日期格式(Y4MD/,MDY4-) DBEDIT 指定在 程序员 环境中想要使用的文本编辑器(vi) DBLANG 指定在程序中所使用

Informix环境变量的设定

一.环境范例

变量名称 变量说明

DBDELIMITER 指定由dbload在卸出数据文件中使用的字段定界符

DBDATE 指定在DB中想要使用的日期格式(Y4MD/,MDY4-)

DBEDIT 指定在程序员环境中想要使用的文本编辑器(vi)

DBLANG 指定在程序中所使用消息文件的存放目录

DBMONEY 指定在DB中想要使用的货币格式

DBPATH 指定DB与其它相应文件的搜索路径

DBPRINT  指定计算机的打印程序

DBSRC  指定程序调试阶段文件的搜索路径

DBTEMP  指定临时文件的存放目录

INFORMIXDIR  指定Informix文件的存放目录(/usr/informix)

INFORMIXSERVER    指定Informixr的数据库服务器名称

FORMDIR    指定Informix屏幕格式文件的存放路径

DBNLS  指定Informix传输汉字(DBNLS=2)

LANG     指定Informix可显示汉字(LANG=english.8859)

ONCONFIG 指定Informix-Online的配置文件(onconfig.life)

PATH  指定Informix可执行文件的搜索路径

TERM   指定Informix的终端类型(TERM=vt100)

TERMCAP   指定Informixr的终端类型文件

二.环境范例

.profile(环境变量的等号前后不得为空格)

stty-istrip-isig(防止用户非法中断)

INFORMIXDIR=/usr/informix

INFORMIXSERVER=ld420501_tcp

NCONFIG=onconfig.life

PATH=$PATH:$INFORMIXDIR/bin:$HOME/bin:$HOME/form.:$HOME/prg

DBPATH=/u/cbps/form.:/u/cbps/bin

FORMDIR=/u/cbps/form

DBDATE=Y4MD/

LANG=english_us.8859

DBLANG=english_us.8859

DBNLS=2

TERMCAP=/usr/informix/etc/termcap

TERM=vt100

exportINFORMIXDIRINFORMIXSERVERONCONFIGPATHDBPATHFORMDIRDBDATELANG

exportDBLANGDBNLSTERMCAPTERM

环境变量的设置文件中还可加入其它Shell语句

Informix产品线及DB应用开发工具简介

一.Informix(英孚美)产品线简介(三大类):

1.数据库服务器(DatabaseServer)

①.ODS(Informix-OnlineDynemicServer) 联机动态服务器,多线索,多性能的DBserver(数据库服务器)

②.XPS(Informix-OnlineExtendedParallelServer) 将DSA扩展至松耦合或非共享的计算体系结构,动态可申缩性体系结构(DynemicScerableArchiterta),适用于大型数据库的应用,并行SQL操作,

INFORMIX4GL实用手册(一)(1)数据库

③.IUS(Informix-UniversblServer)

处理丰富而复杂的数据而设计,并用Datablade模块技术,用来存储和检索丰富的多媒体Data及其他复杂的插入或对象扩展模块。

2.应用开发工具

①.Informix-NERERA适用于关键性业务的C/S(客户机/服务器)模式,开放性,图形化面向对象的开发环境。└→Client/ServerModel

②.Informix-4GL适用于各种类型业务的哑终端操作方式,适用性广,开发方便,可维护性好,功能强大,无图形功能,用户界面不够友好。

③.Informix-SQL符合国际标准的SQL语言,具有通用性,DDL与DML合为一体,高度的非过程化,分为嵌入式和交互式两种形式,具有数据控制,访问功能。

④.Informix-ESQL/C把SQL嵌入C语言提供实现SQL语言的目标函数库,利用宿主程序完成一个应用的过程。

3.连接工具

c4gl<*.4gl*.c*.ec*.o>-c,o,s

└→4gl源程序文件的编译,连接生成目标文件或可执行文件

esql<*.ec*.c*.o>-c,o

└→esql源程序文件的编译,连接生成目标文件或可执行文件

cc<*.c*.o>-c,o

└→c语言源程序文件的编译,连接生成目标文件或可执行文件

二.SQL(StructuredQueryLanguage)简介

1.SQL(结构化查询语言)的主要特点:(RDBServer关系型数据库服务器)

①.一体化:DDL与DML合为一体.

②.高度非过程化:whattodo,nothowtodo用户使用起来简单方便.

③.具有SQL交互式与SQL嵌入式两种形式.

2.SQL语言的分类:

①.DDL(数据定义语言):用来创建,更改,删除数据库基表视图.

②.DML(数据操纵语言):对DB中的数据进行查询或增删改操作.

③.DCL(数据控制访问语言):对存取权根的控制,授权和回收,游标语句,动态管理语句,数据完整性语句,查询优化语句,事务处理语句.

三.Stores7,Dbaccess,Isql,I4gl,Upscol等DBMS实用工具

1.$dbaccessdemo7[DBname][withlog]

└→创建范例DB└→数据库名└→缺省不带系统日志

2.$dbaccess

└→捆绑在Informix-OnlineDBServer上的一套DBMS实例程序,可以做到:

①.利用该工具可以做到创建和删除数据库.

②.查询数据库中各种信息,编辑使用SQL语句.

③.创建,更改,删除数据库基表.

④.增加,删除,修改数据库中原始记录.

⑤.从OS(操作系统)文件中装载数据到数据库中.

⑥.将数据库中的数据卸出到一个OS(操作系统)文件中.

⑦.创建回收权限.

⑧.利用该工具可以创建,删除,修改Procedure(过程)。

共2页: 1 [2] 下一页

原文转自:www.ltesting.net

篇3:INFORMIX4GL手册(三)数据库

关系数据库Informix-4GL程序设计 一.关系数据库程序设计的关键和方法 1.成功设计一个关系数据库的关键因素: ①.深入广泛、了解企业内部组织机构及需求; ②.始终保持与最终用户交互、联系; ③.设计过程中要采用结构化的 开发 方法,便于维护; ④.要用ER图

关系数据库Informix-4GL程序设计

一.关系数据库程序设计的关键和方法

1.成功设计一个关系数据库的关键因素:

①.深入广泛、了解企业内部组织机构及需求;

②.始终保持与最终用户交互、联系;

③.设计过程中要采用结构化的开发方法,便于维护;

④.要用ER图表示数据结构模型,

2.结构化的开放方法交整个应用的开发周期划分成阶段:

①.系统开发的可行性报告;

②.程序的功能需求;

③.技术设计(系统规格说明书);

④.编程及测试(源程序代码清单);

⑤.用户培训、实现(用户手册)。

⑥.程序的维护与升级。

3.数据库设计的方法与步骤:

①.获得对企业的了解(需求分析);

②.标识主要的数据对象(实体、属性、联系);

③.用ER图画出数据对象(初步ER图);

④.求解逻辑数据类型(处理联系、去掉冗余);

⑤.确定属性的细则(数据类型);

⑥.通过规范化来修正逻辑模型;

⑦.用SQL的DDL将逻辑模型转换成物理的DB模式。

二.Informix-4gl的语法规则

1.程序体结构:

DATABASE

GLOBALS###定义全局变量

DEFINE变量名1变量类型,

变量名n变量类型

ENDGLOBALS或GLOBALS“glob.4gl”

MAIN

DEFINE变量名1变量类型,

变量名n变量类型

OPTIONSPROMPTLINE1,

ERRORLINE24,

MESSAGELINE24,

COMMENTLINE24,

FORMLINE4,

MENULINE4,

nextkeycontrol-n,

previouskeycontrol-p,

deletekeycontrol-o,

insertkeycontrol-i,

ACCEPTKEYINTERRUPT,###使用ESC键无效

INPUTWRAP###按接受键后存入

DEFERINTERRUPT###防止非法中断

setisolationtodirtyread

setlockmodetowait5

whenevererrorcontinue###遇到错误继续执行

callstartlog(“slif_err.log”)

....(其它程序语句)

....(用户函数)

ENDMAIN

2.程序的具体语法:

①.命令行参数:

arg_val[0]:表示命令本身

arg_val[1]:表示命令行参数1

arg_val[n]:表示命令行参数n

sum_args():测试命令行参数的总个数

②.程序变量:

除serial类型外,其余均可为数据库字段类型,

原文转自:www.ltesting.net

相关专题 手册数据库