안녕하세요..
제가 알려고 하는것이 없어서 이렇게글을 올립니다.
한가지 여쭈어 보겠습니다.
스토어드 프로시저에 관한건데요...
하나의 테이블에서만 사용하는 업데이트 스토어드프로시저 말구요
여러 테이블을 땡겨와서 update하려는 테이블에서 업데이트 스토어드프로시저를 적용할려구 하는데요..
업데이트 스토어드프로시저를 작성할때 어떻게 해야되나요?
점도와주세요 저는 델파이 6.0(엔터프라이즈)을 사용하구요
디비는 인터베이스 6.0을 사용합니다.
*sql 문으로 작성하여 사용할려구 합니다.. 점도와주세요..*
if.. then else while.. 등등 변수 선언해서.
CREATE PROCEDURE PROC_PIT_MXTK (
F_1 VARCHAR(4),
F_2 VARCHAR(4),
F_3 VARCHAR(8),
F_4 VARCHAR(6),
F_5 VARCHAR(12),
F_6 VARCHAR(2),
FCH_ID VARCHAR(16),
......................
FILLER3 VARCHAR(9)
) RETURNS (
RF_6 VARCHAR(2),
RCK_TNO INTEGER,
RPIT_OC INTEGER,
RPIT_EX INTEGER,
RPIT_SM INTEGER
) AS
declare variable tk_ck varchar(2);
declare variable tk_gen integer;
declare variable pit integer;
declare variable f_7 varchar(15);
declare variable pcrd varchar(37);
declare variable tk_sm integer;
begin
tk_gen = gen_id(tk_tno,1); // 고유번호 발번
RCK_TNO = tk_gen;
if (:F_1 ='0300') then
begin
select f_7, pit from fch_mxtk where f_7 = :fch_id
into :f_7, :pit;
if (f_7 is null ) then
rf_6 ='02';
else
rf_6 ='00';
rpit_oc =ceiling(ceiling(:my *( :pit / 100))*0.8);
tk_sm =ceiling(:my *( :pit / 100));
insert into pit_mxtk(F_1, F_2,F_3, F_4, F_5,F_6,FCH_ID, TDATE,TTIME,PKD,WCC, CRD_ID,
PW, MY, FILLER1, FILLER2,CNE_CDE, FILLER3,ck_tno,pit_oc,pit_sm)
values (:F_1, :F_2, :F_3, :F_4, :F_5, :rf_6, :FCH_ID, :TDATE,:TTIME,:PKD,:WCC, :CRD_ID,
:PW, :MY, :FILLER1, :FILLER2, :CNE_CDE, :FILLER3,:tk_gen, :rpit_oc,:tk_sm);
if (:F_1 = '0300') then
begin
if (:f_6 ='00') then
begin
select crd from mbr_ck2 where crd = :crd_id
into :pcrd;
if (pcrd is not null) then
update mbr_ck2 set pit_sm = (pit_sm +ceiling(ceiling((:my *( :pit / 100))))*0.8) where rtrim(crd) = rtrim(:crd_id);
else
insert into mbr_ck2(crd,pit_sm) values(:crd_id, ceiling(ceiling((:my *( :pit / 100))))*0.8);
end
end
select pit_ex, pit_sm from mbr_ck2 where crd = :crd_id
into :rpit_ex, :rpit_sm;
end /* 0300 end */
else
if (:f_1 = '0500') then
begin
rpit_sm = 22;
end
suspend;
end