1. 저장된 절차를 사용하여 데이터 세트를 반환하십시오
Oracle에서 저장된 절차에 의해 반환 된 데이터 세트는 Ref Cursor 유형 데이터의 매개 변수에 의해 반환되며, 데이터를 반환하는 매개 변수는 입력 또는 유형 유형이어야합니다.
저장된 프로 시저를 정의 할 때 파라미터의 데이터 유형을 직접 지정할 수 없으므로 Ref Cursor는 다음 방법으로 먼저 재정의됩니다.
패키지 fuxjpackage는 패키지를 생성하거나 교체합니다
fuxjresultset 유형은 ref cursor입니다.
-당신은 다른 콘텐츠를 정의 할 수도 있습니다
끝 fuxjpackage;
저장된 절차를 다시 정의하십시오.
프로 시저 생성 또는 교체 업데이트 fuxjexample (char의 sdm, char의 smc, preccur in fuxjpackage.fuxjresultset)
~처럼
시작하다
fuxjexample set set mc = smc 여기서 dm = sdm;
SQL%RowCount = 0이면
롤백;
Preccur를 열어줍니다
듀얼에서 '0'res를 선택하십시오.
또 다른
저지르다;
Preccur를 열어줍니다
듀얼에서 '1'res를 선택하십시오.
끝 IF;
끝;
그리고
프로 시저 생성 또는 교체 InsertFuxJExample (char의 sdm, char의 smc, preccur in fuxjpackage.fuxjresultset)
~처럼
시작하다
fuxjexample (dm, mc) 값 (SDM, SMC)에 삽입;
저지르다;
Preccur를 열어줍니다
fuxjexample에서 *를 선택하십시오.
끝;
2. Delphi에서 데이터 세트를 반환하는 저장된 절차에 전화하십시오.
The Return Proc 또는 TQuery 컨트롤을 통해 반환 데이터 세트를 호출 할 수 있습니다. ptinputoutput.
TSTERDPROC를 사용하여 UpdateFuxJExample의 관련 설정을 다음과 같이 실행하십시오.
객체 storedproc1 : tstoredproc
DatabasEname = 'useProc'
StoredProcName = 'UpdateFuxJExample'
paramdata = <
목
Datatype = ftstring
이름 = 'sdm'
Paramtype = ptinput
끝
목
Datatype = ftstring
이름 = 'smc'
Paramtype = ptinput
끝
목
DataType = ftCursor
이름 = 'preccur'
paramtype = ptinputoutput
value = null
끝>
끝
실행 방법은 다음과 같습니다.
StoredProc1.params.items [0] .AsString : = edit1.text;
StoredProc1.params.items [1] .ASSTRING : = edit2.text;
storedProc1.active : = false;
storedProc1.Active : = true;
tquery를 사용하여 insertfuxjexample의 관련 설정을 다음과 같이 실행하십시오.
객체 query1 : tquery
DatabasEname = 'useProc'
sql.strings = (
'시작하다'
'insertfuxjexample (sdm => m, smc => : mc, preccur => : reccur);'
'끝;')
paramdata = <
목
Datatype = ftstring
이름 = 'dm'
Paramtype = ptinput
끝
목
Datatype = ftstring
이름 = 'MC'
Paramtype = ptinput
끝
목
DataType = ftCursor
이름 = 'reccur'
paramtype = ptinputoutput
끝>
끝
실행 방법은 다음과 같습니다.
query1.params.items [0] .AsString : = edit3.text;
query1.params.items [1] .AsString : = edit4.text;
query1.active : = false;
query1.active : = true;
SQL%RowCount = 0이면
롤백;
Preccur를 열어줍니다
듀얼에서 '0'res를 선택하십시오.
또 다른
저지르다;
Preccur를 열어줍니다
듀얼에서 '1'res를 선택하십시오.
끝 IF;
끝;
그리고
프로 시저 생성 또는 교체 InsertFuxJExample (char의 sdm, char의 smc, preccur in fuxjpackage.fuxjresultset)
~처럼
시작하다
fuxjexample (dm, mc) 값 (SDM, SMC)에 삽입;
저지르다;
Preccur를 열어줍니다
fuxjexample에서 *를 선택하십시오.
끝;
2. Delphi에서 데이터 세트를 반환하는 저장된 절차에 전화하십시오.
The Return Proc 또는 TQuery 컨트롤을 통해 반환 데이터 세트를 호출 할 수 있습니다. ptinputoutput.
TSTERDPROC를 사용하여 UpdateFuxJExample의 관련 설정을 다음과 같이 실행하십시오.
객체 storedproc1 : tstoredproc
DatabasEname = 'useProc'
StoredProcName = 'UpdateFuxJExample'
paramdata = <
목
Datatype = ftstring
이름 = 'sdm'
Paramtype = ptinput
끝
목
Datatype = ftstring
이름 = 'smc'
Paramtype = ptinput
끝
목
DataType = ftCursor
이름 = 'preccur'
paramtype = ptinputoutput
value = null
끝>
끝
실행 방법은 다음과 같습니다.
StoredProc1.params.items [0] .AsString : = edit1.text;
StoredProc1.params.items [1] .ASSTRING : = edit2.text;
storedProc1.active : = false;
storedProc1.Active : = true;
tquery를 사용하여 insertfuxjexample의 관련 설정을 다음과 같이 실행하십시오.
객체 query1 : tquery
DatabasEname = 'useProc'
sql.strings = (
'시작하다'
'insertfuxjexample (sdm => m, smc => : mc, preccur => : reccur);'
'끝;')
paramdata = <
목
Datatype = ftstring
이름 = 'dm'
Paramtype = ptinput
끝
목
Datatype = ftstring
이름 = 'MC'
Paramtype = ptinput
끝
목
DataType = ftCursor
이름 = 'reccur'
paramtype = ptinputoutput
끝>
끝
실행 방법은 다음과 같습니다.
query1.params.items [0] .AsString : = edit3.text;
query1.params.items [1] .AsString : = edit4.text;
query1.active : = false;
query1.active : = true;
첨부 : 데이터 세트를 반환하는 저장 프로 시저를 만들기위한 간단한 프레임 워크
1.
패키지 TestPackage는 패키지를 생성하거나 교체합니다
타입 testresultset은 ref cursor입니다.
종료 testpackage;
2.
절차 테스트를 만들거나 교체합니다
(
Out testpackage .testresultset의 preccur
))
~처럼
시작하다
Preccur를 열어줍니다
* 테이블에서 *를 선택하십시오.
끝;