SQLXgAhvV[WTv
-----------------------------
1 SQLXgAhvV[WTv̖ړI
2 XgAhvV[Wǂ쐬邩
3 SQLXgAhvV[WǂR[邩

1 SQLXgAhvV[WTv̖ړI
---------------------------------------
1.1 Tv inputparam.sp
    ̃TvłSQLXgAhvV[W͈̓Ao͈Af[^^CvAA
    \Ɠ֐̎gp@̏ЉɂȂ܂B
    SQLXgAhvV[W̎ȋ@\́A̓p[^ɂĂׂẴ^Cv󂯎A
@@̓f[^𑀍삵A\sqlsp_alltypeɑ}܂B
    ڍׂȏ̓t@Cinputparam.spB
    
1.2 Tv outputparam.sp
    ̃TvSQLXgAhvV[W̏o͈̎gp@̏ЉɂȂ܂B
    SQLXgAhvV[W̎ȋ@\͕\sqlsp_alltypes̃f[^擾
@@o͈ʂĕԂƂłB
    ڍׂȏ̓t@Coutputparam.spB

1.3 Tv resultset.sp
    ̃TvSQLXgAhvV[WʃZbgԂ@Љ܂B
    SQLXgAhvV[W̎ȋ@\͕\sqlsp_alltypeOnTOPs擾ʃZbg
    ԂƂłB
    ڍׂȏ̓t@Cresultset.spB
    
1.4 Tv loopif.sp
    ̃TvIF\ALOOP\CONTINUE HANDLER\̎gp@Љ܂B
    SQLXgAhvV[W̎ȋ@\́A͂ꂽR[Xid(cid)ɐѕ\sqlsp_grade
    ̃R[X̑SẴf[^擾AAABACex̐lvZ邱ƂłB
    
1.5 Tv whilecase.sp
    ڍׂȏ̓t@Cloopif.spB
    ̃TvWHILE\CASE\̎gp@Љ܂B
    SQLXgAhvV[W̎ȋ@\́A͂ꂽR[Xid(cid)ɐѕ\sqlsp_grade
    ̃R[X̑SẴf[^擾AAABACex̐lvZ邱ƂłB    
    ڍׂȏ̓t@Cwhilecase.spB

1.6 Tv forcase.sp
    ̃TvFOR\CASE\̎gp@Љ܂B
    SQLXgAhvV[W̎ȋ@\́A͂ꂽR[Xid(cid)ɐѕ\sqlsp_grade
    ̃R[X̑SẴf[^擾AAABACex̐lvZ邱ƂłB    
    ڍׂȏ̓t@Cforcase.spB

1.7 Tv dynamic1.sp
    ̃TvEXECUTE IMMEDIATE\APREPARE\AEXECUTE\ADEALLOCATE PREPARE\
    ܂łDYNAMIC SQL̎gp@Љ܂B 
    EXECUTE\͈ȉ̎O̃P[X܂F 
    - ͈ȂA߂lȂB 
    - ͈A߂lȂB 
    - ͈A߂lB    
    SQLXgAhvV[W̎ȋ@\́A\sqlsp_t1SĂ̍s폜ēISQLg
    pĕ\sqlsp_t1Ɋ̍s}AŌɑ}sԂƂłB
    ڍׂȏ̓t@Cdynamic1.spB

1.8 Tv dynamic2.sp
    ̃TvDYNAMIC CURSOR܂Bȉ̃P[X܂݂܂BFIȃJ[\gp
@@f[^邱ƁAʃZbgԂƁB
    SQLXgAhvV[W̎ȋ@\́Asqlsp_t1ɃJC1̕ϒlƍvlꂼvZ
    čŏIIɕ\sqpsp_t1̑SR[hԂƂłB
    ڍׂȏ̓t@Cdynamic2.spB

1.9 Tv dynamic3.sp
    ̃TvDYNAMIC SQLgpȒPȃAvP[VłB
    SQLXgAhvV[W͓͂ꂽ\p^[ƃXL[}p^[ƃ}b`SĂ̕\
    폜܂B
    ڍׂȏ̓t@Cdynamic3.spB

1.10 Tv nest1.sp, nest2.ec, nest3.sp
    ̎O̃TvSQLXgAhvV[WESQL/CXgAhvV[WNEST CALL Љ܂B
    ̂ASQLSP_NEST3ESQLSP_NEST2R[ ESQLSP_NEST2SQLSP_NEST1R[܂B
    ̎O̃Tv̋@\͓łB͂wID(sid)ɊYw(sname)o͂̂łB
    ڍׂȏ̓t@Cnest1.sp, nest2.ecnest3.spB

1.11 Tv updateonduty.sp, doorcardtrigger.sql
    ̃Tv̓gK[SQLXgAhvV[WR[@ЉĂ܂B
    updateonduty.spSQLXgAhvV[W͕\sqlsp_DoorCardOnDutyXVdoorcardtrigger.sql
    \sqlsp_DoorCard̃gK[쐬Ă܂B
    ڍׂȏ̓t@Cupdateonduty.spdoorcardtrigger.sqlB

1.12 Tv callsqlsp.cs
    ̃TvC#vOSQLXgAhvV[WR[@Љ܂B 
    ڍׂȏ̓t@Ccallsqlsp.csB
    
1.13 Tv CallSqlSp.java
    ̃TvjavavOSQLXgAhvV[WR[@Љ܂B 
    ڍׂȏ̓t@CCallSqlSp.javaB
    
1.14 Tv createtable.sql
    SQLXNvgŏLSQLXgAhvV[WTvɕKvȕ\ƃf[^܂B

2 SQLXgAhvV[W̍쐬@
---------------------------------------
2.1 SQLXgAhvV[W쐬̊{IȃXebv
    (1) eLXgGfB^SQLXgAhvV[WAg.spƂĕۑB
    (2) 쐬Odmconfig.iniɃL[[hݒ肷B
        DB_FODIR: VXet@CIuWFNg̃pXBSQLXgAhvV[W\[Xt@C͂
                  fBNgɕۑB
        DB_SPDIR: XgAhvV[W̃pXBSQLXgAhvV[WIuWFNgt@C
@@@@@@@@@ 쐬̍ۂɐꂽԃt@C͂̃fBNgɒuB
        DB_SPLOG: XgAhvV[WÕpXB쐬ɐG[bZ[Wt@CTRACE
                  \ŃvgOt@C͂̃fBNgɒuB
    (3) dmSQLJDBAc[SQLXgAhvV[W쐬B

2.2 dmSQLgpSQLXgAhvV[W쐬Tv
    ȉloopif.spɂƂSQLXgAhvV[W̍쐬@Ă܂B
    loopif.sp SQLSP_LOOPIFƂSQLXgAhvV[W쐬܂B
    SQLSP_LOOPIFɂĂ̏ڍׂȏ̓t@Cloopif.spB
    
    (1) Windows vbgtH[ 
        a) 'DBMaker 5.4' vOtH_'DBMakerT[o['NāAf[^x[X
           'DBSAMPLE5'IċNĂB
        b) 'DBMaker 5.4' vOtH_'dmSQL'N܂B
        c) dmSQLňȉ̃R}hsSQLXgAhvV[W쐬܂F
             dmSQL> connect to "DBSAMPLE5" "SYSADM" "";
             dmSQL> run 'C:\DBMaker\5.4\samples\SQLSP\createtable.sql';
             dmSQL> create procedure from 'C:\DBMaker\5.4\samples\SQLSP\loopif.sp';
           SQLSP_LOOPIFƂSQLXgAhvV[W쐬ꂽ͂łB
        d) dmSQLňȉ̃R}hsSQLXgAhvV[WeXg܂F
             dmSQL> CALL SQLSP_LOOPIF(1002,?,?,?);
    
    (2) Linux vbgtH[
        a) ^[~iňȉ̃R}hsăf[^x[X'DBSAMPLE5'N܂F
             /APP_HOME/bin/dmserver DBSAMPLE5 &
        b) ^[~iňȉ̃R}hsdmsqlN܂F
             /APP_HOME/bin/dmsqlc
        c) dmsqlcňȉ̃R}hsSQLXgAhvV[W쐬܂F
             dmSQL> connect to "DBSAMPLE5" "SYSADM" "";
             dmSQL> run '/APP_HOME/samples/SQLSP/createtable.sql';
             dmSQL> create procedure from '/APP_HOME/samples/SQLSP/loopif.sp';
           SQLSP_LOOPIFƂSQLXgAhvV[W쐬ꂽ͂łB
        d) dmsqlcɈȉ̃R}hsSQLXgAhvV[WeXg܂F
             dmSQL> CALL SQLSP_LOOPIF(1002,?,?,?);

2.3 JDBAc[SQLXgAhvV[W쐬
    ƂāAJDBAc[SQLXgAhvV[W쐬@܂B
    Tloopif.spSQLSP_LOOPIFƂSQLXgAhvV[W쐬܂BSQLSP_LOOPIFɂĂ̏ڍׂ
    loopif.spB
    : ̕\SQLXgAhvV[WɎgp܂̂ŗ\ߏĂ܂B
@@@@@@ڍׂȏcreatetable.sqlB

    (1) Windows vbgtH[
        a) 'DBMaker 5.4'vOtH_'DBMakerT[o['𗧂グAf[^x[X'DBSAMPLE5'
           IċNĂ B
        b) 'DBMaker 5.4'vOtH_'JDBATool'Năf[^x[X'DBSAMPLE5'ɐڑ܂B
        c) JDBAc[SQLXgAhvV[W쐬F
             ̃c[r[DATABASE/STORED PROCEDUREIāAẼpl{^[쐬]
             NbNƃXgAhvV[W쐬EBU[hJ܂B
             EBU[hɏ]^CvSQLIāA[C|[g]{^At@CC:\DBMaker\5.4
             \samples\SQLSP\loopif.spCvbg܂B[I]{^NbNč쐬I܂B
           @SQLSP_LOOPIFƂSQLXgAhvV[W쐬Ă͂łB
        d) JDBAToolSQLXgAhvV[WeXg܂F
             SQLXgAhvV[WSQLSP_LOOPIFI, [s]{^NbNĊ֘A̒l͂܂B
             Ⴆ1002A[OK]NbN܂B
           
    (2) Linux vbgtH[
        a) ^[~iňȉ̃R}hsăf[^x[X'DBSAMPLE5'N܂:
             /APP_HOME/bin/dmserver DBSAMPLE5 &
        b) ^[~iňȉ̃R}hsJDBAToolNāAf[^x[X'DBSAMPLE5'ɐڑ܂F
             /APP_HOME/bin/jdba
        c) JDBAToolSQLXgAhvV[W쐬F
             ̃c[r[DATABASE/STORED PROCEDUREIāAẼpl{^[쐬]
             NbNƃXgAhvV[W쐬EBU[hJ܂B
             EBU[hɏ]^CvSQLIāA[C|[g]{^At@CC:\DBMaker\5.4
             \samples\SQLSP\loopif.spCvbg܂B[I]{^NbNč쐬I܂B
           @SQLSP_LOOPIFƂSQLXgAhvV[W쐬Ă͂łB
        d) JDBAToolSQLXgAhvV[WeXg܂F
             SQLXgAhvV[WSQLSP_LOOPIFI, [s]{^NbNĊ֘A̒l͂܂B
             Ⴆ1002A[OK]NbN܂B

   ӁF
     Tvnest2.ecESQL/CXgAhvV[WłBESQL/CXgAhvV[W̍쐬@SQLXgAhvV[W
     ƎĂ܂B
     [U[dmSQLȉ̃R}hsESQL/CXgAhvV[W쐬ł܂B
       dmSQL> create procedure from 'C:\DBMaker\5.4\samples\SQLSP\test2.ec';
     ESQL/CXgAhvV[W쐬ꍇ́ADBMakerCXg[ۂCRpCw肷Kv܂B


3 SQLXgAhvV[WR[@
  SQLXgAhvV[W쐬AESQL/CJAVAXgAhvV[WƓ悤ɁANCAgc[AvOA
  XgAhvV[WgK[璼ڃR[邱Ƃł܂B
---------------------------------------
    
3.1 SQLXgAhvV[WR[\F
      CALL procedure-name[paramter-list]; 
    
      EXECUTE PROCEDURE procedure-name[paramter-list]; 
    ӁF
    @XgAhvV[WR[ꍇA͈ɑ΂āA[U[͕l܂̓oChp[^
      gpĎۂ̈Ƃ܂Bo͈ɑ΂ẮAo͒l擾邽߂ɁAoChp[^ۂ
@@@Ƃ܂B

3.2 dmsqlNCAgc[SQLXgAhvV[WR[
    SQLSP_NEST3R[R}h́F
      dmSQL> CALL SQLSP_NEST3(1,?);
      
    ́F
    
      dmSQL> CALL SQLSP_NEST3(?,?);
      dmSQL> 1;
      dmSQL> 2;
      dmSQL> 3;
      dmSQL> END;
    
    ӁF
      '?'͈̃v[Xz_[łB
      Ԗڂ̕@łSQLSP_NEST3OR[l1.2.3.͂܂B
      o͈ɁAv[Xz_[gpȂ΂Ȃ܂Bo̓p[^ɑ΂Ă
      Dmsql͏o͒l̉ɕKvȃobt@IɊ蓖Ă܂B

3.3 C#vOSQLXgAhvV[WR[
    Tvcallsqlsp.csB

3.4 JAVAvOSQLXgAhvV[WR[
    TvCallSqlSp.javaB

3.5 XgAhvOSQLXgAhvV[WR[
    Tvnest1.sp, nest2.ec, nest3.spB    

3.6 gK[SQLXgAhvV[WR[
    Tvupdateonduty.sp, doorcardtrigger.sqlB
    ӁFgK[SQLXgAhvV[WR[ꍇA߂l܂B
