Anda di halaman 1dari 31

INFORMIX-4GL

[ 2003/06/18 07:09pm 3 ]
< g ?

Informix
.

V?1i?

?+

?+5 &j@

DBDELIMITER dbload
DBDATE DB (Y4MD/,MDY4-)
DBEDIT (vi)
DBLANG
DBMONEY DB

?$S??

X a?

w dh

Z,Z c?}X

DBPATH DB
DBPRINT

Ld"{=
Y

~?11 $

DBSRC
DBTEMP

??

SV???

INFORMIXDIR Informix (/usr/informix)


INFORMIXSERVER Informixr
FORMDIR Informix
DBNLS Informix (DBNLS=2)

tF% i 7 ?

Vp 1 {G

~?

ONCONFIG Informix-Online (onconfig.life)


PATH Informix

3oX?

?]f n4

TERM Informix (TERM=vt100)


TERMCAP Informixr

No v??

?x:?v?

LANG Informix (LANG=english.8859)

]~W?

;JTV

1??

L??#B

.profile ()
stty -istrip -isig ()
INFORMIXDIR=/usr/informix

e ^w%y??

? 0 ?

INFORMIXSERVER=ld420501_tcp
ONCONFIG=onconfig.life

= hb ?

??

PATH=$PATH:$INFORMIXDIR/bin:$HOME/bin:$HOME/form:$HOME/prg
DBPATH=/u/cbps/form:/u/cbps/bin
FORMDIR=/u/cbps/form
DBDATE=Y4MD/

sP ?2?

?a?;

3 ?Y

LANG=english_us.8859

? u(

DBLANG=english_us.8859
DBNLS=2

**`0o -?

? d

TERMCAP=/usr/informix/etc/termcap
TERM=vt100

0???

; -?

export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH DBPATH FORMDIR


DBDATE LANG

:s?

export DBLANG DBNLS TERMCAP TERM

??

Shell

F '?

n %U

Informix DB
.Informix()()

uV?

?$

1.(Database Server)

7-s

.ODS (Informix-Online Dynemic Server)

H?a

DB server()
.XPS (Informix-Online Extended Parallel Server)

t]? H*

V1 V@.

DSA (Dynemic
Scerable Architerta) SQL
.IUS (Informix-Universbl Server)

B ;?

?:

Datablade
Data

r ;?

??2 ]

2.

C_? b?

.Informix-NERERA C/S(/)
Client/Server Model

? ?H

.Informix-4GL

.Informix-SQL SQL DDL DML

??

.Informix-ESQL/C SQL C SQL

6 @.?+

3.

??O C

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

?x r7GI_

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

{mUwi

Ge ??

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

? mxTH

T ?

c ,

??4G_

.SQL(Structured Query Language)

/KM i

1.SQL():(RDB Server )

?^Qb U

.:DDL DML .

C ?

.:what to do ,not how to do .


. SQL SQL .
2.SQL :

g_^/:

?ki

?x?J

.DDL ():,,.

??}

.DML (): DB .

?(?

.DCL ():,,,,
,,.

.Stores7,Dbaccess,Isql,I4gl,Upscol DBMS :
1.$dbaccessdemo7 [DBname] [with log]

?j?

DB
2.$dbaccess

?i3g (

H' s r

E !~p

Informix-Online DB Server DBMS ,:


..

xr?N

., SQL .
.,,.

b?-` O

S?

.,,.

AQ i HI

. OS().

^?

. OS().
..

yZ \

r??6u?

7?^?Ba

.,, Procedure

{C

3.$isql

*{

Informix-Online DB Server DBMS ,:


..

??G ?

., SQL .
.,,.

sJp']?,

N?K gp?

.,,.

O ?

. OS().

6?ndj4?~

. OS().

/:-

?"@ RC?

..

u ?&

.,,,(*.per),.
.,,,(*.ace),.
4.$i4ql

?^?

??pD $

r?

Informix-Online DB Server Informix-4GL ,:


..

., SQL .
.,,.

$ M

}n4g?_?J

.,,.

. OS().

t??

. OS().
..

x?|93Yi

fO KJ_ A?

.,,(*.per).

.,,,, Informix-4GL (*.4gl).


5.$upscol

>>

Informix-Online DB Server ,:
..
.,,.

.,,.
6.$form4gl <>

.:
form4gl <*?*.per>

f~?B

FK?% V

| s /

t/? 1?

.:

V]h AA

form4gl -d

7.$c4gl <*.4gl>

g~2?

<<

: c4gl [-Vaeqcz] [-phase 12345] [-ansi] [-anyerr]


[-globcurs | -localcurs] [-nokeep | -keep]

I?gv

[-static | -shared] [-nolinenos | -linenos] [-otherargs]

! ' Y?

p ?*!

`??

)"?Y??


WC

|~?

[source.4gl ...] [othersrc.c ...] [otheresql.ec ...]


[otherobj.o ...] [yourlib.a ...] [-o outfile]

O?P |

w%? 5E=/

}%<?)?

-V Display version of 4gl only


-a Do array bounds checking

..?

??

-e Preprocess only, no compilation or linking


-q Quiet mode for i4glc1 [phase 1]

? K ?

?b !

-c Preprocess & compile only, no linking

`'?

-z Allow variable number of arguments to functions

?mls

-phase 12345 Process only the phase that indicated


-ansi Check SQL statements for ANSI compliance
-anyerr Set status variable after expressions

?|"

` i&<

-globcurs Make cursor definitions global to program

-localcurs Make cursor definitions local to module (default)

-nokeep Delete intermediate .4ec, .ec, and .c files (default)


-keep Keep intermediate .4ec, .ec, and .c files

? q A!

-linenos Produce #line numbering in .c file (default)


-nolinenos Suppress #line numbering in .c file
-static Use static libraries

= kv

? SO(w

-shared Use dynamic linking and shared libraries

?p #

-otherargs Other arguments are passed to the C compiler

l$Wl?v?

"|?

-o Next argument is name of executable


8.$esql <*.ec>

9m ??

T ??

: esql [-e] [-static] [-shared] [-esqlcargs] [-otherargs]


[-o outfile] [-libs] esqlfile.ec

?? N

[othersrc.c...] [otherobj.o...] [-lyourlib...]


V w

8 .N

-e Preprocess only, no compilation or linking


-static Use informix static libraries.

2 <%;$ir?

?(x>:

-shared Use informix shared libraries ( default is shared).

:U?

-esqlcargs esqlc arguments (-g, -G, -nln, -Ipathname, -nowarn, -V, -ansi,-xopen, -local, -log,
-EDname, -EUname, -icheck)

?lt;?,?

-otherargs Other arguments are passed to cc


-o Next argument is program name

& U?

-libs Display the list of libraries used by esql at link time.


9.dbexport,dbimport,dbschema,ontape :

2*3 qj ?

_???

dbexport (TableViewProcedureTrigger )
dbexport dbexport t /dev/rStp0 s b

D ?>?

?B?|;?

dbimport (TableViewProcedureTrigger )

t?g!

dbimport -d workdbs l buffered

'?O

dbschema SQL
dbschema d -t -ss

x D??

dbschema d -f -ss
ontape

Q'i z`

? `S

N?%?

ontape s B uffered
~{hz %

Informix-SQL Version 6.05.UD1

4 -?

.,,
1.:

a </

<......>

??O z

{......}
[......]

j?@?

??v

(......)
|

>5R ?

)*&<>

[A-Z] Informix

V .?

&??

[a-z] Informix ,,,


2.(Database):
. DB:

y ?

]??

$7?

CREATE DATABASE [WITH BUFFERED LOG]

o? p

lY?

DB DB
.:

. 10 .

19

=Mk ( -h?

.,,,.
. DB Server(.
. Informix

K?Ut_h

W [

)?

e ?

3.(Table)

;8?}?

. DB Table
DATABASE

`|<=?

CREATE TABLE

[???,?

!?F?lt;

column0 serial(1) , # 1

V om

column1 integer , #-2147483647 +2147483647


column2 smallint , #-32767 +32767
column3 float default 0.00 not null#
column4 smallfloat , #

gG?<

O 5t?

i:uNoXr?

y?[_?)

column5 decimal(m,n), #( m-n , n )


column6 money(m,n) , # decimal
column7 date , #

?" 5b5

!A$qq '

z'-} wy

column8 datetime year to second,#(1999-09-07 09:52:52)


column9 char(n) , # n

-?{#

column10 varchar(n) , #()


check ( in( 1, 2, 3) constraint ,

9L +?&

?lt;% 0

primary key( 1, 2, n) constraint ##,


;

? ml%?

? H k

CHAR

?I}

VARCHAR
SMALLINT2
INTEGER4

{\

P9k

SMALLFLOAT4
FLOAT8

s m ~

_??:

SERIAL4
DATE4

S;3 Q

B. P b

&XI

DATETIME8 (Year to Second), 4

p =x[

DECIMAL(m,n)(m/2+1 )
MONEY(m,n)(m/2+1 )
.

'?0?U ?

T[Y_

nw3 ??

. 18 .

Z sR tb

'2

F???2

.,,,.
..
. Informix .

_6

e U ,{

? q?

. 18 like table.* 8
.
4.(Index)
.

?} {U

yNO}K ?j

Di?

_

o? kq

[P~.?

V @"

..
..

: g$X ?

w y?

i.T T!

., 65536
. 8

? x ,?

. 120
.
.

w ??

??X'{

?lt;?l t;~?

CREATE [UNIQUE|DISTINCT] INDEX


ON

cz ??

???

(column1 [DESC],column2,..,columnn)

?C ~??

#x 7h ?

B2a???

5.View

S?N/9

?U ??

k??

. 18 .
.,,,.
..
. Informix .

5adL 1l

v ?

$ F?

. 18 8
.
.

c???)

5a??

??

9?lt;?-w

.
?"\- G

.:

|?

.
.

|?U 0

Pr 3

.
. ROWID
.

?(wL` c

wj D n

CREATE VIEW [ 1,..., n]

\ p?W?

Pg ?

[G( G0??

AS SELECT < Select > UNION

2
j?s

[WITH CHECK OPTION] SELECT


6.
.:drop

??aA"?

q ?

?*3?

. :drop table

J ]h

. :drop index
. :drop view

*??:2

M ?aa?

.SQL

i ?

1.INSERT
INSERT INTO (column1,comumn2,...,comumnn)

c*(?

M?Md?

0 =[

VALUES (value_list)

3 ??

2.DELETE
DELETE FROM WHERE )

p?d ?

F ?}

>?)0+

3.UPDATE

c ?

UPDATE STATISTICS TB name()

} ?

UPDATE SET < 1 1 n n>

??[j?

WHERE )
UPDATE SET <> <>

_?

9 R

?Q>F?P ?

WHERE )
UPDATE SET <.*> <.*>

? ?

?? ?

?( oS }

" x ?

WHERE )

4?d

4.SELECT
SELECT *

%?-/

&(H v

^w B

y?

INTO <>INTO TEMP <>


FROM []

-??

WH ?

(WHERE <>)

G?@2?j

ORDER BY [column1,column2,...,column8][DESC] 1-8


GROUP BY [column1,column2,...,columnn] 1-8
[HAVING <>]
INTO TEMP <>

5E ?

\?o?

?Q6?

!E*?

5.(Join) SELECT :(

??

SELECT < 1.>< 2.>< 2.>< 3.>...< n.>


FROM < 1> [ 1]< 2> [ 2]< 3> [ 3]...< n> [ n]
WHERE <> WHERE

nXFh%w9?

}b "?

(^k

ORDER BY [1,2,3,4,5,6,7,8][DESC]1-8 SELECT


GROUP BY [column1,column2,...,columnn]
[HAVING <>]

L S (

?)J

??I C{

INTO TEMP <>

P -??

WHERE

6.SELECT

?%%?w?

M?{H

+Ot

COUNT(*)

0 L

COUNT(DISTINCT *
SUMDISTINCT x) x

D??

AVGDISTINCT x) x
MAXx) x
MINx) x

( T<?

?}?C??

J p'?

$TU L

DATE DATE

E ?

DAY DATE

2c*L-?

MDY DATE
MONTH DATE

s?#?

^? 0?W?

WEEKDAY DATE 0-6


YEAR DATE
7.SELECT

+
-

.?

9 ?1

*
/

}??Y

-O 5 9

mod

tk d??

VP2 ?

{v5 8RO

4/ 4 +

**

) C d?

8.WHERE
.

2?

!= <>

-7, ?

TL ;?

>=
<

?TD^ d

= ==

>

VL? 2?

$C w 1

V ,bi?

<=

9] Yga?

.AND OR

h??

.[NOT] BETWEEN ...AND...[]......

J ??&(V

.[NOT] IN ( 1 2 3 n)
.[NOT] MATCHES
MATCHES

?A?:?

kSY ? ?

*
?

r? n ?

|?

[...]

l@$?

[^..]

P C :

[A-Z] A Z
\

h2mHy?

`?$

.[NOT] LIKE ...


LIKE

[4 :

?] ae

?BuQr[?

qe %^5

.IS [NOT] NULL


.

?5

S O t27?

b S?

WHERE {ALL|ANY|SOME}(SELECT )
WHERE [NOT] IN(SELECT )
WHERE [NOT] EXISTS(SELECT )

? T0[?

?t w ?

?_?

ALL 0 ,1 ,

L C

ANY 0 ,1 ,
SOME ANY

?? O

C??QG??

IN SELECT

? F p

EXISTS SELECT
NOT
P Hfj#P

9.SQL

+? ??.

/?

Un u>

SQL(),

SELECT

v/??

K G6 ?

Informix-4GL
.:

=0& ??

1.

e @

.
.

M? 7

.
. ER

? c

2.
.
.

) t ?

|?t ?D

4 ouC O

.
.
.

??

xe =

3.

( 7)? k

m ?n

<HI?

^?

.
. ER ER

g ?/:w

.
.
.

( ?

$ B?

2 ?

\?[d|

. SQL DDL DB
.Informix-4gl
1.:
DATABASE

K ?

w.D_

u O k ?

GLOBALS ###
DEFINE 1
n

? P=?#?

R3F ?

9 ??

END GLOBALS GLOBALS glob.4gl


MAIN

??OU

DEFINE 1
n

s? t- ?

OPTIONS PROMPT LINE 1,


ERROR LINE 24,

?^

a x?

MESSAGE LINE 24,

j??

COMMENT LINE 24
FORM LINE 4,

@sX t

?L ?%

QL

MENU LINE 4,

g?

next key control-n

"Iu }?

previous key control-p


delete key control-o
insert key control-i

20er?i?

?-

f;,n

ACCEPT KEY INTERRUPT,### ESC

Ye ?c?

INPUT WRAP ###

Q ?

DEFER INTERRUPT ###


set isolation to dirty read
set lock mode to wait 5

?p`-X

/?

?#6G8 O

whenever error continue ###


call startlog(slif_err.log)
....()
....()
END MAIN

C? QC

Pdbi ND

V??

2.:

MH l

]$

N E ,

:s3Yh

w???0

arg_val[0]:

18m0

arg_val[1]: 1

|*@

arg_val[n]: n

w?Q ]?

sum_args():
.

?- ?t

'?

serial
Informix-SPL()

Pg? RB

0d*1 ?

Informix SQL Informix-Online


SQL SPL
Informix SQL SPL SQL .,
,, SQL
4GL
ESQL/CPOWERBUILDER.DELPHI SELECT
Informix
SPROCEDURES.SYSPROBODY. SYSPROPLAN ,,
, Informix
Informix
,

1.

Q ?j)<

CRAETE PROCEDURE [OWNER.]PROCEDURE_NAME ( 1 =[DEFAULT], 2


=[DEFAULT], n =[DEFAULT])
RETURNING 1 , 2 , n
<......> END RPOCEDURE

: v

# 8R ?

|\?/ f

64K, SQL.SPL.., 18 ,
,";",,

h E

,
create procedure "test".upwage()

y<<i7:/ \/

define rev_rev_item_code varchar(2,0);


define rev_p_rev_date date;

w 7?

D' J?

define acc_rec_prem_no decimal(8,2);define rev_p_rev_amt decimal(10,2);define


rev_I_info_branch varchar(6,0);define rev_I_info_appl_no decimal(8,0);define
rev_I_info_date date;define rev_o_rev_date date;
define rev_o_rev_amt decimal(10,2);

?CM

define acc_ac_rev_amnt decimal(10,2);


define acc_rec_prem_date date;
begin work;

:E ??

7 ? m

;Z

;=E?H

foreach cur_rev for select I_info_appl_branch,I_info_appl_no,I_info_date,


o_rev_date,o_rev_amt into rev_I_info_branch,

P?}

/Z #??

rev_I_info_appl_no,rev_I_info_date,rev_o_rev_date, rev_o_rev_amt from rev_rec_tbl


where

(rev_item_code="PS" ) and p_rev_date is null and


p_rev_amt=0 and (I_info_appl_no is not null or
I_info_date is not null);

f T?a?V?

? P?

cLQ ef??

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="PS" and

* 9

S o ;

??JO

ac_rev_amnt=rev_o_rev_amt;

deU9Xk$

select date(rec_prem_date) into acc_rec_prem_date

:+4 ,

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="PS" and

J ??

2
?

Q 1z

ac_rev_amnt=rev_o_rev_amt and

Ta o .?

rec_prem_acc_no=acc_rec_prem_no ;

|?+7 X?

kY(??

np?

select ac_rev_amnt into acc_ac_rev_amnt


from rec_prem_acc

P O ?

UT?&

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="PS"

?'yC?l?

5 ^wr`,

7 -

MP?t?

and rec_prem_acc_no=acc_rec_prem_no
and ac_rev_amnt=rev_o_rev_amt;

6??

fT_?B

if acc_ac_rev_amnt is null or acc_rec_prem_date is null then


continue foreach;
end if;

V ?

G G &D>

}M Y qM

update rev_rec_tbl

?!=?

set p_rev_date=acc_rec_prem_date,
p_rev_amt =acc_ac_rev_amnt

j Y $?S

D d6Y$

where I_info_appl_branch=rev_I_info_branch
and I_info_date=rev_I_info_date

? f5 ?

and I_info_appl_no=rev_I_info_appl_no
and o_rev_date=rev_o_rev_date;
end foreach;

%jP?

y?

? -X??

,-?

commit work;

v J

end procedure;

3 ?vG

h ~t

A): dbaccess

,-?1

EXECUTE PROCEDURE DBNAME@SERVER_NAME:( 1, 2,.....)

zP1>k?

B): Informix-4GL

<u ,

PREPARE PREP STATTEMENT FROM "EXECUTE PROCEDURE DBNAME@SERVER_NAME:


?,?,?,...

"?Y ?B2

DECLARE P_CURS SURSOR FOR PREP STMT


OPEN P_CURS USING 1, 2,....

p#R

FETCH P_CURS INTO 1 2...


CLOSE P_CURS

$h >Q E ?

Y ?

Y-? 4??

EXECUT PROCEDURE , PREPARE , INFORMIX-4GL ,


INFORMIX-NEWEAR , PREPARE ?,
,
C): Informix-ESQL/C

?Yq+~

. y ?

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

hFD i

EXEC (: 1,: 2,.....)

x..?

PB , SQL ,
.

V?Q ?

2.

2 `?

,,:.IF
....ELIF.....ELSE.....END IF

C^J

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


RETURNING INT;
DEFINE REL INT;

j e?

Nig;O?

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


LET REL=1;

W Mg vK

m R

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


LET REL=-1;
ELSE

l ym?4b

z???

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


END IF

8k _ v

?!c~J

1 I

B7

RETUEN REL;

L-?x

END PROCEDURE

D^?:?

IF SQL SELECT
.FOR .....END FOR

Mu
?

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


--
END FOR

} ?

? 4 }

?!?q

[?

FOR SQL
.WHILE.......END WHILE

uS??h

WHILE TRUE WHILE , FALSE

e.????

:WHILE I<10

INSERT INTO TBB_1 VALUES(I);


LET I=I+1;

:?

z R ?

END WHILE;

?*

.FOREACH........END FOREACH

l?

FOREACH ,,.:
FOREACH [WITH HOLD] SELECT INTO FROM
TABLE WHERE

S qO

Z :~R

] SW 1

END FOREACH

h6 ?

FOREACH EXECUTE PROCEDURE 1 2.. INTO

;5?

' P

END FOREACH

;?

SELECT EXECUTE PROCEDURE


FOREACH EXECUTE PROCEDURE
. RETURN

f i?D$;?

? F4a

. END PROCEDURE

gw?)+?

27 ?

WITH HOLD
FOREACH UPDATE DELETE

oL ~

WHERE CURRENT OF
1BEGIN WORK

? m?

]UT ?

FOREACH CUR_1 FOR SELECT DATE INTO V_DATE FROM TABLE


IF V_DATE IS NULL THEN

0 E

DELETE FROM TABLE WHERE CURRENT OF CUR_1;


END IF;

? 5?

7 5h

END FOREACH;

F}?

COMMIT WORK;

*? 4 ?

2FOREACH EXECUTE PROCEDURE BAR(10,20) INTO I


INSERT INTO TABLE1 VALUES(I)
END PROCEDURE

$/EG -?

"M? {Z?N?

3^;e W ?

.CONTINUE ( FOR WHILE FOREACH) .EXIT


( FOR WHILE FOREACH)

IF J>10 THEN

^bf z

2 s.DV

CONTINUE FOR;

q?-

$b Qg

LET I,S=J,0;
WHILE I>0
LET I=I-1;

EXIT FOR;

?a+

6 [

Nb/?

IF I=5 THEN

END IF

zD[ F?

g L 

FOR J=1 TO 20

END IF

IR

? N?6 ?

L?!

END WHILE
END FOR

? h3/?8?

??

3.:

d ? B?&6

DEFINE SERIAL
TEXT BYTE
CRAETE PROCEDURE DEFINE LIKE
GLOBAL

s%4? d

CREATE PROCEDURE SP1

+R?!M?

RETURNING INT

DEFINE GLOBAL I INT DEFAULT 1


LET I=I+1
RETURN I

kQ ?\?

O >[a A$

END PROCEDURE

{>E

CRAETE PROCEDURE SP2


RETURNING INT

78FC _~

t0?pgK*

DEFINE GLOBAL I INT DEFAULT 4


LET I=I+1
RETURN I;

l f

_g[ ?

lE

END PROCEDURE

/ z ?

SP1SP2 3 SP2SP1 6

?e o?

k?x0

DEFINE LEN PROCEDURE


LET X=LENABC

j H??

<;.?

LET

i(0 ,

BEGIN......END

X ?0

BEGIN....END ,:
.

1 q5 >&?

A L?p

..

URz `?

.,,
: CREATE PROCEDURE SP
RETURNING INT
DEFINE V1 INT
LET V1=1
BEGIN

#+JA@

p eCI X?

??

? U?

DEFINE V1 INT
LET V1=2
END

D8?

?+?

?]-Q?&

!??|!?

RETURN V1

?E??

END PROCEDURE
1

i?neN b

4.:

qT-=%6

CALL
CREATE PROCEDURE SP
DEFINE IJKL INT

?w

2@2"l`C

ZM|a

CALL SP11020 RETURNING IJK


END PROCEDURE

i k?

Zg bpB

SYSTEM SYSTEM
|| SYSTEM
SQL ISAM

9?

Bm?

SYSTEM "/usr/exec/exec.sh"

"N?

RETURN RETURN
WITH RESUME RETURN WITH
RESUME

#?KL ?

RETURN V_INT WITH RESUME;


5.:

2?e

Oh ? S

INFORMIX TRACEON EXCEPTIONRAISE


EXCEPTION TRACE SET DEBUG
FILE TO FILENAME

>

ON EXECEPTION DEBUGLOG ERRLOG


:

f /

ON EXCEPTION IN error_number

y O

set sql isam

? L

2 /96 ?

END EXCEPTION WITH RESUME

h)D?

SET 3 DEFINE sql Isam INT,


CHAR Error_number SQL RAISE EXCEPTION
WITH RESUME , WITH RESUME ,INFORMIX ON
EXCEPTION , RAISE EXCEPTION

{? %

RAISE EXCEPTION SQL ISAM

RAISE EXCEPTION ON EXCEPTION


CREATE PROCEDURE TMP_PROCEDURE()
DEFINE SQLCODE INT;

Zhfm

cn ?_?

]0#?

DEFINE ISAMCODE INT;

c? 2

DEFINE ERR_TXT CHAR(255);

~1?

ON EXCEPTION SET SQLCODE,ISAMCODE,ERR_TXT


IF SQLCODE= -284 THEN

?]?

>qs??`

RASIE EXCEPTION SQLCODE,ISAMCODE," TMP_PROCEDURE ";


END IF

;C5

IF SQLCODE= -1218 THEN

?0(

RASIE EXCEPTION SQLCODE,ISAMCODE," TMP_RPOCEDURE


END IF

P Mt

END EXCEPTION
SELECT .......

3 (#y3

' s^?DL

END PROCEDURE
.:

zC 6

Vi"y?=

CREATE PROCEDURE YEARS(E_DATE DATE,B_DATE DATE)

?t$?

RETURNING INT; E_DATE B_DATE (E_DATE B_DATE)


DEFINE V_E INT;

A*? z?

DEFINE V_B INT;

u @

>r ?b ?

B? l?

%Y R ?

LET V_E = MONTH(E_DATE);

/?

LET V_B = MONTH(B_DATE);


IF V_E < V_B THEN

Pii -%6J

(!X b|

LET V_E = YEAR(E_DATE)-YEAR(B_DATE)-1;


RETURN V_E;

W ?7

ELIF V_E > V_B THEN

Fe

LET V_E = YEAR(E_DATE)-YEAR(B_DATE);


RETURN V_E;
END IF;

?_???

??

e??}7R?

LET V_E = DAY(E_DATE);

LET V_B = DAY(B_DATE);


IF V_E < V_B THEN

~wyd ?

?)O ?

LET V_E = YEAR(E_DATE)-YEAR(B_DATE)-1;


RETURN V_E;
ELSE

hJ? Ks9

Zi?

LET V_E = YEAR(E_DATE)-YEAR(B_DATE);


RETURN V_E;
END IF;

C h?

S ?

p5 ?R ?

END PROCEDURE;

?{5(# D'

J Y

??

Anda mungkin juga menyukai