//BCHJOB JOB(JAI) JOBD(NERONI2/NERONI2) OUTQ(QPRINT) + ENDSEV(60) LOG(4 00 *SECLVL) MSGQ(*USRPRF) /* Open source from www.neroni.it */ /* LA JOB DESCRIPTION "NERONI2/NERONI2" DEVE PREESISTERE. PUO' ESSERE */ /* IDENTICA A QBATCH E PUO' ESSERE SOSTITUITA DA QBATCH O SIMILE. */ /* From System: "DEV720" */ /* From Library: "NERONI2" */ /* Unload Time: 2016-04-05 18:16 */ /* To File : "JAI" */ /* To Library : "NERONI2" */ /* To Text : "Api interface. Src" */ /********* INIZIO ISTRUZIONI *******************************************/ /* LE SUCCESSIVE ISTRUZIONI PERMETTONO DI RICARICARE I SORGENTI. */ /* 1) DA UN VIDEO COMANDI DELL'AS400 RICEVENTE */ /* CREARE UN FILE SORGENTE DI LUNGHEZZA RECORD 112: */ /* CRTSRCPF FILE(NERONI2/STRINGHE) RCDLEN(112) */ /* 2) SPOSTARE IL FILE "JAI.txt" NELL'INDIRIZZARIO */ /* DI UN PC CONNESSO IN RETE CON L'AS400 RICEVENTE */ /* (AD ES.: "c:\"). */ /* 3) DAL VIDEO COMANDI DEL PC CHIAMARE FTP: */ /* ftp nomeas400 */ /* 4) DIGITARE UTENTE E PASSWORD. */ /* 5) ESEGUIRE IL COMANDO DI COPIA DA FILE PC A MEMBRO AS400: */ /* put "c:\JAI.txt" "/qsys.lib/NERONI2.lib/stringhe.file/JAI.mbr" */ /* 6) ABBANDONARE FTP: */ /* quit */ /* 7) DA UN VIDEO COMANDI DELL'AS400 RICEVENTE */ /* ESEGUIRE LA STRINGA COPIATA NEL MEMBRO SORGENTE: */ /* SBMDBJOB FILE(NERONI2/STRINGHE) MBR(JAI) JOBQ(QBATCH) */ /* LE SUCCESSIVE ISTRUZIONI PERMETTONO DI CREARE L'UTILITY. */ /* 8) DA UN VIDEO COMANDI DELL'AS400 RICEVENTE */ /* ESEGUIRE LA STRINGA O LE STRINGHE SORGENTE DI TIPO SEU "CL" */ /* (IL CUI NOME TERMINA SEMPRE CON ".") */ /* PRESENTI NEL FILE RICARICATO "NERONI2/JAI" */ /* FACENDO ATTENZIONE ALL'ORDINE DI ESECUZIONE INDICATO NEL */ /* MEMBRO FACOLTATIVO "A.LEGGIMI", AD ESEMPIO: */ /* SBMDBJOB FILE(NERONI2/JAI) MBR(JAI.) JOBQ(QBATCH) */ /********* FINE ISTRUZIONI *********************************************/ /* Crea la libreria. */ MKDIR DIR('/qsys.lib/NERONI2.lib') CHGLIB LIB(NERONI2) TEXT('Claudio Neroni Utility') /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP NERONI2 QGPL) /* Crea il file sorgente. */ DLTF FILE(NERONI2/JAI) CRTSRCPF FILE(NERONI2/JAI) RCDLEN(112) + TEXT('Api interface. Src') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAI.) TOFILE(NERONI2/JAI) + TOMBR(JAI.) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAI.) + SRCTYPE(CL) + TEXT('Api interface. CrtJs') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIQMHSNDM) TOFILE(NERONI2/JAI) + TOMBR(JAIQMHSNDM) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIQMHSNDM) + SRCTYPE(RPGLE) + TEXT('Send Nonprogram Message') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRDA) TOFILE(NERONI2/JAI) + TOMBR(JAIRDA) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRDA) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvDtaAra') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRDA2) TOFILE(NERONI2/JAI) + TOMBR(JAIRDA2) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRDA2) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvDtaAraNoErr') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRFD) TOFILE(NERONI2/JAI) + TOMBR(JAIRFD) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRFD) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvFileDesc&Size') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRFD_0) TOFILE(NERONI2/JAI) + TOMBR(JAIRFD_0) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRFD_0) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvFileDesc&Size ANTE NR MEMBRI') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRFD_1) TOFILE(NERONI2/JAI) + TOMBR(JAIRFD_1) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRFD_1) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvFileDesc&Size ANTE LVLCHK') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRFD§) TOFILE(NERONI2/JAI) + TOMBR(JAIRFD§) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRFD§) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvFileDesc&Size Sample Rpgle') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRJI) TOFILE(NERONI2/JAI) + TOMBR(JAIRJI) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRJI) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvCurJobInfo') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRJO) TOFILE(NERONI2/JAI) + TOMBR(JAIRJO) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRJO) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvOthJobInfo') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JAIRSFA) TOFILE(NERONI2/JAI) + TOMBR(JAIRSFA) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(JAIRSFA) + SRCTYPE(RPGLE) + TEXT('Api interface. RtvSplFAtt') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(QDBRTVFD) TOFILE(NERONI2/JAI) + TOMBR(QDBRTVFD) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(QDBRTVFD) + SRCTYPE(RPGLE) + TEXT('RETRIEVE FILE DESCRIPTION API V5R4 modificata') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(QDBRTVFD7A) TOFILE(NERONI2/JAI) + TOMBR(QDBRTVFD7A) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(QDBRTVFD7A) + SRCTYPE(RPGLE) + TEXT('RETRIEVE FILE DESCRIPTION API V7R1 modificato') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(QDBRTVFD71) TOFILE(NERONI2/JAI) + TOMBR(QDBRTVFD71) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(QDBRTVFD71) + SRCTYPE(RPGLE) + TEXT('RETRIEVE FILE DESCRIPTION API V7R1') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(QDBRTVFD72) TOFILE(NERONI2/JAI) + TOMBR(QDBRTVFD72) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JAI) MBR(QDBRTVFD72) + SRCTYPE(RPGLE) + TEXT('RETRIEVE FILE DESCRIPTION API V7R2') /*---------------------------------------------------------------------*/ //DATA FILE(JAI.) FILETYPE(*SRC) ENDCHAR('//ENDSRC') //BCHJOB JOB(JAI.) JOBD(NERONI2/NERONI2) OUTQ(QPRINTS) ENDSEV(60) + LOG(4 00 *SECLVL) MSGQ(*USRPRF) /* Claudio Neroni 12-12-2000 Creato. */ /* JAI */ /* Api interface. */ /* Prerequisiti: nessuno. */ /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP QGPL) ADDLIBLE LIB(NERONI2) POSITION(*AFTER QTEMP) /* Cancella gli oggetti preesistenti. */ DLTPGM PGM(NERONI2/JAIRDA) DLTPGM PGM(NERONI2/JAIRDA2) DLTPGM PGM(NERONI2/JAIRFD) DLTPGM PGM(NERONI2/JAIRJI) DLTPGM PGM(NERONI2/JAIRJO) DLTPGM PGM(NERONI2/JAIRSFA) /* Crea gli oggetti. */ CRTBNDRPG PGM(NERONI2/JAIRDA) SRCFILE(JAI) DBGVIEW(*ALL) + TGTRLS(*CURRENT) CRTBNDRPG PGM(NERONI2/JAIRDA2) SRCFILE(JAI) DBGVIEW(*ALL) + TGTRLS(*CURRENT) CRTBNDRPG PGM(NERONI2/JAIRFD) SRCFILE(JAI) DBGVIEW(*ALL) + TGTRLS(*CURRENT) CRTBNDRPG PGM(NERONI2/JAIRJI) SRCFILE(JAI) DBGVIEW(*ALL) + TGTRLS(*CURRENT) CRTBNDRPG PGM(NERONI2/JAIRJO) SRCFILE(JAI) DBGVIEW(*ALL) + TGTRLS(*CURRENT) CRTBNDRPG PGM(NERONI2/JAIRSFA) SRCFILE(JAI) DBGVIEW(*ALL) + TGTRLS(*CURRENT) //ENDBCHJOB //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIQMHSNDM) FILETYPE(*SRC) ENDCHAR('//ENDSRC') *--------------------------------------------------------------------- Dmsgid s 7 inz('CPF9897') Dmsgf s 20 inz('QCPFMSG *LIBL') Dmsgdta s 100 inz('Prova Api') Dmsgdtalen s 9b 0 inz(100) Dmsgtyp s 10 inz('*INFO') Dmsgq s 20 inz('QSYSOPR *LIBL') Dmsgqnbr s 9b 0 inz(1) Drpyq s 20 inz(*blank) Dmrk s 4 inz(*blank) *--------------------------------------------------------------------- * Error data structure. D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 *--------------------------------------------------------------------- C call 'QMHSNDM' C parm msgid C parm msgf C parm msgdta C parm msgdtalen C parm msgtyp C parm msgq C parm msgqnbr C parm rpyq C parm mrk C parm er C seton lr *--------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRDA) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvDtaAra * Claudio Neroni 20/11/2000 Creato. * Retrieve data area. D rv ds D rvava 1 4b 0 D rvret 5 8b 0 D rvtyp 9 18 D rvlib 19 28 D rvlen 29 32b 0 D rvdec 33 36b 0 D rvdta 37 2036 D len s 9b 0 D qua s 20 D str s 9b 0 D dal s 9b 0 D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 C *entry plist C parm ppara 10 I Dtaara C parm rvlib pplib 10 U Library C parm rvtyp pptyp 10 O Type C parm rvlen pplen 9 0 O Lenght C parm rvdec ppdec 9 0 O Decimal C parm rvdta ppdta 2000 O Data C eval qua=ppara+pplib C clear rv C clear er C z-add 0 erpro C call 'QWCRDTAA' C parm rv O ReceiverVar C parm 2036 len I ReceiverVarLen C parm qua I Qualified C parm -1 str I StartPos C parm 2000 dal I DataLen C parm er U ErrorDs C seton lr C return //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRDA2) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvDtaAraNoErr * Claudio Neroni 20/11/2000 Creato. * Retrieve data area. D rv ds D rvava 1 4b 0 D rvret 5 8b 0 D rvtyp 9 18 D rvlib 19 28 D rvlen 29 32b 0 D rvdec 33 36b 0 D rvdta 37 2036 D len s 9b 0 D qua s 20 D str s 9b 0 D dal s 9b 0 D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 C *entry plist C parm ppara 10 I Dtaara C parm pplib 10 U Library C parm pptyp 10 O Type C parm pplen 9 0 O Lenght C parm ppdec 9 0 O Decimal C parm ppdta 2000 O Data C eval qua=ppara+pplib C clear rv C clear er C z-add 0 erpro C call 'QWCRDTAA' 50 C parm rv O ReceiverVar C parm 2036 len I ReceiverVarLen C parm qua I Qualified C parm -1 str I StartPos C parm 2000 dal I DataLen C parm er U ErrorDs C if *in50 C eval pptyp = '*ERROR' C else C movel(p) rvlib pplib C movel(p) rvtyp pptyp C z-add rvlen pplen C z-add rvdec ppdec C movel(p) rvdta ppdta C endif C seton lr //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRFD) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvFileDesc&Size * Claudio Neroni 09-12-2008 Creato. * Retrieve file size. CN01 * Claudio Neroni 30-05-2014 Modificato. CN01 * Su alcuni campi il TIPO DATO non deve essere "B" ma "I". CN01 * Perciö ho modificato il membro del vecchio /COPY. CN02 * Claudio Neroni 05-12-2014 Modificato. CN02 * Ripensamenti su TIPO DATO. CN03 * Claudio Neroni 10-12-2015 Modificato. CN03 * Aggiunto parametro 10: Numero di membri attualmente nel file. CN04 * Claudio Neroni 03-03-2016 Modificato. CN04 * Aggiunto parametro 11: Level Identifier for Level Check. CN05 * Claudio Neroni 05-04-2016 Modificato. CN05 * Aggiunto parametro 12: File attribute. *--------------------------------------------------------------------------------------------- * Receiver variable. CN01 * Copia il membro QDBRTVFD del file JAI nella libreria NERONI2 invece CN01 * che il membro QDBRTVFD del file QRPGLESRC nella libreria QSYSINC. CN01 * Il membro barracopiato ora e' come l'originale CN01 * ma con alcune correzioni nei tipi dati. CN01 */COPY QSYSINC/QRPGLESRC,QDBRTVFD CN01 *CN02*/COPY NERONI2/JAI,QDBRTVFD CN02 */COPY NERONI2/JAI,QDBRTVFD7A V7R2 /COPY NERONI2/JAI,QDBRTVFD72 *--------------------------------------------------------------------------------------------- * Program status data structure. D PSDS SDS * Numero di parametri ricevuti. D PSDSNP *PARMS *--------------------------------------------------------------------------------------------- * Lunghezza della variabile ricevuta dall'api. D len s 9b 0 * File e libreria restituiti dall'api. D quo ds D quof 1 10 D quol 11 20 * Formato richiesto. D rqs s 8 * File e libreria ricevuti dall'api. D qui ds D quif 1 10 D quil 11 20 * Formato. D fmt s 10 * Overrive. D ovr s 1 * Sistema. D sys s 10 * Tipo formato. D typ s 10 * Dati di errore. D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 *--------------------------------------------------------------------------------------------- * Variabile restituita dall'api. D returned s 65535 *--------------------------------------------------------------------------------------------- * Scambia parametri. C *entry plist C parm quof ppfil 10 1 U File C parm quol pplib 10 2 U Library C parm ppmrl 5 0 3 O MaxRcdLen C parm ppnrf 4 0 4 O NbrOfRcdFmt C parm ppapt 2 5 O AccPathTyp C parm ppinl 10 0 6 O InlNbrOfRcds C parm ppinc 5 0 7 O IncNbrOfRcds C parm ppmax 5 0 8 O MaxNbrOfIncs C parm ppfty 5 9 O FileType CN03 C parm ppnrm 5 0 10 O NbrOfMbrs CN04 C parm pplvl 13 11 O LevelCheck CN05 C parm ppfat 3 12 O FileAttribute * Pulisce i parametri di ritorno. * Se ricevuto parametro, lo pulisce. C if psdsnp >= 3 C clear ppmrl C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 4 C clear ppnrf C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 5 C clear ppapt C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 6 C clear ppinl C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 7 C clear ppinc C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 8 C clear ppmax C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 9 C clear ppfty C endif CN03 * Se ricevuto parametro, lo pulisce. CN03 C if psdsnp >= 10 CN03 C clear ppnrm CN03 C endif CN04 * Se ricevuto parametro, lo pulisce. CN04 C if psdsnp >= 11 CN04 C clear pplvl CN04 C endif CN05 * Se ricevuto parametro, lo pulisce. CN05 C if psdsnp >= 12 CN05 C clear ppfat CN05 C endif * Trascrive file e libreria nei parametri api. C movel(p) ppfil quif C movel(p) pplib quil * Pulisce i dati di testata. C clear qdbq25 * Pulisce i dati del file fisico. C clear qdbq26 * Pulisce i dati di errore. C clear er * Esegue. C do * Chiama l'api di recupero informazioni sul file. C call 'QDBRTVFD' 50 C parm returned O ReceiverVar C parm 65535 len I ReceiverVarLen C parm quo O QualifiedOut C parm 'FILD0100' rqs I RequestFormat C parm qui I QualifiedInp C parm *blank fmt I Format C parm *off ovr I OverrideProc C parm '*FILETYPE' sys I System C parm '*EXT' typ I FormatType C parm er U ErrorDs * Se errore, abbandona C 50 leave * TESTARE ERRORI * ... * Restituisce file e libreria. C movel(p) quof ppfil C movel(p) quol pplib * Se deve restituire parametro, estrae dati di testata. C if psdsnp >= 3 C movel(p) returned qdbq25 C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 3 C z-add qdbfmxrl ppmrl C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 4 C z-add qdbmtnum ppnrf C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 5 C movel(p) qdbfpact ppapt C endif * Se deve restituire parametro, estrae dati. C if psdsnp >= 6 * Se corre fisico, estrae dati del fisico. C if qdbpfof <> *zero C eval qdbq26=%subst(returned:qdbpfof+1) C endif * Se deve restituire parametro, estrae dati. C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 6 C z-add QDBPRNUM ppinl C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 7 C z-add QDBFPRI ppinc C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 8 C z-add QDBRINUM ppmax C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 9 C eval ATTRIBUTEBYTE1=%subst(returned:9:1) C TESTB '4' ATTRIBUTEBYTE1 1 99 C 99 eval ppfty = '*SRC' C n99 eval ppfty = '*DATA' C endif CN05 * Se ricevuto parametro, lo restituisce. CN05 C if psdsnp >= 12 CN05 C** eval ATTRIBUTEBYTE1=%subst(returned:9:1) CN05 C TESTB '2' ATTRIBUTEBYTE1 1 99 CN05 C 99 eval ppfat = '*LF' CN05 C n99 eval ppfat = '*PF' CN05 C endif CN03 * Se ricevuto parametro, lo restituisce. CN03 C if psdsnp >= 10 CN03 C z-add QDBHMNUM ppnrm CN03 C endif * Esegue. C enddo CN04 * Esegue se non corre gia' errore. CN04 C n50 do CN04 * Se parametro non richiesto, abbandona. CN04 C if psdsnp < 11 CN04 C leave CN04 C endif CN04 * Chiama l'api di recupero informazioni sul file. CN04 C call 'QDBRTVFD' 50 CN04 C parm returned O ReceiverVar CN04 C parm 65535 len I ReceiverVarLen CN04 C parm quo O QualifiedOut CN04 C parm 'FILD0200' rqs I RequestFormat CN04 C parm qui I QualifiedInp CN04 C parm '*FIRST' fmt I Format CN04 C parm *off ovr I OverrideProc CN04 C parm '*FILETYPE' sys I System CN04 C parm '*EXT' typ I FormatType CN04 C parm er U ErrorDs CN04 * Se errore, abbandona CN04 C 50 leave CN04 * TESTARE ERRORI CN04 * ... CN04 * Estrae dati. CN04 C movel(p) returned qdbq41 CN04 * Restituisce parametro. CN04 C movel(p) QDBDFSEQ pplvl CN04 * Esegue se non corre gia' errore. CN04 C enddo * Prenota chiusura. C seton lr * Ritorna. C return *--------------------------------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRFD_0) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvFileDesc&Size * Claudio Neroni 09-12-2008 Creato. * Retrieve file size. CN01 * Claudio Neroni 30-05-2014 Modificato. CN01 * Su alcuni campi il TIPO DATO non deve essere "B" ma "I". CN01 * Perciö ho modificato il membro del vecchio /COPY. *--------------------------------------------------------------------------------------------- * Receiver variable. CN01 * Copia il membro QDBRTVFD del file JAI nella libreria NERONI2 invece CN01 * che il membro QDBRTVFD del file QRPGLESRC nella libreria QSYSINC. CN01 * Il membro barracopiato ora ü come l'originale CN01 * ma con alcune correzioni nei tipi dati. CN01 */COPY QSYSINC/QRPGLESRC,QDBRTVFD CN01 *****/COPY NERONI2/JAI,QDBRTVFD CN02 /COPY NERONI2/JAI,QDBRTVFD7A *--------------------------------------------------------------------------------------------- * Program status data structure. D PSDS SDS * Numero di parametri ricevuti. D PSDSNP *PARMS *--------------------------------------------------------------------------------------------- * Lunghezza della variabile ricevuta dall'api. D len s 9b 0 * File e libreria restituiti dall'api. D quo ds D quof 1 10 D quol 11 20 * Formato richiesto. D rqs s 8 * File e libreria ricevuti dall'api. D qui ds D quif 1 10 D quil 11 20 * Formato. D fmt s 10 * Overrive. D ovr s 1 * Sistema. D sys s 10 * Tipo formato. D typ s 10 * Dati di errore. D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 *--------------------------------------------------------------------------------------------- * Variabile restituita dall'api. D returned s 65535 *--------------------------------------------------------------------------------------------- * Scambia parametri. C *entry plist C parm quof ppfil 10 U File C parm quol pplib 10 U Library C parm ppmrl 5 0 O MaxRcdLen C parm ppnrf 4 0 O NbrOfRcdFmt C parm ppapt 2 O AccPathTyp C parm ppinl 10 0 O InlNbrOfRcds C parm ppinc 5 0 O IncNbrOfRcds C parm ppmax 5 0 O MaxNbrOfIncs C parm ppfty 5 O FileType * Pulisce i parametri di ritorno. * Se ricevuto parametro, lo pulisce. C if psdsnp >= 3 C clear ppmrl C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 4 C clear ppnrf C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 5 C clear ppapt C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 6 C clear ppinl C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 7 C clear ppinc C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 8 C clear ppmax C endif * Trascrive file e libreria nei parametri api. C movel(p) ppfil quif C movel(p) pplib quil * Pulisce i dati di testata. C clear qdbq25 * Pulisce i dati del file fisico. C clear qdbq26 * Pulisce i dati di errore. C clear er * Esegue. C do * Chiama l'api di rwcupero informazioni sul file. C call 'QDBRTVFD' 50 C parm returned O ReceiverVar C parm 65535 len I ReceiverVarLen C parm quo O QualifiedOut C parm 'FILD0100' rqs I RequestFormat C parm qui I QualifiedInp C parm *blank fmt I Format C parm *off ovr I OverrideProc C parm '*FILETYPE' sys I System C parm '*EXT' typ I FormatType C parm er U ErrorDs * Se errore, abbandona C 50 leave * TESTARE ERRORI * ... * Restituisce file e libreria. C movel(p) quof ppfil C movel(p) quol pplib * Se deve restituire parametro, estrae dati di testata. C if psdsnp >= 3 C movel(p) returned qdbq25 C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 3 C z-add qdbfmxrl ppmrl C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 4 C z-add qdbmtnum ppnrf C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 5 C movel(p) qdbfpact ppapt C endif * Se deve restituire parametro, estrae dati. C if psdsnp >= 6 * Se corre fisico, estrae dati del fisico. C if qdbpfof <> *zero C eval qdbq26=%subst(returned:qdbpfof+1) C endif * Se deve restituire parametro, estrae dati. C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 6 C z-add QDBPRNUM ppinl C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 7 C z-add QDBFPRI ppinc C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 8 C z-add QDBRINUM ppmax C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 9 C eval ATTRIBUTEBYTE1=%subst(returned:9:1) C TESTB '4' ATTRIBUTEBYTE1 1 99 C 99 eval ppfty = '*SRC' C n99 eval ppfty = '*DATA' C endif * Esegue. C enddo * Prenota chiusura. C seton lr * Ritorna. C return *--------------------------------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRFD_1) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvFileDesc&Size * Claudio Neroni 09-12-2008 Creato. * Retrieve file size. CN01 * Claudio Neroni 30-05-2014 Modificato. CN01 * Su alcuni campi il TIPO DATO non deve essere "B" ma "I". CN01 * Perciö ho modificato il membro del vecchio /COPY. CN02 * Claudio Neroni 05-12-2014 Modificato. CN02 * Ripensamenti su TIPO DATO. CN03 * Claudio Neroni 10-12-2015 Modificato. CN03 * Aggiunto parametro 10: Numero di membri attualmente nel file. *--------------------------------------------------------------------------------------------- * Receiver variable. CN01 * Copia il membro QDBRTVFD del file JAI nella libreria NERONI2 invece CN01 * che il membro QDBRTVFD del file QRPGLESRC nella libreria QSYSINC. CN01 * Il membro barracopiato ora ü come l'originale CN01 * ma con alcune correzioni nei tipi dati. CN01 */COPY QSYSINC/QRPGLESRC,QDBRTVFD CN01 *CN02*/COPY NERONI2/JAI,QDBRTVFD CN02 /COPY NERONI2/JAI,QDBRTVFD7A *--------------------------------------------------------------------------------------------- * Program status data structure. D PSDS SDS * Numero di parametri ricevuti. D PSDSNP *PARMS *--------------------------------------------------------------------------------------------- * Lunghezza della variabile ricevuta dall'api. D len s 9b 0 * File e libreria restituiti dall'api. D quo ds D quof 1 10 D quol 11 20 * Formato richiesto. D rqs s 8 * File e libreria ricevuti dall'api. D qui ds D quif 1 10 D quil 11 20 * Formato. D fmt s 10 * Overrive. D ovr s 1 * Sistema. D sys s 10 * Tipo formato. D typ s 10 * Dati di errore. D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 *--------------------------------------------------------------------------------------------- * Variabile restituita dall'api. D returned s 65535 *--------------------------------------------------------------------------------------------- * Scambia parametri. C *entry plist C parm quof ppfil 10 1 U File C parm quol pplib 10 2 U Library C parm ppmrl 5 0 3 O MaxRcdLen C parm ppnrf 4 0 4 O NbrOfRcdFmt C parm ppapt 2 5 O AccPathTyp C parm ppinl 10 0 6 O InlNbrOfRcds C parm ppinc 5 0 7 O IncNbrOfRcds C parm ppmax 5 0 8 O MaxNbrOfIncs C parm ppfty 5 9 O FileType CN03 C parm ppnrm 5 0 10 O NbrOfMbrs * Pulisce i parametri di ritorno. * Se ricevuto parametro, lo pulisce. C if psdsnp >= 3 C clear ppmrl C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 4 C clear ppnrf C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 5 C clear ppapt C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 6 C clear ppinl C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 7 C clear ppinc C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 8 C clear ppmax C endif * Se ricevuto parametro, lo pulisce. C if psdsnp >= 9 C clear ppfty C endif CN03 * Se ricevuto parametro, lo pulisce. CN03 C if psdsnp >= 10 CN03 C clear ppnrm CN03 C endif * Trascrive file e libreria nei parametri api. C movel(p) ppfil quif C movel(p) pplib quil * Pulisce i dati di testata. C clear qdbq25 * Pulisce i dati del file fisico. C clear qdbq26 * Pulisce i dati di errore. C clear er * Esegue. C do * Chiama l'api di rwcupero informazioni sul file. C call 'QDBRTVFD' 50 C parm returned O ReceiverVar C parm 65535 len I ReceiverVarLen C parm quo O QualifiedOut C parm 'FILD0100' rqs I RequestFormat C parm qui I QualifiedInp C parm *blank fmt I Format C parm *off ovr I OverrideProc C parm '*FILETYPE' sys I System C parm '*EXT' typ I FormatType C parm er U ErrorDs * Se errore, abbandona C 50 leave * TESTARE ERRORI * ... * Restituisce file e libreria. C movel(p) quof ppfil C movel(p) quol pplib * Se deve restituire parametro, estrae dati di testata. C if psdsnp >= 3 C movel(p) returned qdbq25 C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 3 C z-add qdbfmxrl ppmrl C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 4 C z-add qdbmtnum ppnrf C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 5 C movel(p) qdbfpact ppapt C endif * Se deve restituire parametro, estrae dati. C if psdsnp >= 6 * Se corre fisico, estrae dati del fisico. C if qdbpfof <> *zero C eval qdbq26=%subst(returned:qdbpfof+1) C endif * Se deve restituire parametro, estrae dati. C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 6 C z-add QDBPRNUM ppinl C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 7 C z-add QDBFPRI ppinc C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 8 C z-add QDBRINUM ppmax C endif * Se ricevuto parametro, lo restituisce. C if psdsnp >= 9 C eval ATTRIBUTEBYTE1=%subst(returned:9:1) C TESTB '4' ATTRIBUTEBYTE1 1 99 C 99 eval ppfty = '*SRC' C n99 eval ppfty = '*DATA' C endif CN03 * Se ricevuto parametro, lo restituisce. CN03 C if psdsnp >= 10 CN03 C z-add QDBHMNUM ppnrm CN03 C endif * Esegue. C enddo * Prenota chiusura. C seton lr * Ritorna. C return *--------------------------------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRFD§) FILETYPE(*SRC) ENDCHAR('//ENDSRC') *--------------------------------------------------------------------------------------------- * Chiama Api interface for RtvFileDesc&Size * Buttare i parametri oltre l'ultimo che ü necessario recuperare. * La libreria cercata puö essere *LIBL e restituisce libreria effettiva. C call 'JAIRFD' C parm 'FILE' ppfil 10 U File C parm 'LIBRARY' pplib 10 U Library C parm ppmrl 5 0 O MaxRcdLen C parm ppnrf 4 0 O NbrOfRcdFmt C parm ppapt 2 O AccPathTyp C parm ppinl 10 0 O InlNbrOfRcds C parm ppinc 5 0 O IncNbrOfRcds C parm ppmax 5 0 O MaxNbrOfIncs *--------------------------------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRJI) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvCurJobInfo * Claudio Neroni 26/11/2000 Creato. * Retrieve current job information. *--------------------------------------------------------------------- * Receiver variable. * Copiata, parzializzata e aggiustata dal membro QUSRJOBI * del file QRPGLESRC nella libreria QSYSINC del release V3R2M0. ****************************************************************** *Record structure for QUSRJOBI JOBI0500 format ****************************************************************** DQUSI0500 DS * Qwc JOBI0500 D QUSBR04 1 4B 0 * Bytes Return D QUSBA04 5 8B 0 * Bytes Avail D QUSJN07 9 18 * Job Name D QUSUN06 19 28 * User Name D QUSJNBR06 29 34 * Job Number D QUSIJID04 35 50 * Int Job ID D QUSJS12 51 60 * Job Status D QUSJT07 61 61 * Job Type D QUSJS13 62 62 * Job Subtype D QUSERVED30 63 64 * Reserved D QUSES 65 68B 0 * End Severity D QUSLS 69 72B 0 * Log Severity D QUSLL 73 73 * Log Level D QUSLT 74 83 * Log Text *--------------------------------------------------------------------- * Receiver variable length. D len s 9b 0 * Request format. D rqs s 8 * Qualified job name. D job s 26 * Internal job identifier. D int s 16 *--------------------------------------------------------------------- * Error data structure. D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 *--------------------------------------------------------------------- * Scambia parametri. C *entry plist * Restituisce Job name. C parm qusjn07 ppjob 10 O JobName * Restituisce End severity. C parm quses ppsev 9 0 O EndSeverity * Chiama api. C clear qusi0500 C clear er C z-add 0 erpro C call 'QUSRJOBI' C parm qusi0500 O ReceiverVar C parm 83 len I ReceiverVarLen C parm 'JOBI0500' rqs I RequestFormat C parm '*' job I QualifiedInp C parm *blank int I Format C parm er U ErrorDs * Predispone chiusura. C seton lr * Ritorna. C return *--------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRJO) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvOthJobInfo * Claudio Neroni 08/03/2001 Creato. * Retrieve other job information. *--------------------------------------------------------------------- * Receiver variable. * Copiata, parzializzata e aggiustata dal membro QUSRJOBI * del file QRPGLESRC nella libreria QSYSINC del release V3R2M0. ****************************************************************** *Record structure for QUSRJOBI JOBI0500 format ****************************************************************** DQUSI0500 DS * Qwc JOBI0500 D QUSBR04 1 4B 0 * Bytes Return D QUSBA04 5 8B 0 * Bytes Avail D QUSJN07 9 18 * Job Name D QUSUN06 19 28 * User Name D QUSJNBR06 29 34 * Job Number D QUSIJID04 35 50 * Int Job ID D QUSJS12 51 60 * Job Status D QUSJT07 61 61 * Job Type D QUSJS13 62 62 * Job Subtype D QUSERVED30 63 64 * Reserved D QUSES 65 68B 0 * End Severity D QUSLS 69 72B 0 * Log Severity D QUSLL 73 73 * Log Level D QUSLT 74 83 * Log Text *--------------------------------------------------------------------- * Receiver variable length. D len s 9b 0 * Request format. D rqs s 8 * Qualified job name. D job s 26 * Internal job identifier. D int s 16 *--------------------------------------------------------------------- * Error data structure. D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 *--------------------------------------------------------------------- * Scambia parametri. C *entry plist * Riceve Job name. C parm ppjob 10 O JobName * Riceve Job user. C parm ppusr 10 O JobUser * Riceve Job number. C parm ppnbr 6 O JobNumber * Restituisce Job type. * blank = Invalid * A = Autostart * B = Batch * I = Interactive * M = Subsystem monitor * R = Spooled reader * S = System * W = Spooled writer * X = SCPF system C parm qusjt07 pptyp 1 O JobType * Restituisce Job status. * *ACTIVE = Active * *JOBQ = On job queue * *OUTQ = Only on output queue C parm qusjs12 ppsts 10 O JobStatus *--------------------------------------------------------------------- * Chiama api. C clear qusi0500 C clear er C z-add 0 erpro C eval job=ppjob+ppusr+ppnbr C call 'QUSRJOBI' C parm qusi0500 O ReceiverVar C parm 83 len I ReceiverVarLen C parm 'JOBI0500' rqs I RequestFormat C parm job I QualifiedInp C parm *blank int I Format C parm er U ErrorDs * Ritorna senza chiudere. C return *--------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JAIRSFA) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /TITLE Api interface. RtvSplFAtt * Claudio Neroni 29/08/2008 Creato. * Retrieve Spool File Attribute. *--------------------------------------------------------------------- * Receiver variable. * Copiata, parzializzata e aggiustata dal membro QUSRSPLA * del file QRPGLESRC nella libreria QSYSINC del release V5R4M0. D**************************************************************** D*Structure for SPLA0100 format D**** D*NOTE: The following type definition only defines the fixed D* portion of the format. Any varying length fields must D* be defined by the user. D**************************************************************** DQUSA010001 DS D* Qus SPLA0100 D QUSBR07 1 4B 0 D* Bytes Return D QUSBA07 5 8B 0 D* Bytes Avail D QUSIJID08 9 24 D* Int Job ID D QUSISID00 25 40 D* Int Splf ID D QUSJN10 41 50 D* Job Name D QUSUN12 51 60 D* Usr Name D QUSJNBR09 61 66 D* Job Number D QUSSN01 67 76 D* Splf Name D QUSSNBR 77 80B 0 D* Splf Number D QUSFT02 81 90 D* Form Type D QUSUD01 91 100 D* Usr Data D QUSTATUS04 101 110 D* Status D QUSFILA03 111 120 D* File Avail D QUSHFIL 121 130 D* Hold File D QUSSFIL03 131 140 D* Save File D QUSTP 141 144B 0 D* Total Pages D QUSCP 145 148B 0 D* Curr Page D QUSSP 149 152B 0 D* Start Page D QUSEP 153 156B 0 D* End Page D QUSLPP 157 160B 0 D* Last Page Print D QUSRP02 161 164B 0 D* Rest Page D QUSTC 165 168B 0 D* Total Copies D QUSCR 169 172B 0 D* Copies Rem D QUSLPI 173 176B 0 D* Lines Per Inch D QUSCPI 177 180B 0 D* Char Per Inch D QUSOP01 181 182 D* Output Priority D QUSON00 183 192 D* Outq Name D QUSOL00 193 202 D* Outq Lib D QUSDFILO 203 209 D* Date File Open D QUSTFILO 210 215 D* Time File Open D QUSDFILN02 216 225 D* Dev File Name D QUSDFILL02 226 235 D* Dev File Lib D QUSPN 236 245 D* Pgm Name D QUSPL00 246 255 D* Pgm Lib D QUSCC 256 270 D* Count Code D QUSPT00 271 300 D* Print Text D QUSRL05 301 304B 0 D* Record Length D QUSMR 305 308B 0 D* Max Records D QUSDT00 309 318 D* Dev Type D QUSPDT 319 328 D* Ptr Dev Type D QUSDN00 329 340 D* Doc Name D QUSFN17 341 404 D* Folder Name D QUSS36PN 405 412 D* S36 Proc Name D QUSPF 413 422 D* Print Fidel D QUSRU 423 423 D* Repl Unprint D QUSRC00 424 424 D* Repl Char D QUSPL01 425 428B 0 D* Page Length D QUSPW 429 432B 0 D* Page Width D QUSNBRS01 433 436B 0 D* Number Separate D QUSOLN 437 440B 0 D* Overflow Line Nm D QUSDBCSD 441 450 D* DBCS Data D QUSBCSEC 451 460 D* DBCS Ext Chars D QUSSSOSI 461 470 D* DBCS SOSI D QUSBCSCR 471 480 D* DBCS Char Rotate D QUSDBCSC00 481 484B 0 D* DBCS Cpi D QUSGCS 485 494 D* Grph Char Set D QUSCP00 495 504 D* Code Page D QUSFDN 505 514 D* Form Def Name D QUSFDL 515 524 D* Form Def Lib D QUSSD06 525 528B 0 D* Source Drawer D QUSPF00 529 538 D* Print Font D QUS36SID 539 544 D* S36 Spl ID D QUSPR 545 548B 0 D* Page Rotate D QUSATION 549 552B 0 D* Justification D QUSUPLEX 553 562 D* Duplex D QUSFOLD 563 572 D* Fold D QUSCC00 573 582 D* Ctrl Char D QUSAF 583 592 D* Align Forms D QUSPQ 593 602 D* Print Quality D QUSFF 603 612 D* Form Feed D QUSDV 613 683 D* Disk Volume D QUSDL00 684 700 D* Disk Label D QUSET 701 710 D* Exch Type D QUSCC01 711 720 D* Char Code D QUSNDR 721 724B 0 D* Nmbr Disk Rcrds D QUSLTIUP 725 728B 0 D* Multiup D QUSFON 729 738 D* Frnt Ovrly Name D QUSFOLN 739 748 D* Frnt Ovrly Lib Name D QUSFOOD 749 756P 5 D* Frnt Ovrly Off Dn D QUSFOOA 757 764P 5 D* Frnt Ovrly Off Across D QUSBON 765 774 D* Bck Ovrly Name D QUSBOLN 775 784 D* Bck Ovrly Lib Name D QUSBOOD 785 792P 5 D* Bck Ovrly Off Dn D QUSBOOA 793 800P 5 D* Bck Ovrly Off Across D QUSUM 801 810 D* Unit Measure D QUSPD03 811 820 D* Page Definition D QUSPDL 821 830 D* Page Definition Lib D QUSLS00 831 840 D* Line Spacing D QUSPS 841 848P 5 D* Point Size D QUSFMOD 849 856P 5 D* Frnt Margin Off Dn D QUSFMOA 857 864P 5 D* Frnt Margin Off Acr D QUSBMOD 865 872P 5 D* Back Margin Off Dn D QUSBMOA 873 880P 5 D* Back Margin Off Acr D QUSLOP 881 888P 5 D* Length Of Page D QUSWOP 889 896P 5 D* Width Of Page D QUSMM 897 906 D* Measure Method D QUSAR00 907 907 D* Afp Resource D QUSFCS 908 917 D* Font Char Set D QUSFCSL 918 927 D* Font Char Set Lib D QUSCPN 928 937 D* Code Page Name D QUSCPL 938 947 D* Code Page Lib D QUSCFN 948 957 D* Coded Font Name D QUSCFL 958 967 D* Coded Font Lib D QUSCSCFN 968 977 D* DBCS Coded Font Name D QUSCSCFL 978 987 D* DBCS Coded Font Lib D QUSUDFIL 988 997 D* User Defined File D QUSRO 998 1007 D* Reduce Output D QUSCBO 1008 1008 D* Constant Back Overlay D QUSOB 1009 1012B 0 D* Output Bin D QUSCCSID08 1013 1016B 0 D* CCSID D QUSUT 1017 1116 D* User Text D QUSOS03 1117 1124 D* Original System D QUSONID 1125 1132 D* Original Net ID D QUSSC 1133 1142 D* Splf Creator D QUSRSV502 1143 1144 D* Reserved5 D QUSUDOO00 1145 1148B 0 D* Usr Def Options Offset D QUSUDON 1149 1152B 0 D* Usr Def Options Number D QUSUDOEL 1153 1156B 0 D* Usr Def Options Entry Length D QUSUDD 1157 1411 D* Usr Defined Data D QUSUDON00 1412 1421 D* Usr Def Object Name D QUSUDOL 1422 1431 D* Usr Def Object Lib D QUSUDOT01 1432 1441 D* Usr Def Object Type D QUSRSV600 1442 1444 D* Reserved6 D QUSCSPS 1445 1452P 5 D* Character Set Point Size D QUSCFPS 1453 1460P 5 D* Coded Font Point Size D QUSSCFPS 1461 1468P 5 D* DBCS Coded Font Point Size D QUSSFASP 1469 1472B 0 D* Spooled File ASP D QUSSFILS 1473 1476B 0 D* Spooled File Size D QUSSSM02 1477 1480B 0 D* Splf Size Multiplier D QUSIPPJI 1481 1484B 0 D* IPP JobId D QUSSCSM 1485 1485 D* Splf Crt Security Method D QUSSAM 1486 1486 D* Splf Authentication Method D QUSWBPD 1487 1493 D* Wtr Begin Process Date D QUSWBPT 1494 1499 D* Wtr Begin Process Time D QUSWCPD 1500 1506 D* Wtr Complete Proc Date D QUSWCPT 1507 1512 D* Wtr Complete Proc Time D QUSJSN00 1513 1520 D* Job System Name D QUSASPDN06 1521 1530 D* Splf ASP Device Name D QUSSED 1531 1537 D* Splf Expiration Date D*QUSOD 40 DIM(00001) D* QUSUDOO01 10 OVERLAY(QUSOD:00001) D* QUSUDOT02 10 OVERLAY(QUSOD:00011) D* QUSUDOT03 10 OVERLAY(QUSOD:00021) D* QUSUDOF00 10 OVERLAY(QUSOD:00031) D* D* Varying length D**************************************************************** *--------------------------------------------------------------------- * PARAMETRI PER CHIAMATA API D len s 9b 0 * Length of receiver variable D rqs s 8 * Format name D job ds * Qualified job name (name, user, number) D jobnam 1 10 * Name D jobusr 11 20 * User D jobnbr 21 26 * Number D iji s 16 * Internal job identifier D isi s 16 * Internal spooled file identifier D spl s 10 * Spooled file name D nbr s 9b 0 * Spooled file number *--------------------------------------------------------------------- * ERRORI DI RITORNO DA API D er ds D erpro 1 4b 0 D erava 5 8b 0 D erexc 9 15 D erres 16 16 D erdta 17 116 *--------------------------------------------------------------------- * Scambia parametri. C *entry plist C parm ppjobnam 10 I JobName C parm ppjobusr 10 I JobUser C parm ppjobnbr 6 I JobNumber C parm ppspl 10 I SpoolFileName C parm ppnbr 6 0 I SpoolFileNumber C parm QUSPW pppagwid 9 0 O SpoolPageWidth * Riunisce il nome job qualificato. C movel(p) ppjobnam jobnam C movel(p) ppjobusr jobusr C movel(p) ppjobnbr jobnbr * Inizializza i dati di ritorno. C clear QUSA010001 * Inizializza gli errori di ritorno. C clear er C z-add 0 erpro *--------------------------------------------------------------------- * Call Retrieve Spooled File Attributes (QUSRSPLA) API C call 'QUSRSPLA' 50 C parm QUSA010001 O ReceiverVar C parm 1537 len I ReceiverVarLen C parm 'SPLA0100' rqs I RequestFormat C parm job I JobName C parm *blank iji I InternalJobId C parm *blank isi I InternalSplfId C parm ppspl spl I SpoolFileName C parm ppnbr nbr I SpoolFileNumber C parm er U ErrorDs *--------------------------------------------------------------------- * Predispone chiusura. C seton lr * Ritorna. C return *--------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(QDBRTVFD) FILETYPE(*SRC) ENDCHAR('//ENDSRC') CN01 * Claudio Neroni 30-05-2014 Modificato. CN01 * L'originale ü preso dal membro QDBRTVFD CN01 * del file QRPGLESRC nella libreria QSYSINC del release V5R4M0. CN01 * Su alcuni campi il TIPO DATO non deve essere "B" ma "I". CN01 *--------------------------------------------------------------------------------------------- D*begin_generated_IBM_copyright_prolog D*This is an automatically generated copyright prolog. D*After initializing, DO NOT MODIFY OR MOVE D*----------------------------------------------------------------- D* D*Product(s): D*5722-SS1 D* D*(C)Copyright IBM Corp. 1994, 2007 D* D*All rights reserved. D*US Government Users Restricted Rights - D*Use, duplication or disclosure restricted D*by GSA ADP Schedule Contract with IBM Corp. D* D*Licensed Materials-Property of IBM D* D*--------------------------------------------------------------- D* D*end_generated_IBM_copyright_prolog D*** START HEADER FILE SPECIFICATIONS **************************** D* D*Header File Name: H/QDBRTVFD.h D* D*Descriptive Name: Retrieve file description API. D* D*Description: The Retrieve File Description (QDBRTVFD) API D* allows the user to get complete and specific D* information about a file on a local or remote D* system. D* D*Header Files Included: None D* D*Macros List: None D* D*Structure List: Qdb_Rfd_Input_Parms_t D* Qdb_Qdbfh_t D* Qdb_Qdbfphys_t D* Qdb_Qdbftrg_t D* Qdb_Qdbf_Constraint_t D* Qdb_Qdbf_Keyn_t D* Qdb_Qdbf_Riafk_Afkd_t D* Qdb_Qdbf_Chk_Cst_t D* Qdb_Qdbfdtalnk_t D* Qdb_Qdbfdlcole_t D* Qdb_Qdbfdrae_t D* Qdb_Qdbfdrtb_t D* Qdb_Qdbflogl_t D* Qdb_Qdbfv_t D* Qdb_Qdbfj_t D* Qdb_Qdbfjfld_t D* Qdb_Qdbfjdup_t D* Qdb_Qdbfacs_t D* Qdb_Qdbfdic_t D* Qdb_Qdbflngn_t D* Qdb_Qdbfb_t D* Qdb_Qdbfss_t D* Qdb_Qdbfsp_t D* Qdb_Qdbfk_t D* Qdb_Qdbf_dis_t D* Qdb_Qdbfjoal_t D* Qdb_Qddfmt_t D* Qdb_Qddffld_t D* Qdb_Qddfrefi_t D* Qdb_Qddfedcw_t D* Qdb_Qddfdfne_t D* Qdb_Qddfcolh_t D* Qdb_Qddfvchk_t D* Qdb_Qddfvcst_t D* Qdb_Qddfvcpr_t D* Qdb_Qddfcpli_t D* Qdb_Qddfftxt_t D* Qdb_Qddfalis_t D* Qdb_Qddfdft_t D* Qdb_Qddfdicf_t D* Qdb_Qddfdvof_t D* Qdb_Qddfdvoc_t D* Qdb_Qddfdvo_t D* Qdb_Qddfderv_t D* Qdb_Qddfdvst_t D* Qdb_Qddfdvtx_t D* Qdb_Qddfxl_t D* Qdb_qddfcsl_t D* Qdb_Qddfdic_t D* Qdb_Qdbwhrec_t D* Qdb_Qdbwh_t D* Qdb_Qdbwhkattr_t D* Qdb_Qdbwhkatt1_t D* Qdb_Qdbwhkey_t D* Qdb_Qbftrg_Head D* Qdb_Qdbftrg_Def_Head D* Qdb_Qdbftrg_Name_Area D* Qdb_Qdbftrg_Path_Area D* Qdb_Qdbftrg_Updc_Area D* Qdb_Qdbftrg_Updc_List_Ent D* Qdb_Qdbftrg_When_Area D* Qdb_Qdbftrg_When_Array D* Qdb_Qdbftrg_Body_Area D* Qdb_Qdbftrg_Body_Array D* Qdb_Qdbftrg_Depo_Area D* Qdb_Qdbftrg_Depo_Array D* Qdb_Qdbftrg_Trns_Area D* Qdb_Qdbftrg_Stmt_Area D* Qdb_Qdbftrg_Long_Area D* Qdb_Qdbfmqtd_Head D* Qdb_Qdbfmqtd D* Qdb_Qdbfvflgs D* Qdb_Qdbfsqpt_Head D* Qdb_Qdbfsqpt_Part D* Qdb_Qdbfsqpt_Range D* Qdb_Qdbfsqpt_Head_Hash D* Qdb_Qdbfsqpt_Hash D* D*Function Prototype List: QDBRTVFD D* D*Change Activity: D* D*CFD List: D* D*FLAG REASON LEVEL DATE DEPT/PGMR CHANGE DESCRIPTION D*---- ------------ ----- ------ --------- ---------------------- D*$A0= D2862000 3D10 940102 45H R P: New Include D*$01= PTH01678 3P10 940818 45H JRA: Correct ALWNULL flag D* definition. D*$A2= D9196200 3D60 941104 45H JRA: Large Access Path D* support. D*$A3= D2871000 3D60 941104 45H JRA: UCS-2 support. D*$02= P3979527 3P10 950119 45H JRA: Correct field text D* definition. D*$03= PSA42574 3P10 950411 45H JRA: Correct ACST/SST D* definition and D* separate Record ID D* Code array. D*$04= P 3D60 950630 45H PSN: Add Default for Date, D* Time, Timestamp of D* CURRENT_xxxx D*$A4= D9410100 3D70 950713 45H KRB: Distributed File D* support. D*$05= P3617238 3D70 960430 45H KRS: Add missing operands D* to derived operator D* comments. D*$06= P3629488 4D10 960930 45H KLW: Add missing comments D* for concatenated D* fields and number of D* digits. D*$A5= D28540 4D20 970127 45H randy: Add Check Constraint D* support D*$A6= D9495801 4D20 970215 45H KRS: UCS-2 sort sequence D*$07= P3640846 4D20 970227 45H KRS: Fix comment. D*$08= P3651248 4D20 970729 RAMLER : Add v4r2 QQ support D* CAST, CASE D*$09= P3652103 4D20 970811 45H KRS: Add "Allow Repeated D* Change" flag to D* trigger section. D*$A7= d9491500 4D30 971215 45H DMK: Add EVI support. D*$A8= P3663202 4D30 980302 SBURRICH: Add comment for V4R3 D* QQ FLOOR support. D*$A9= D9586707 4D40 980713 45H KRS: Add THDSAFE and D* MLTTHDACN support. D*$AA= D9703200 4D40 980713 45H MWT: Complex Objects. D*$AB= P3684590 4D40 981117 45H KRS: Add Qddfsqfd. D*$AC= P3684760 4D40 981209 Bestgen: UDF support. D*$AD= D9759300 5D10 990801 45H RKS: Triggers D*$AE= P9934931 5D10 001010 45H RKS: Teraspace State II D*$AF= P9938576 5D10 001129 45H RKS: Fix comment D*$AG= D9844202 5D20 010530 45H RKS: Identity Columns D*$AH= D9899500 5D20 010625 VPZ MJA: Longer alias names D*$AI= D9913201 5D30 020613 45H KRS: SQL materialized query D* tables. D*$AJ= D9923300 5D30 021010 45H MWT: SQL Partitioned Table D*$AK= D9922600 5D30 030107 45H RLN: Binary Character D* support. D*$AL= D9924906 5D30 030226 45H KRS: UTF8. D*$0A= P9A32647 5D30 030616 45H KRS: Return Qddfflgs in D* field header. D*$0B= P9A35914 5D30 030729 45H KRS: Fix values for ROWID D* and ID generate fields. D*$0C= P9A42662 5D30 031010 ISA MJA: Add info for SQL view D* text. D*$0D= D9977201 5D40 031206 45H BAC: Instead OF triggers D*$AM= D9307400 5D40 041206 45H MWT: Added for V5R4. D*$AN= D9342302 5D50 051214 45H KRS: LF/PF Restore Ordering D*$0D= PSE24623 5D50 060427 45H KRS: Add QDDFFVLN. D*$0E= P9B29769 5D50 060627 45H MWT: Change 2000 to 32768. D*$AP= D9995800 5D50 061010 45H MWT: SQL Index with a D* derived key, or a D* Where clause(SQLI). D*$AQ= D9354900 5D50 061122 45H JAV: DECFLOAT D*$AR= D9356200 5D50 070108 45H RLN: Row Change Timestamp D* and Hidden Column D* support. D* D*End CFD List. D* D*Additional notes about the Change Activity D*End Change Activity. D***************************************************************** D******************************************************************** D*Prototypes for calling Retrieve File Description API QDBRTVFD D******************************************************************** D QDBRTVFD C 'QDBRTVFD' D****************************************************************** D*Input structure for QDBRTVFD API header section D****************************************************************** DQDBRIP DS D* Qdb Rfd Input Parms D*QDBRV 1 1 D* D* varying length D QDBLORV 2 5B 0 D* Length Of Receiver Var D QDBRFAL 6 25 D* Returned File And Library D QDBFN00 26 33 D* Format Name D QDBFALN 34 53 D* File And Library Name D QDBRFN00 54 63 D* Record Format Name D QDBFILOF 64 64 D* File Override Flag D QDBYSTEM 65 74 D* System D QDBFT 75 84 D* Format Type D*QDBEC 85 85 D* D* varying length D**************************************************************** D* Record Structure for QDBRTVFD FILD0100 format D**************************************************************** D******************************************************************** D* FDT HEADER DECLARATIONS D******************************************************************** D* The following typedef structs are pointed to by the header D* typedef struct. They are defined outside of the header for D* LAN/DE compatibility and to ensure alignment on a 16-byte D* boundary. D**************************************************************** D** Attribute Bytes ******************************************* DQDBQ DS D* Attribute Bytes D QDBBITS 1 2 D* QDBRSV1 2 BITS D* Reserved. D* QDBFHFPL 1 BIT D* Type Of File D* 0 = The file is a physical D* Database file. D* 1 = The file is a logical D* Database file. D* QDBRSV2 1 BIT D* Reserved. D* QDBFHFSU 1 BIT D* File Type (FILETYPE) D* 0 = The file is a data file D* (*DATA). D* 1 = The file is a source D* file (*SRC). D* QDBRSV3 1 BIT D* Reserved. D* QDBFHFKY 1 BIT D* Access Path D* 0 = The file has an arrival D* sequence access path D* 1 = The file has a keyed D* sequence access path D* QDBRSV4 1 BIT D* Reserved. D* QDBFHFLC 1 BIT D* Record Format Level Check D* (LVLCHK) D* 0 = The level identifiers of D* the record formats are D* NOT checked when the file D* is opened (*NO). D* 1 = The level identifiers of D* the record formats are D* checked when the file D* is opened (*YES). D* QDBFKFSO 1 BIT D* Select/Omit D* 0 = The file is NOT a D* select/omit logical file. D* 1 = The file is a select/omit D* logical file. D* QDBRSV5 1 BIT D* Reserved. D* QDBFHSHR 1 BIT D* Reserved. D* QDBRSV6 2 BITS D* Reserved. D* QDBFIGCD 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any DBCS or Graphic data D* fields. D* 1 = The record format(s) for D* the file does contain D* DBCS or Graphic data D* fields. D* QDBFIGCL 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The file definition for D* the file does NOT contain D* DBCS or Graphic literals. D* 1 = The file definition for D* the file does contain D* DBCS or Graphic literals. D** Keyed Sequence Access Path Attributes ********************* DQDBQ00 DS D* Keyed Sequence Access Path D* Attributes D QDBBITS00 1 1 D* QDBRSV8 1 BIT D* Reserved. D* QDBFKFCS 1 BIT D* Alternative Collating D* Sequence (ALTSEQ) D* 0 = No alternative collating D* sequence table for the D* file. D* 1 = An alternative collating D* sequence table was D* specified for the file. D* QDBRSV9 4 BITS D* Reserved. D* QDBFKFRC 1 BIT D* Force Keyed Access Path D* (FRCACCPTH) D* 0 = The access path and D* changed records are NOT D* forced to auxiliary D* storage when the access D* path is changed (*NO). D* 1 = The access path and D* changed records are D* forced to auxiliary D* storage when the access D* path is changed (*YES). D* QDBFKFLT 1 BIT D* Floating Point Key Indicator D* 0 = The access path for the D* file contains NO floating D* point keys. D* 1 = The access path for the D* file contains floating D* point keys. D** Keyed Sequence Access Path Description ******************** DQDBQ01 DS D* Keyed Sequence Access Path D* Description D* If this file has an arrival D* sequence access path, these D* fields are NOT applicable. D QDBFKNUM 1 2B 0 D* Number Of Key Fields D* 1-120 = Number of key fields D* for the file. D QDBFKMXL 3 4B 0 D* Maximum Key Length D* 1-32768 = Maximum length of D* the key for the file. D*QDBFKFLG 1 D QDBBITS01 5 5 D* QDBRSV800 1 BIT D* QDBFKFCS00 1 BIT D* QDBRSV900 4 BITS D* QDBFKFRC00 1 BIT D* QDBFKFLT00 1 BIT D* Keyed Sequence Access Path D QDBFKFDM 6 6 D* Access Path Maintenance D* (MAINT) D* 'I' = Immediate maintenance D* (*IMMED). D* 'D' = Delayed maintenance D* (*DLY). D* 'R' = Rebuild maintenance D* (*REBLD). D QDBRSV10 7 14 D* Reserved. D** Additional Attribute Flags ******************************** DQDBQAAF DS D* Additional Attribute Flags D QDBBITS02 1 1 D* QDBRSV12 7 BITS D* Reserved. D* QDBFPGMD 1 BIT D* Program Described File D* Indicator D* 0 = The file is an externally D* described file. D* 1 = The file is a program D* described file. D** Additional Attribute Flags ******************************** DQDBQ2 DS D* Additional Attribute Flags D QDBBITS03 1 2 D* QDBFJNAP 1 BIT D* Access Path Journaled D* 0 = The files access path(s) D* is NOT journaled. D* 1 = The files access path(s) D* is journaled. D* File Capability Attributes D* QDBRSV13 1 BIT D* Reserved. D* File Capability Flags D* QDBFRDCP 1 BIT D* Allow Read Operation D* 0 = Records are allowed to D* be read from the file. D* 1 = Records are NOT allowed D* to be read from the file. D* QDBFWTCP 1 BIT D* Allow Write Operation D* 0 = Records are allowed to D* be written to the file. D* 1 = Records are NOT allowed D* to be written to the D* file. D* QDBFUPCP 1 BIT D* Allow Update Operation D* (ALWUPD) D* 0 = Records are allowed to D* be updated in the file D* (*YES). D* 1 = Records are NOT allowed D* to be updated in the D* file (*NO). D* QDBFDLCP 1 BIT D* Allow Delete Operation D* (ALWDLT) D* 0 = Records are allowed to D* be deleted from the file D* (*YES). D* 1 = Records are NOT allowed D* to be deleted from the D* file (*NO). D* QDBRSV14 9 BITS D* Reserved. D* QDBFKFND 1 BIT D* Null Values Cause Duplicates D* Indicator (UNIQUE) D* 0 = Null values do cause D* duplicate keys in the D* files access path(s) D* (*INCNULL). D* 1 = Null values do NOT cause D* duplicate keys in the D* files access path(s) D* (*EXCNULL). D* Only valid if Qdbfpact is D* equal to 'KU'. D** Additional Attribute Flags ******************************** DQDBQ200 DS D* Additional Attribute Flags D QDBBITS04 1 2 D* QDBFHMCS 1 BIT D* Multiple Coded Character Set D* Identifier Indicator (CCSID). D* 0 = The file has only one D* CCSID for all of its D* input and output D* character type fields. D* 1 = The file has more than D* one CCSID for all of its D* input and output D* character type fields. D* If the file has NO character D* type fields in its record D* format(s), this bit will be D* off. D* QDBRSV15 1 BIT D* Reserved. D* QDBFKNLL 1 BIT D* Allow Null Value Key D* Indicator (ALWNULL) D* 0 = The access path for the D* file contains NO allow D* null value keys. D* 1 = The access path for the D* file contains allow null D* value keys. D* QDBFNFLD 1 BIT D* Allow Null Value Data D* (ALWNULL) D* 0 = The record format(s) for D* the file does NOT contain D* any allow null value D* fields. D* 1 = The record format(s) for D* the file does contain D* allow null value fields. D* QDBFVFLD 1 BIT D* Variable Length Data (VARLEN) D* 0 = The record format(s) for D* the file does NOT contain D* any variable length D* fields. D* 1 = The record format(s) for D* the file does contain D* variable length fields. D* QDBFTFLD 1 BIT D* Date/Time/Timestamp Data D* 0 = The record format(s) for D* the file does NOT contain D* any date, time, or D* timestamp fields. D* 1 = The record format(s) for D* the file does contain D* a date, time, or D* timestamp fields. D* QDBFGRPH 1 BIT D* Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any graphic fields. D* 1 = The record format(s) for D* the file does contain D* graphic fields. D* QDBFPKEY 1 BIT D* Primary Key D* 0 = The access path for the D* file is NOT a primary key. D* any graphic fields. D* 1 = The access path for the D* file is a primary key. D* D* QDBFUNQC 1 BIT D* Unique Constraint D* Indicator (ALWNULL) D* 0 = The access path for the D* file is NOT a unique D* constraint. D* 1 = The access path for the D* file is a unique D* constraint. D* QDBR118 2 BITS D* Reserved. D* QDBFAPSZ 1 BIT D* Access Path Size(ACCPTHSIZ). D* 0 = All access paths for the D* file will be allowed to D* occupy a maximum of 4GB D* of auxillary storage. D* 1 = All access paths for the D* file will be allowed to D* occupy a maximum of 1TB D* of auxillary storage. D* QDBFDISF 1 BIT D* File is distributed indicator. D* 0 = File is not a distributed D* file. D* 1 = File is a distributed file. D* D* QDBR119 3 BITS D* Reserved. D** Complex Object Flags. ******************************** DQDBFNBIT DS D* Additional Attribute Flags D QDBBITS70 1 1 D* QDBFHUDT 1 BIT D* User Defined Types in file. D* 0 = The file does not have D* any UDTs. D* 1 = The file has fields with D* UDTs. D* QDBFHLOB 1 BIT D* Large Objects fields in file. D* 0 = The file does not have D* any LOBs. D* 1 = The file has fields with D* LOBs. D* QDBFHDTL 1 BIT D* Datalink fields in file. D* 0 = The file does not have D* any datalinks. D* 1 = The file has fields with D* datalinks. D* QDBFHUDF 1 BIT D* User Defined Functions in file. D* 0 = The file does not have D* any UDFs. D* 1 = The file has UDFs. D* D* QDBFHLON 1 BIT D* Datalink fields in the file D* with FILE LINK CONTROL. D* 0 = The file does not have D* datalink fields with D* FILE LINK CONTROL. D* 1 = The file has datalink fields D* with FILE LINK CONTROL. D* QDBFHLOP 1 BIT D* Logical file without any LOB D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have LOB fields. D* 1 = The based on file has LOB D* fields. D* QDBFHDLL 1 BIT D* Logical file without any datalink D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have datalink fields. D* 1 = The based on file has D* datalink fields. D* QDBQLVOL 1 BIT D* SQL Volatile Table Indicator D* 0 = The file is NOT an SQL D* volatile table. D* 1 = The file is an SQL D* volatile table. §AMC D** File Text Description ************************************* DQDBQ02 DS D* File Text Description D QDBRSV18 1 2 D* Reserved. D QDBFHTXT 3 52 D* Text Description (TEXT) D** Source File Fields **************************************** DQDBQ03 DS D* Source File Fields D* Must be X'00's if there is D* NO source file information. D QDBFSRCF 1 10 D* Source File Name D QDBFSRCM 11 20 D* Source File Member Name D QDBFSRCL 21 30 D* Source File Library Name D** Sort Sequence Table Flags ********************************* DQDBQ04 DS D* Flags D QDBBITS05 1 1 D* QDBFSSCS 3 BITS D* Sort Sequence Table D* (SRTSEQ) Indicators D* B'000' = No sort sequence D* table for the file. D* However, an D* alternate collating D* sequence table was D* specified for the D* file. D* B'010' = No sort sequence D* table is used for the D* file, and the hexa- D* decimal values of the D* characters will be D* used to determine the D* sort sequence (*HEX). D* B'100' = A sort sequence D* table was specified D* for the file. D* QDBR103 5 BITS D* Reserved D** Sort Sequence Table *************************************** DQDBFSSFP DS D* Sort Sequence Table D*QDBFNLSB00 1 D QDBBITS57 1 1 D* QDBFSSCS01 3 BITS D* QDBR10301 5 BITS D* NLS Flags D QDBFLANG00 2 4 D* Language Identifier (LANGID) D QDBFCNTY00 5 6 D* Country Identifier (CNTRYID) D** Identity/Rowid Flags. ******************************** DQDBFIDFL DS D* Additional Attribute Flags D QDBBITS74 1 2 D* QDBR121 5 BITS D* Reserved. D* QDBFFHIC 1 BIT D* Qdbf File Has Identity Colum D* Identity Column in the file. D* 0 = The file does not have D* an Identity Column. D* 1 = The file has an Identity D* column. D* QDBFFHR 1 BIT D* Qdbf File Has Rowid D* Rowid in the file. D* 0 = The file does not have D* a Rowid Column. D* 1 = The file has a Rowid D* column. D* QDBFRCT 1 BIT D* Qdbfh Row Change Timestamp D* Row Change Timestamp in the D* file. D* 0 = The file does not have D* a Row Change Timestamp D* Column in its format(s). D* 1 = The file has a Row Change D* Timestamp field in its D* format(s). D* QDBR122 8 BITS D* Reserved. D**************************************************************** D* D*File Definition Template (FDT) Header D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ25 DS D* Header information - The D* FDT starts here D QDBFYRET 1 4B 0 D* Bytes returned - The length D* of the data returned D QDBFYAVL 5 8B 0 D* Bytes available - The number D* of bytes provided for the D* file definition template D* data D*QDBFHFLG 2 D QDBBITS27 9 10 D* QDBRSV100 2 BITS D* QDBFHFPL00 1 BIT D* QDBRSV200 1 BIT D* QDBFHFSU00 1 BIT D* QDBRSV300 1 BIT D* QDBFHFKY00 1 BIT D* QDBRSV400 1 BIT D* QDBFHFLC00 1 BIT D* QDBFKFSO00 1 BIT D* QDBRSV500 1 BIT D* QDBFHSHR00 1 BIT D* QDBRSV600 2 BITS D* QDBFIGCD00 1 BIT D* QDBFIGCL00 1 BIT D* Attribute Bytes D QDBRSV7 11 14 D* Reserved. D QDBLBNUM 15 16B 0 D* Number Of Data Members D* 1 = Externally described D* physical file, or program D* described physical file D* that is NOT linked to a D* Data Dictionary. D* 1-32 = Number of Data D* Dictionary record D* formats for a program D* described physical D* file that is linked to D* a Data Dictionary. D* 1-256= Number of based on D* physical files for D* a logical file. D*QDBFKDAT 14 D QDBFKNUM00 17 18B 0 D QDBFKMXL00 19 20B 0 D* QDBFKFLG00 1 D QDBBITS28 21 21 D* QDBRSV802 1 BIT D* QDBFKFCS02 1 BIT D* QDBRSV902 4 BITS D* QDBFKFRC02 1 BIT D* QDBFKFLT02 1 BIT D QDBFKFDM00 22 22 D QDBRSV1000 23 30 D* Keyed Sequence Access Path D QDBFHAUT 31 40 D* Public Authority (AUT) D* '*CHANGE ' = Public change D* authority. D* '*ALL ' = Public all D* authority. D* '*USE ' = Public use D* authority. D* '*EXCLUDE ' = Public exclude D* authority. D* 'authorization-list-name' D* = Name of the D* authorization D* list whose D* authority is D* used for the D* file. D* This is the original public D* authority that the file was D* created with, NOT the current D* public authority for the file. D QDBFHUPL 41 41 D* Preferred Storage Unit (UNIT) D* X'00' = The storage space for D* the file and its D* members can be D* allocated on any D* available auxiliary D* storage unit (*ANY). D* X'01'-X'FF' = The unit D* identifier (a D* number from 1 D* to 255 assigned D* when the disk D* device is D* configured) of D* a specific D* auxiliary D* storage unit on D* the system. D QDBFHMXM 42 43B 0 D* Maximum Members (MAXMBRS) D* 0 = No maximum is specified D* for the number of members, D* the system maximum of D* 32,767 members is used D* (*NOMAX). D* 1-32,767 = The value for the D* maximum number of D* members that the D* file can have D* (maximum-members). D QDBFWTFI 44 45B 0 D* Maximum File Wait Time D* (WAITFILE) D* -1 = The default wait time D* specified in the class D* description is used as D* the wait time for the D* file (*CLS). D* 0 = A program does NOT wait D* for the file, an D* immediate allocation of D* the file is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the file (number- D* of-seconds). D QDBFHFRT 46 47B 0 D* Records To Force A Write D* (FRCRATIO) D* 0 = There is NO force write D* ratio, the system D* determines when the D* records are written to D* auxiliary storage (*NONE). D* 1-32,767 = The number of D* inserted, updated, D* or deleted records D* that are processed D* before they are D* explicitly forced D* to auxiliary D* storage (number- D* of-records-before- D* force). D QDBHMNUM 48 49B 0 D* Number Of Members D* 0-32,767 = The current number D* of members for the D* file. D QDBPSIZE 50 51B 0 D* Access path page size. §AMA D* -1 = NA, 4G Access path. D* 0 = Key length page size. D* 8,16,32,64,128,256,512=Ksize D QDBRSV11 52 58 D* Reserved. D QDBFBRWT 59 60B 0 D* Maximum Record Wait Time D* (WAITRCD) D* -2 = The wait time is the D* maximum allowed by the D* system, 32,767 seconds D* (*NOMAX). D* -1 = A program does NOT wait D* for the record, an D* immediate allocation of D* the record is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the record D* (number-of- D* seconds). D*QDBQAAF00 1 D QDBBITS29 61 61 D* QDBRSV1200 7 BITS D* QDBFPGMD00 1 BIT D* Additional Attribute Flags D QDBMTNUM 62 63B 0 D* Total Number Of Record D* Formats D* 1-32 = Number of record D* formats for the file. D*QDBFHFL2 2 D QDBBITS30 64 65 D* QDBFJNAP00 1 BIT D* QDBRSV1300 1 BIT D* QDBFRDCP00 1 BIT D* QDBFWTCP00 1 BIT D* QDBFUPCP00 1 BIT D* QDBFDLCP00 1 BIT D* QDBRSV1400 9 BITS D* QDBFKFND00 1 BIT D* Additional Attribute Flags D QDBFVRM 66 67B 0 D* First Supported D* Version Release Modification D* Level D* X'0000' = Pre-Version 2 D* Release 1 D* Modification 0 file. D* X'1500' = Version 2 Release 1 D* Modification 0, D* V2R1M0, file. D* X'1501' = Version 2 Release 1 D* Modification 1, D* V2R1M1, file. D* X'1600' = Version 2 Release 2 D* Modification 0, D* V2R2M0, file. D* X'1700' = Version 2 Release 3 D* Modification 0, D* V2R3M0, file. D* X'1F00' = Version 3 Release 1 D* Modification 0, D* V3R1M0, file. D* X'2000' = Version 3 Release 2 D* Modification 0, D* V3R2M0, file. D* X'2400' = Version 3 Release 6 D* Modification 0, D* V3R6M0, file. D* X'2500' = Version 3 Release 7 D* Modification 0, D* V3R7M0, file. D* X'2900' = Version 4 Release 1 D* Modification 0, D* V4R1M0, file. D* X'2A00' = Version 4 Release 2 D* Modification 0, D* V4R2M0, file. D* X'2B00' = Version 4 Release 3 D* Modification 0, D* V4R3M0, file. D* X'2C00' = Version 4 Release 4 D* Modification 0, D* V4R4M0, file. D* X'2D00' = Version 4 Release 5 D* Modification 0, D* V4R5M0, file. D* X'3300' = Version 5 Release 1 D* Modification 0, D* V5R1M0, file. D* X'3400' = Version 5 Release 2 D* Modification 0, D* V5R2M0, file. D* X'3500' = Version 5 Release 3 D* Modification 0, D* V5R3M0, file. D* X'3600' = Version 5 Release 4 D* Modification 0, D* V5R4M0, file. D* X'3700' = Version 5 Release 5 D* Modification 0, D* V5R5M0, file. D* New Database support is used D* in the file which will D* prevent it from being saved D* and restored to a prior D* Version Release and D* Modification level. D*QDBQAAF2 2 D QDBBITS31 68 69 D* QDBFHMCS00 1 BIT D* QDBRSV1500 1 BIT D* QDBFKNLL00 1 BIT D* QDBFNFLD00 1 BIT D* QDBFVFLD00 1 BIT D* QDBFTFLD00 1 BIT D* QDBFGRPH00 1 BIT D* QDBFPKEY00 1 BIT D* QDBFUNQC00 1 BIT D* QDBR11800 2 BITS D* QDBFAPSZ00 1 BIT D* QDBFDISF00 1 BIT D* QDBR11900 3 BITS D* Additional Attribute Flags D QDBFHCRT 70 82 D* File Level Identifier D* The date of the file in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D*QDBFHTX 52 D QDBRSV1800 83 84 D QDBFHTXT00 85 134 D* File Text Description D QDBRSV19 135 147 D* Reserved D*QDBFSRC 30 D QDBFSRCF00 148 157 D QDBFSRCM00 158 167 D QDBFSRCL00 168 177 D* Source File Fields D QDBFKRCV 178 178 D* Access Path Recovery D* (RECOVER) D* 'A' = The file has its access D* path built after the D* IPL has been completed D* (*AFTIPL). D* 'N' = The access path of the D* file is NOT built D* during or after an IPL D* (*NO). The file's D* access path is built D* when the file is next D* opened. D* 'S' = The file has its access D* path built during the D* IPL (*IPL). D QDBFDR 179 179 D* Qdbfh dfp round D* Decimal floating point D* rounding mode. Set for D* logical files and MQTs that D* reference decimal floating D* point fields. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFDW 180 180 D* Qdbfh dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBRSV20 181 201 D* Reserved. D QDBFTCID 202 203U 0 D* Coded Character Set D* Identifier, CCSID, For D* Text Description (TEXT) D* 0 = There is NO text D* description for the file. D* 1-65,535 = The CCSID for the D* file's text D* description. D QDBFASP 204 205 D* Auxiliary Storage Pool (ASP) D* X'0000' = The file is D* located on the D* system auxiliary D* storage pool. D* X'0002'-X'0010' = The user D* auxiliary storage D* pool the file is D* located on D* (asp-identifier). D*QDBFNBIT00 1 D QDBBITS71 206 206 D* QDBFHUDT00 1 BIT D* QDBFHLOB00 1 BIT D* QDBFHDTL00 1 BIT D* QDBFHUDF00 1 BIT D* QDBFHLON00 1 BIT D* QDBFHLOP00 1 BIT D* QDBFHDLL00 1 BIT D* QDBQLVOL00 1 BIT D* Complex Object flags. D QDBXFNUM 207 208B 0 D* Maximum Number Of Fields D* 1-8000 = The number of fields D* in the file's record D* format that contains D* the largest number D* of fields. D QDBRSV22 209 282 D* Reserved. D*QDBFIDFL00 2 D QDBBITS75 283 284 D* QDBR12100 5 BITS D* QDBFFHIC00 1 BIT D* QDBFFHR00 1 BIT D* QDBFRCT00 1 BIT D* QDBR12200 8 BITS D* Identity/Rowid flags. D QDBFODIC 285 288B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* IDDU/SQL Data Dictionary D* Area, Qdbfdic. D QDBRSV23 289 302 D* Reserved. D QDBFFIGL 303 304B 0 D* File Generic Key Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBFMXRL 305 306I 0 D* Maximum Record Length D* 1-32766 = The length of the D* record in the D* file's record D* format that D* contains the D* largest number of D* bytes. D QDBRSV24 307 314 D* Reserved. D QDBFGKCT 315 316B 0 D* File Generic Key Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFOS 317 320B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* File Scope Array, Qdbfb. D QDBRSV25 321 328 D* Reserved. D QDBFOCS 329 332B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Alternative Collating D* Sequence Table section, D* Qdbfacs. D QDBRSV26 333 336 D* Reserved. D QDBFPACT 337 338 D* Access Path Type D* 'AR' = Arrival sequence D* access path. D* 'KC' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* changed-first-out D* (FCFO) order. D* 'KF' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* in-first-out D* (FIFO) order. D* 'KL' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in last- D* in-first-out D* (LIFO) order. D* 'KN' = Keyed sequence access D* path with duplicate D* keys allowed. D* No order is guaranteed D* when accessing D* duplicate keys. D* Duplicate keys are D* accessed in one of the D* following methods: D* (FCFO) (FIFO) (LIFO). D* 'KU' = Keyed sequence access D* path with NO duplicate D* keys allowed (UNIQUE). D* 'EV' = Encoded Vector with a D* 1, 2, or 4 byte vector D* D QDBFHRLS 339 344 D* File Version Release D* Modification Level D* 'VxRyMz' = Where x is the D* Version, y is the D* Release, and z is D* the Modification D* level D* example V2R1M1 D* Version 2 Release D* 1 Modification 1 D QDBRSV27 345 364 D* Reserved. D QDBPFOF 365 368B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Physical File Specific D* Attributes section, Qdbfphys. D QDBLFOF 369 372B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Logical File Specific D* Attributes section, Qdbflogl. D*QDBFSSFP00 6 D* QDBFNLSB01 1 D QDBBITS58 373 373 D* QDBFSSCS02 3 BITS D* QDBR10302 5 BITS D QDBFLANG01 374 376 D QDBFCNTY01 377 378 D* Sort Sequence Table D QDBFJORN 379 382B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Journal Section, Qdbfjoal. D QDBFEVID 383 386U 0 D* Initial number of distinct D* values an encoded vector D* access path was allowed at D* creation. Default will be set D* to hex zeros D QDBRSV28 387 400 D* Reserved. D**************************************************************** D* D*The FDT header ends here. D* D**************************************************************** D******************************************************************** D* PHYSICAL FILE DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBQ05 DS D* Flags D QDBBITS06 1 1 D* QDBFRDEL 1 BIT D* Reuse Deleted Records D* (REUSEDLT) D* 0 = The deleted record space D* in the file's members is D* NOT used again by the D* system on Write (Insert) D* requests to the file's D* members (*NO). D* 1 = The deleted record space D* in the file's members is D* used again by the system D* on Write (Insert) D* requests to the file's D* members (*YES). D* QDBRSV30 3 BITS D* Reserved. D* QDBFSQLT 1 BIT D* SQL Table Indicator D* 0 = The file is NOT an SQL D* table. D* 1 = The file is an SQL table. D* QDBFMQT 1 BIT D* SQL Materialized Query Table D* Indicator D* 0 = The file is not an MQT. D* 1 = The file is an MQT. D* QDBFSQPT 1 BIT D* SQL Partitioned Table D* Indicator D* 0 = The file is not an SQL D* Partitioned Table. D* 1 = The file is an SQL D* Partitioned Table. D* QDBRSV31 1 BIT D* Reserved. D**************************************************************** D* D*Physical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset QDBPFOF, which is D*located in the FDT header section. D**************************************************************** DQDBQ26 DS D* Physical File Attributes D QDBFPALC 1 2 D* Allocate/Contiguous Storage D* (ALLOCATE and CONTIG) D* 'DN' = New members added to D* the file allow the D* system to determine D* storage space that is D* allocated for the D* member (ALLOCATE(*NO)). D* 'IC' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is D* attempted to be D* allocated contiguously D* (CONTIG(*YES)). D* 'IN' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is NOT D* attempted to be D* allocated contiguously D* (CONTIG(*NO)). D QDBFCMPS 3 3 D* Maximum Percentage Of Deleted D* Records Allowed (DLTPCT) D* X'00' = The number of deleted D* records in the file's D* member is NOT checked D* when the member is D* closed (*NONE). D* X'01'-X'64' = The largest D* percentage of D* deleted records D* that the file's D* member should D* have (deleted- D* records- D* threshold- D* percentage). D QDBFS00 4 7U 0 D* For SQL Partitioned Tables D* offset from the start D* of the FDT header, Qdbfh, to D* the SQL Partitioned Area. D QDBRSV29 8 11 D* Reserved. CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBPRNUM 12 15I 0 D* Initial Number Of Records D* (SIZE) D* 0 = The number of records D* that can be inserted into D* each member of the file D* is NOT limited by the D* user. The maximum size D* of each member is D* determined by the system D* (*NOMAX). D* 1-2,147,483,646 = The number D* of records that can be D* inserted before an D* automatic extension D* occurs (number-of- D* records). CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBFPRI 16 17I 0 D* Increment Number Of Records D* (SIZE) D* 0-32,767 = The maximum number D* of additional D* records that can D* be inserted into D* the member after D* an automatic D* extension occurs D* (increment-value). CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBRINUM 18 19I 0 D* Maximum Number Of Increments D* (SIZE) D* 0-32,767 = The maximum number D* of increments D* that can be D* automatically D* added to the D* member (number-of- D* increments). D QDBFORID 20 23B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Record ID Codes for program D* described physical files, D* Qdbforid. D*QDBFLAGS 1 D QDBBITS33 24 24 D* QDBFRDEL00 1 BIT D* QDBRSV3000 3 BITS D* QDBFSQLT00 1 BIT D* QDBFMQT00 1 BIT D* QDBFSQPT00 1 BIT D* QDBRSV3100 1 BIT D* Flags D QDBFOTRG 25 28B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg D QDBFTRGN 29 30B 0 D* Number of triggers D QDBFOFCS 31 34B 0 D* This is the offset from the D* start of the FDT header, D* Qdbfh, to the Constraint D* Definition Area, D* Qdb_Qdbf_constraint D QDBFCSTN 35 38B 0 D* Number of constraint for the D* File D QDBFODL 39 42B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* datalinks area, D* Qdb_Qdbfdtalnk. D QDBFM 43 46U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL Area. D QDBRSV32 47 48 D* Reserved. D******************************************************************** D* TRIGGER DECLARATIONS D******************************************************************** D** Trigger Flags ******************************************** DQDBFTRGF DS D* Trigger Flags D QDBBITS68 1 1 D* QDBFALRC 1 BIT D* Allow Repeated Change Indicator D* 0 = *NO (not allowed) D* 1 = *YES (allows change) D* QDBFTTHS 2 BITS D* Threadsafe Indicator D* B'00' = *UNKNOWN (Threadsafe D* status is not known) D* B'10' = *NO (Not threadsafe) D* B'11' = *YES (Threadsafe) D* QDBFTMTA 2 BITS D* Multithreaded Job Action D* Indicator D* B'01' = *MSG (Run, diagnostic) D* B'10' = *NORUN (Escape) D* B'11' = *RUN (Run, no message) D* QDBFTQMT 1 BIT D* QMLTTHDACN system value usage D* 0 = Not used D* 1 = Used D* QDBFMTI 1 BIT D* Qdbf more trg info D* Indicates more trigger D* information is available if D* format FILD0400 is requested. D* 0 = No more info available D* 1 = More information available D* §ADA D* QDBR202 1 BIT D* Reserved. §ADC D**************************************************************** D* D*Trigger Description Area D* D*The Trigger information for this file. D* D**************************************************************** D*This section can be located with the offset Qdbfotrg, D*located in the Physical File Specific Attributes section, D*or with the offset Qdbflotrg, located in the Logical File D*Specific Attributes section. D*This is repeated by the number of triggers Qdbftrgn or D*Qdbfltrgn. D**************************************************************** DQDBQ27 DS D* Trigger Section D QDBFTRGT 1 1 D* Trigger Time D* '1' = Run a trigger AFTER the D* change operation. D* '2' = Run a trigger BEFORE the D* change operation. D* '3' = Run a trigger INSTEAD OF D* the operaton D QDBFTRGE 2 2 D* Trigger Event D* '1' = INSERT operation. D* '2' = DELETE operation. D* '3' = UPDATE operation. D* '4' = READ operation D QDBFTPGM 3 12 D* Trigger Program Name D QDBFTPLB 13 22 D* Trigger Program Library D QDBFTUPD 23 23 D* Trigger update condition. This D* field is only valid for UPDATE D* event. This field will be D* ignored for INSERT or DELETE D* event. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. D*QDBFTRGF00 1 D QDBBITS69 24 24 D* QDBFALRC00 1 BIT D* QDBFTTHS00 2 BITS D* QDBFTMTA00 2 BITS D* QDBFTQMT00 1 BIT D* QDBFMTI00 1 BIT D* QDBR20200 1 BIT D* Trigger Flags D QDBR201 25 48 D* Reserved. D**************************************************************** D* D*Constraint Definition Area D* D*The constraint definition area information about D*constraints for this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfofcs, which D*is located in the Physical File Specific Attributes section. D**************************************************************** D******************************************************************* D*Constraint Definition Header D* D******************************************************************* DQDBQC DS D* File Constraint Definition D* Area. D QDBFC 1 4B 0 D* Offset from D* Qdb_Qdbf_Constraint D* to the next section for D* this constraint D QDBFH 5 8B 0 D* Constraint Entry Header D* Length in Bytes. D QDBFT00 9 9 D* Constraint Type D* (TYPE) D* 'P' = Primary Unique D* Constraint D* 'F' = Referential Constraint D* 'U' = Unique Constraint. D* 'C' = Check Constraint D QDBFC00 10 10 D* Check Pending Attribute D* 'N' = The constraint is not D* in check pending. D* 'Y' = The constraint is in D* check pending. D QDBFS 11 11 D* Constraint State D* 'D' = The constraint is D* defined. D* 'E' = The constraint is D* established. D QDBFA 12 12 D* Constraint State D* (STATE) D* 'D' = The constraint is D* disabled. D* 'E' = The constraint is D* enabled. D QDBFAT 13 25 D* Constraint Date D* The Constraint Date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBFCL 26 35 D* Constraint library name D QDBFCL2 36 39B 0 D* Constraint Name (delimited) D* Length. D QDBR2 40 64 D* Reserved. D QDBFCN 65 322 D* Constraint name (CST) D******************************************************************* D*Constraint Definition Body which follows the Constraint Header D* D* ------------------------------------ D* !!! --Constraint Definition !!! D* !!! Body, variable length. !!! D* !!! - 'F' = Referential !!! D* !!! constraint !!! D* !!! The structures used !!! D* !!! will be ordered: !!! D* !!! 1) Qdb_Qdbf_Keyn !!! D* !!! 2) Qdb_Qdbf_Keyn !!! D* !!! 3) Qdb_Qdbf_Riafk_Afkd!!! D* !!! !!! D* !!! - 'U' = Unique !!! D* !!! Constraint !!! D* !!! The structures used !!! D* !!! will be ordered: !!! D* !!! 1) Qdb_Qdbf_Keyn !!! D* !!! !!! D* !!! - 'P' = Primary Unique !!! D* !!! Constraint !!! D* !!! The structures used !!! D* !!! will be ordered: !!! D* !!! 1) Qdb_Qdbf_Keyn !!! D* !!! !!! D* !!! - 'C' = Check Constraint !!! D* !!! 1) Qdb_Qdbf_Chk_Cst !!! D* !!! !!! D* ------------------------------------ D* D******************************************************************* D******************************************************************* D*Structure for the Constraint Keys. D******************************************************************* D*This section can be located with the offset Qdbf_Hlen, which is D*located in the Constraint Definition Header section, or with the D*with the offset Qdbf_Kslen when this is a Referential Constraint. D******************************************************************* DQDBQN DS D* Key Name Array D QDBFK 1 10 D* KEY Name (PRNKEY KEY) D QDBR6 11 32 D* Reserved DQDBQK DS D* Constraint Key Structure D QDBFK00 1 4B 0 D* Constraint Key Structure D* Length. The length, in bytes, D* of this Constraint Key D* Structure. This is also the D* offset from Qdb_Qdbf_Keyn D* to the next structure for D* this constraint. D* D QDBFN01 5 8B 0 D* Number of Keys. D* 1-120 = The count of the D* number of key fields for the D* Constraints key. D* D QDBFK01 9 12B 0 D* Constraint Key Length. D* D QDBR7 13 64 D* Reserved D*QDBFN02 32 D QDBFK02 65 74 D QDBR600 75 96 D* Key Name Array D******************************************************************* D*Structure for Referential Constraint D******************************************************************* D*This section can be located with the offset Qdbf_Kslen when this D*is a Referential Constraint. D******************************************************************* DQDBQRA DS D* Referential Constraint D* Definition D* D QDBFRP 1 10 D* Parent File Name (PRNFILE) D* D QDBFRP00 11 20 D* Parent File Library Name. D* D QDBR3 21 64 D* Reserved D* D QDBFRF 65 65 D* Delete Rule D* (DLTRULE) D* 'C' = *CASCADE D* 'D' = *SETDFT D* 'L' = *SETNULL D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D QDBR4 66 66 D* Reserved. D* D QDBFRF00 67 67 D* Update Rule. D* (UPDRULE) D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D* D QDBR5 68 128 D* Reserved. D* ************************************************************ D* Structure for a Check Constraint expression D* ************************************************************ DQDBQCC DS D* Qdb Qdbf Chk Cst D QDBFCL00 1 4B 0 D* Structure Length D QDBFCL01 5 8B 0 D* Expression Length D QDBFCDR 9 9 D* Decimal floating point D* rounding mode. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFCDW 10 10 D* Qdbf chk dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBR8 11 32 D* .. reserved D*QDBQC00 33 33 D* D* First character of D* expression D* (varying length) D* ************************************************************ D* Structure for datalink header information. D* ************************************************************ DQDBTALNK DS D* Qdb Qdbfdtalnk D QDBLCOLN 1 4B 0 D* Number of datalink D* columns with links to D* servers. D QDBOCOLE 5 8B 0 D* Offset fromQdb_Qdbfdtalnk D* to the Qdb_dbfdlcole D* area. D QDBLINKP 9 9 D* Link pending staus. D* 'N' The file is not in D* link pending. D* 'Y' The file is in D* link pending. D QDBR127 10 32 D* .. reserved D* ************************************************************ D* Structure for datalink column information. D* ************************************************************ DQDBLCOLE DS D* Qdb Qdbfdlcole D QDBCELEN 1 4B 0 D* Length of this entry. D* Use this length to get D* to the next entry. D QDBLSEVN 5 8B 0 D* Number of servers linked D* for this column. D QDBCOLNM 9 18 D* Column name. D QDBR02 19 32 D* .. reserved D QDBSEVNM 33 286 D* Array of server names. D**************************************************************** D*Record ID Code Array Entry D**************************************************************** DQDBFDRAE DS D* Record ID Code Array D QDBRSV3400 1 4 D* Reserved. D QDBFDRNM00 5 14 D* External Name D QDBFDRRP00 15 16B 0 D* Relative Field Position D* 1-8000 = The relative D* position of the D* field in the record D* format. D QDBFDRCO00 17 18 D* Comparison Operator D* 'EQ' = Compare equal. D* 'NE' = Compare NOT equal. D* 'ZN' = Compare zone. D* 'NZ' = Compare NOT zone. D* 'DG' = Compare digit. D* 'ND' = Compare NOT digit. D QDBFDRLN00 19 20B 0 D* Length Of Test Value D* 1 = Test value length must be D* 1. D QDBFDRTV00 21 21 D* Test Value D QDBFDRAO00 22 22 D* AND/OR/Last Operator D* '0' = Last array entry. D* '1' = AND with next array D* entry. D* '2' = OR with next array D* entry. D QDBRSV3500 23 32 D* Reserved. D**************************************************************** D* D*Record ID Codes D* D*The Record ID Codes for program described physical D*files. The Record ID Code information is an array with D*variable length entries. D* D**************************************************************** D*This section can be located with the offset Qdbforid, which D*is located in the Physical File Specific Attributes section. D**************************************************************** DQDBQ28 DS D* Record ID Codes D* Record ID Code Header D QDBDRNUM 1 2B 0 D* The Number Of Record ID Code D* Array Entries D* 0-70 = The number of elements D* in the Record ID Code D* array. D QDBFDRTL 3 6B 0 D* Size Of This Record ID Code D* Table D* 0-2256 = The Record ID Code D* table size in bytes. D QDBRSV33 7 16 D* Reserved. D*QDBFDRAE00 32 D QDBRSV3401 17 20 D QDBFDRNM01 21 30 D QDBFDRRP01 31 32B 0 D QDBFDRCO01 33 34 D QDBFDRLN01 35 36B 0 D QDBFDRTV01 37 37 D QDBFDRAO01 38 38 D QDBRSV3501 39 48 D* Record ID Code Array Entry D******************************************************************** D* LOGICAL FILE DECLARATIONS FOR SQL INDEX D******************************************************************** DQDBQS DS D* SQL Index Attributes §APA D QDBBITS82 1 1 D* QDBFSI 1 BIT D* SQL Index with a derived key D* indicator: D* 0 = The file is NOT an SQL D* Index with a derived Key. D* 1 = The file is an SQL Index D* with a derived key. D* §APA D* QDBFSIU 1 BIT D* SQL Index with a derived key D* with a user defined UDF D* indicator: D* 0 = The file does NOT use a D* user defined UDF. D* 1 = The file does use a user D* defined UDF. D* §APA D* QDBFSW 1 BIT D* SQL Index with a Where D* clause indicator: D* 0 = The file does NOT have a D* Where clause. D* 1 = The file has a Where clause. D* §APA D* QDBFSWU 1 BIT D* SQL Index with a Where D* clause uses a user defined UDF D* indicator: D* 0 = The file does NOT use a user D* defined UDF. D* 1 = The file does use a user D* defined UDF. D* §APA D* QDBR501 4 BITS D* Reserved. §APA D******************************************************************** D* LOGICAL FILE DECLARATIONS D******************************************************************** D** Logical File Attributes *********************************** DQDBQLFA DS D* Logical File Attributes D QDBBITS07 1 1 D* QDBRSV36 2 BITS D* Reserved. D* QDBFJOIN 1 BIT D* Join Logical File Indicator D* (JFILE) D* 0 = The file is NOT a join D* logical file. D* 1 = The file is a join D* logical file. D* QDBFDYNS 1 BIT D* Dynamic Selection Indicator D* (DYNSLT) D* 0 = The selection and D* omission tests specified D* for the file are done D* when the access path is D* updated. D* 1 = The selection and D* omission tests specified D* for the file are done D* when the record is read D* (retrieved). D* QDBFSQLV 1 BIT D* SQL View Indicator D* 0 = The file is NOT an SQL D* view. D* 1 = The file is an SQL view. D* QDBFSQLI 1 BIT D* SQL Index Indicator D* 0 = The file is NOT an SQL D* index. D* 1 = The file is an SQL index. D* QDBRSV37 2 BITS D* Reserved. D**************************************************************** D* D*Logical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset Qdblfof, which is D*located in the FDT header section. D**************************************************************** DQDBQ29 DS D* Logical File Attributes D QDBFOJ 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj. D QDBFSCSN 5 6B 0 D* Total Number Of Select/Omit D* Statements For All Record D* Formats D* 1-32767 = The number of D* Select/Omit D* statements for all D* of the files D* record formats. D QDBFLXP 7 16 D* Record Format Selector D* Program (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFLXL 17 26 D* Record Format Selector D* Program's Library (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFOVW 27 30B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Area, Qdbfv. D*QDBQLFA00 1 D QDBBITS34 31 31 D* QDBRSV3600 2 BITS D* QDBFJOIN00 1 BIT D* QDBFDYNS00 1 BIT D* QDBFSQLV00 1 BIT D* QDBFSQLI00 1 BIT D* QDBRSV3700 2 BITS D* Logical File Attributes D QDBFJTYP 32 32 D* Join File Type D* 'I' = Inner join. No default D* entries will be D* supplied if a join D* value does NOT exist. D* 'P' = Partial outer join. D* Default values D* (JDFTVAL) will be D* supplied if a join D* value does NOT exist. D QDBFSRCD 33 34U 0 D* Coded Character Set D* Identifier, CCSID, For D* Select/Omit Constants D* 0 = There are NO Select/Omit D* constants for the file. D* 1-65,535 = The CCSID for the D* file's Select/Omit D* constants. D QDBFWCHK 35 35 D* With Check Option D* 'C' = The With Check Option D* was specified with D* CASCADE. D* 'L' = The With Check Option D* was specified with D* Local. D* 'N' = No With Check Option D* was specified. D* This value will be set D* for all logical files. The D* values of 'C' and 'L' will D* only apply for SQL views. D QDBLOTRG 36 39B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg §0DA D QDBLTRGN 40 41B 0 D* Number of triggers §0DA D*QDBQS00 1 D QDBBITS83 42 42 D* QDBFSI00 1 BIT D* QDBFSIU00 1 BIT D* QDBFSW00 1 BIT D* QDBFSWU00 1 BIT D* QDBR50100 4 BITS D* Logical File Attributes for D* an SQL Index with derived keys, D* or a WHERE clause. §APA D QDBRSV38 43 48 D* Reserved. §0DC D******************************************************************** D* SQL AREA FLAG DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBVFLGS DS D* Flags D QDBBITS76 1 1 D* QDBFI 1 BIT D* SQL materialized query table D* initial data indicator: D* 0 = Deferred. Data is not D* inserted into the table as D* part of the Create Table D* statement. D* 1 = Immediate. Data is inserted D* initially. D* QDBFM00 1 BIT D* SQL materialized query table D* maintenance indicator: D* 0 = Reserved. D* 1 = User-maintained. D* QDBFR 1 BIT D* SQL materialized query table D* refresh indicator: D* 0 = Refresh-deferred. D* 1 = Reserved. D* QDBFO 1 BIT D* SQL materialized query table D* optimization indicator: D* 0 = Enabled for optimization. D* 1 = Disabled for optimization. D* QDBR123 1 BIT D* Reserved. D* QDBFR09 1 BIT D* SQL materialized query table D* restore deferred indicator: D* 0 = MQT is not deferred. D* 1 = MQT is deferred because D* it was restored without D* its based-on files, and D* the based-on files have D* not yet been resolved. D* QDBRSV8800 2 BITS D* Reserved. D**************************************************************** D* D*SQL Area D* D*The SQL Area contains the SQL select statement. D* D**************************************************************** D*For SQL views, or indexes D*this section can be located with the offset D*Qdbfovw, which is located in the Logical file specific D*attributes section. For SQL materialized query tables, this D*section can be located with the offset Qdbfovw_mqt, in the D*Physical file specific attributes section. D**************************************************************** DQDBQ30 DS D* SQL Area D QDBRSV39 1 16 D* Reserved. D QDBFS01 17 20U 0 D* Starting offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFE 21 24U 0 D* Ending offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFC03 25 26U 0 D* Coded Character Set D* Identifier, CCSID, for the D* Select Statement D QDBFO00 27 30U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL materialized query D* table dependency area. D QDBFC02 31 32 D* For SQL materialized query D* tables, the isolation level D* in effect for the table: D* 'NC' - *NONE no commit D* 'UR' - *CHG uncommitted read D* 'CS' - *CS cursor stability D* 'CL' - *CS with keep locks D* 'RS' - *ALL read stability D* 'RR' - *RR repeatable read D* Null if not an MQT. D*QDBFVLGS 1 D QDBBITS77 33 33 D* QDBFI00 1 BIT D* QDBFM01 1 BIT D* QDBFR00 1 BIT D* QDBFO01 1 BIT D* QDBR12300 1 BIT D* QDBFR10 1 BIT D* QDBRSV8801 2 BITS D* Flags D QDBFSWS 34 37U 0 D* Qdbfvs sqli wh start D* Starting offset of the WHERE D* condition within CREATE INDEX D* statement. D QDBFSWL 38 41U 0 D* Qdbfvs sqli wh len D* Length of the WHERE D* condition within CREATE INDEX D* statement. D QDBRSV8901 42 56 D* Reserved D* SQL Select Statement, or D* SQL Create Index D* Structure D QDBFVSSL 57 60B 0 D* Select, or Create Index D* Length D*QDBFVSST 61 61 D* Qdbfvsst D* D* SQL Select, or Create Index D* (varying length) D******************************************************************** D* JOIN SPECIFICATION DECLARATIONS D******************************************************************** D** Join Specifications Header ******************************** DQDBQ06 DS D* Join Specifications Header D QDBFJNHO 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj, D* for the next join to-file. D QDBRSV40 5 8 D* Reserved. D QDBJKNUM 9 10B 0 D* Number Of Join Field D* Specifications (JFLD) D* 1-32767 = The number of join D* field statements D* that identify the D* from and to fields D* used to join the D* from-file and D* to-file. D QDBJDNUM 11 12B 0 D* Number Of Join Duplicate D* Sequence Specifications D* (JDUPSEQ) D* 1-32767 = The number of join D* duplicate sequence D* statements that D* specify the order D* in which records D* with duplicate join D* fields are returned D* to your program. D QDBFFNUM 13 14B 0 D* Join From-File Number (JOIN) D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical file to D* join the to-file from. D QDBTFNUM 15 16B 0 D* Join To-File Number (JOIN) D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical to-file D* this Join Specification D* relates to. D QDBRSV41 17 40 D* Reserved. D QDBFJSAO 41 44B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specification Array, D* Qdbfjfld, for this join D* to-file. D QDBFJDAO 45 48B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Duplicate Sequence D* Array, Qdbfjdup, for this D* join to-file. D**************************************************************** D* D*Join Specifications D* D*The Join Specifications are a linked list. There is one D*entry in the linked list for each join to-file. Each D*entry defines the join logical file's based on physical D*files, and the fields in the from-file and the to-file that D*are used to join the based on physical files. D* D**************************************************************** D*This section can be located with the offset Qdbfoj, which is D*located in the FDT header section. D**************************************************************** DQDBQ31 DS D* Join Specifications D*QDBFJHDR 48 D QDBFJNHO00 1 4B 0 D QDBRSV4000 5 8 D QDBJKNUM00 9 10B 0 D QDBJDNUM00 11 12B 0 D QDBFFNUM00 13 14B 0 D QDBTFNUM00 15 16B 0 D QDBRSV4100 17 40 D QDBFJSAO00 41 44B 0 D QDBFJDAO00 45 48B 0 D* Join Specifications Header D**************************************************************** D* D*Join Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjsao, which D*is located in the Join header section. D**************************************************************** DQDBQ32 DS D* Join Specification Array D QDBFJFNM 1 10 D* Join From-Field-Name (JFLD) D QDBJFNUM 11 12B 0 D* Join From-Field Reference D* Number D* 0 = The join from-field is D* a field in the join D* logical file's record D* format. D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement D* that this join D* from-field is D* contained in. D QDBRSV42 13 14 D* Reserved. D QDBFJOP 15 16 D* Join Operation D* 'EQ' = The join operation is D* always equal. D QDBFJTNM 17 26 D* Join To-Field-Name (JFLD) D QDBJTNUM 27 28B 0 D* Join To-Field Reference D* Number D* 0 = The join to-field is a D* field in the join logical D* file's record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* to-field is contained D* in. D QDBRSV43 29 48 D* Reserved. D**************************************************************** D*Join Duplicate Sequence Specification D**************************************************************** D** Join Sequencing-Field-Name Attributes ********************* DQDBQ07 DS D* Join Sequencing-Field-Name D* Attributes D QDBBITS08 1 1 D* QDBFJDD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The join sequencing- D* field-name is an D* ascending sequence field. D* 1 = The join sequencing- D* field-name is a D* descending sequence field D* (*DESCEND). D* QDBRSV44 7 BITS D* Reserved. D**************************************************************** D* D*Join Duplicate Sequence Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjdao, which D*is located in the Join header section. D**************************************************************** DQDBQ33 DS D* Join Duplicate Sequence D* Specifications Array D QDBFJDNM 1 10 D* Join Sequencing-Field-Name D* (JDUPSEQ) D QDBDJNUM 11 12B 0 D* Join Sequencing-Field-Name D* Reference Number D* 0 = The join sequencing- D* field-name is a field in D* the join logical file's D* record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* sequencing-field-name D* is contained in. D*QDBJSFNA 1 D QDBBITS35 13 13 D* QDBFJDD00 1 BIT D* QDBRSV4400 7 BITS D* Join Sequencing-Field-Name D QDBRSV45 14 32 D* Reserved. D******************************************************************** D* SORT SEQUENCE TABLE DECLARATIONS D******************************************************************** D** Sort Sequence Table Fields ******************************** DQDBFSRTS00 DS D* Sort Sequence Table Fields D QDBFTBLN00 1 10 D* Sort Sequence Table Name. D QDBFTBLL00 11 20 D* Sort Sequence Table's. D* Library Name D** Sort Sequence Table Flag ********************************** DQDBQ08 DS D* Sort Sequence Table Flag D QDBBITS09 1 1 D* QDBFWGHT 1 BIT D* Weight Indicator for Single- D* byte Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBFSUBC 1 BIT D* Substitution Character D* Indicator for Single-byte D* Sort Sequence Table D* 0 = The sort sequence D* table for the file does D* not have substitution D* characters. D* 1 = The sort sequence D* table for the file has D* substitution characters. D* QDBUCS2W 1 BIT D* Weight Indicator for UCS-2 D* Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBR104 5 BITS D* Reserved D**************************************************************** D* D*Alternative Collating Sequence Table or Sort Sequence Table. D* D**************************************************************** D*This section can be located with the offset Qdbfocs, which is D*located in the FDT header section. D**************************************************************** DQDBQ34 DS D* Qdb Qdbfacs D QDBFACST 1 256 D* Alternative Collating D* Sequence Table (ALTSEQ), or D* Sort Sequence Table (SRTSEQ) D* Information. Single-byte. D QDBFCCSD 257 258U 0 D* Coded Charactor Set D* Identifier, CCSID, for the D* Single-byte Table. D*QDBFSRTS 20 D QDBFTBLN01 259 268 D QDBFTBLL01 269 278 D* Sort Sequence Table Fields D*QDBFSRTF 1 D QDBBITS36 279 279 D* QDBFWGHT00 1 BIT D* QDBFSUBC00 1 BIT D* QDBUCS2W00 1 BIT D* QDBR10400 5 BITS D* Sort Sequence Table Flag D QDBCS2SL 280 283B 0 D* Length of UCS-2 Sort Sequence D* table, Qdbf_UCS2_Srtseq. D QDBUCS2C 284 285U 0 D* Qdbf UCS2 Ccsd D* Coded Character Set ID, CCSID, D* of UCS-2 sort sequence table. D QDBR101 286 304 D* Reserved D*QDBUCS2S 305 305 D* D* UCS-2 Sort Sequence Table. D* (Varying length.) D**************************************************************** D* D*IDDU/SQL Data Dictionary Area D* D*The IDDU/SQL data dictionary area is present for all Database D*files. D* D**************************************************************** D*This section can be located with the offset Qdbfodic, which D*is located in the FDT header section. D**************************************************************** DQDBFDIC DS D* IDDU/SQL Data Dictionary D* Area D QDBFDILK 1 1 D* Data Dictionary Link Status D* 'L' = The file is linked to D* a Data Dictionary. D* 'U' = The file is NOT linked D* to a Data Dictionary. D QDBFDINM 2 11 D* Data Dictionary/Library Name D QDBFDIFD 12 21 D* Data Dictionary File D* Definition Name D QDBFDIID 22 32 D* Data Dictionary Internal File D* Definition Identifier D QDBRSV46 33 36 D* Reserved. D QDBFDICL 37 40B 0 D* Data Dictionary File D* Definition Comment Length D QDBFDICC 41 42U 0 D* Data Dictionary File D* Definition Comment Coded D* Character Set Identifier D* (CCSID) D* 0 = There is NO file D* definition comment for D* the file. D* 1-65,535 = The CCSID for the D* file's definition D* comment. D QDBFOLNG 43 46B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Long/Alias File Names D* Area, Qdbflngn. D QDBLNNUM 47 48B 0 D* Number of Long/Alias File D* Names for the file D QDBRSV47 49 64 D* Reserved. D*QDBFDICT 65 65 D* D* Data Dictionary File D* Definition Comment Text D* (varying length) D******************************************************************** D* SQL LONG ALIAS FILE NAME DECLARATIONS D******************************************************************** D** Long/Alias File Name Flag Byte **************************** DQDBQ09 DS D* Long/Alias File Name Flag D* Byte D QDBBITS10 1 1 D* QDBFLNDL 1 BIT D* Long/Alias File Name D* Input Delimited Indicator D* 0 = Long/Alias File Name was D* NOT delimited when D* supplied as input. D* 1 = Long/Alias File Name was D* delimited when supplied D* as input. D* QDBR111 7 BITS D* Reserved D**************************************************************** D* D*SQL Long/Alias File Names Area D* D*The SQL Long/Alias File Names Area contains the files D*alternate names that can be used to access the file when D*using the systems SQL interfaces. D**************************************************************** D*This section can be located with the offset Qdbfolng, which D*is located in the IDDU/SQL Data Dictionary Area section. D**************************************************************** DQDBQ35 DS D* SQL Long/Alias File Names D* Area D* Long/Alias File Names Entry D QDBFLNEL 1 2B 0 D* Long/Alias File Name Entry D* Length. The length, in bytes, D* of this Long/Alias File Name D* Entry. This also is the D* offset from Qdb_Qdbflngn to D* the next Long/Alias File Name D* Entry. D*QDBFLNFL 1 D QDBBITS37 3 3 D* QDBFLNDL00 1 BIT D* QDBR11100 7 BITS D* Long/Alias File Name Flag D QDBFLNLG 4 5B 0 D* Long/Alias File Name D* (non-delimited) Length D QDBR112 6 16 D* Reserved D*QDBFLNAM 17 17 D* D* The Long/Alias File Name D* (non-delimited) D* (varying length) D**************************************************************** D* D*File Scope Array D* D*The file scope array is present for all Database files. D*The number of data members, Qdbflb#, contains the number of D*file scope array entries. Each entry contains a based on D*physical file name, and optionally a record format name. D* D*Externally Described Physical Files: D* There is only one entry. The entry names the physical D* file record format. The file name portion of the entry D* is NOT used. D* D*Program Described Physical Files: D* There is one entry for each Data Dictionary record format. D* The entry names the Data Dictionary record format. The D* file name portion of the entry is NOT used. D* D*Non-Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file and describes the D* logical file record format to use with the based on file. D* D*Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file. Only the first D* entry describes the logical file record format to use with D* the join logical file. D* D*SQL View Logical Files: D* There is one entry for each based on physical file. Each D* entry names the base on file which will be either an D* externally described physical file, or another view D* logical file. Only the first entry describes the logical D* file record format to use with the view logical file. D* D**************************************************************** D*This section can be located with the offset Qdbfos, which is D*located in the FDT header section. D**************************************************************** DQDBQ36 DS D* Qdb Qdbfb D QDBRSV48 1 48 D* Reserved. D QDBFBF 49 58 D* Based On Physical File Name D QDBFBFL 59 68 D* Based On Physical File's D* Library Name D QDBFT01 69 78 D* Record Format Name D* The name of this particular D* record format for the file. D QDBRSV49 79 115 D* Reserved. D QDBFBGKY 116 117B 0 D* Record Format Generic Key D* Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV50 118 119 D* Reserved. D QDBFBLKY 120 121B 0 D* Record Format Maximum Key D* Length D* 1-32768 = Maximum length of D* the key for the D* record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV51 122 123 D* Reserved. D QDBFFOGL 124 125B 0 D* Record Format Generic Key D* Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV52 126 128 D* Reserved. D QDBFSOON 129 130B 0 D* Number Of Select/Omit D* Statements D* 1-32767 = The number of D* Select/Omit D* statements for this D* record format. D QDBFSOOF 131 134B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Specification D* Array, Qdbfss. D QDBFKSOF 135 138B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Key Specification Array, D* Qdbfk. D QDBFKYCT 139 140B 0 D* Record Format Full Key Field D* Count D* 0-120 = The count of the D* total number of key D* fields for the record D* format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFGENF 141 142B 0 D* Generic Key Field Count For D* All Record Formats With This D* Record Format Name D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* all the record D* formats with this D* record format's name. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFODIS 143 146B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Distributed File Definition D* Section Qdbf_dis, which D* contains the Partition Key D* Array, Qdbf_dis_pkeyarr. D QDBRSV53 147 160 D* Reserved. D******************************************************************** D* SELECT/OMIT STATEMENT DECLARATIONS D******************************************************************** D** Select/Omit Statement Attribute Flags ********************* DQDBQ10 DS D* Select/Omit Statement D* Attribute Flags D QDBBITS11 1 1 D* QDBRSV55 7 BITS D* Reserved. D* QDBFSSFI 1 BIT D* Select/Omit Statement D* External Or Internal Name D* Indicator D* 0 = The Select/Omit statement D* field name is an internal D* record format name. D* 1 = The Select/Omit statement D* field name is an external D* record format name. D**************************************************************** D* D*Select/Omit Specification Array D* D*The Select/Omit specification array entries describe the D*record format's fields that the Select/Omit statements D*refer to. D* D*Non-Join Logical Files: D* There can be one Select/Omit specification array for D* each file scope array entry. D* D*Join Logical Files: D* There can only be one Select/Omit specification array D* for the join logical file. The first scope array entry D* for the join logical file will contain the offset to the D* file's Select/Omit specification array. D* D*All Select/Omit specification arrays will end with an D*'AL' operation. D* D*Select/Omit constant operands have the following form: D* D* Character - Quoted character string (imbedded quotes D* must be double quoted 'ISN''T'). D* Blank padding will be done if the character D* constant passed is shorter than the field. D* D* Hexadecimal - X followed by a quoted string of valid D* hexadecimal values (X'F1F2F3'). D* No padding will be done for a hexadecimal D* constant. The length of a hexadecimal D* constant must exactly match the field D* length. D* D* Floating - External form of floating point D* Point (1.234 E+10). D* D* Packed or - String of 0 through 9 without decimal point. D* Zoned or The decimal point is assumed at the D* Binary appropriate precision. The string must be D* Preceded by a - if negative and may be D* preceded by a + if positive (+1234 or D* -1234 would be +1.234 or -1.234 if the field D* was defined to have 3 decimal places). D* D**************************************************************** D*This section can be located with the offset Qdbfsoof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ37 DS D* Select/Omit Specification D* Array D QDBRSV54 1 2 D* Reserved. D QDBFSSSO 3 3 D* Select/Omit Statement Rule D* 'A' = Select/Omit ANDed D* statement D* 'O' = Select/Omit omit D* statement D* 'S' = Select/Omit select D* statement D QDBFSSOP 4 5 D* Select/Omit Statement D* Comparison (ALL COMP VALUES) D* 'AL' = The Select/Omit D* statement comparison D* is for all (ALL) D* 'EQ' = The Select/Omit D* statement comparison D* is for equal to D* (COMP EQ). D* 'GE' = The Select/Omit D* statement comparison D* is for greater than D* or equal to (COMP GE). D* 'GT' = The Select/Omit D* statement comparison D* is for greater than D* (COMP GT). D* 'LE' = The Select/Omit D* statement comparison D* is for less than or D* equal to (COMP LE). D* 'LT' = The Select/Omit D* statement comparison D* is for less than D* (COMP LT). D* 'NE' = The Select/Omit D* statement comparison D* is for NOT equal to D* (COMP NE). D* 'NG' = The Select/Omit D* statement comparison D* is for NOT greater D* than (COMP NG). D* 'NL' = The Select/Omit D* statement comparison D* is for NOT less than D* (COMP NL). D* 'VA' = The Select/Omit D* statement comparison D* is for values (VALUES) D QDBFSSFN 6 15 D* Select/Omit Statement Field D* Name D QDBSPNUM 16 17B 0 D* Number Of Select/Omit D* Statement Parameters D* 1-32767 = The number of D* Select/Omit D* parameters for this D* Select/Omit D* statement. D*QDBSOSAF 1 D QDBBITS38 18 18 D* QDBRSV5500 7 BITS D* QDBFSSFI00 1 BIT D* Select/Omit Statement D QDBFSSFJ 19 20B 0 D* Select/Omit Statement Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* statement field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. D QDBRSV56 21 28 D* Reserved. D QDBFSOSO 29 32B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Parameters, D* Qdbfsp, for this Select/Omit D* statement. D******************************************************************** D* SELECT/OMIT PARAMETER DECLARATIONS D******************************************************************** D** Additional Select/Omit Parameter Attribute Flags ********** DQDBQ11 DS D* Additional Select/Omit D* Parameter Attribute Flags D QDBBITS12 1 1 D* QDBFSIGC 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* Indicator D* 0 = The non-field compare D* value does NOT contain D* any DBCS or Graphic data. D* 1 = The non-field compare D* value does contain DBCS D* or Graphic data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSHEX 1 BIT D* Hexadecimal Data Indicator D* 0 = The non-field compare D* value is NOT hexadecimal D* data. D* 1 = The non-field compare D* value is hexadecimal D* data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSNUL 1 BIT D* Null Value Indicator D* 0 = The non-field compare D* value is NOT the null D* value. D* 1 = The non-field compare D* value is the null value. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBRSV57 5 BITS D* Reserved. D**************************************************************** D* D*Select/Omit Parameters D* D*This is a linked list of parameter descriptions. This D*section describes the parameter values for this particular D*Select/Omit statement. The Select/Omit parameters are D*either a compare value or another record format field. D* D**************************************************************** D*This section can be located with the offset Qdbfsoso, which D*is located in the Select omit array section. D**************************************************************** DQDBQ38 DS D* Select/Omit Parameter D QDBFSPNO 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* next Select/Omit Parameter, D* Qdbfsp, for this Select/Omit D* statement. D QDBFSPLN 5 6B 0 D* Select/Omit Parameter Length D* 1-32767 = The length of this D* Select/Omit D* parameter structure D* including the D* actual compare D* value. D QDBFSPIN 7 7 D* Select/Omit Parameter D* Attribute Indicator D* X'00' = The Select/Omit D* parameter is NOT D* another record format D* field. It is an D* actual compare value. D* X'01' = The Select/Omit D* parameter is another D* internal record D* format field. D* X'02' = The Select/Omit D* parameter is another D* external record D* format field. D*QDBSOPAF 1 D QDBBITS39 8 8 D* QDBFSIGC00 1 BIT D* QDBFSHEX00 1 BIT D* QDBFSNUL00 1 BIT D* QDBRSV5700 5 BITS D* Additional Select/Omit D QDBFSPPJ 9 10B 0 D* Select/Omit Parameter Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* parameter field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. Also, D* if this is a non-field D* compare value, then this D* field is NOT applicable. D QDBRSV58 11 20 D* Reserved. D*QDBFSPVL 21 21 D* D* Select/Omit Parameter Compare D*(varying length) Value Or Record Format Field D* Name D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is an actual D* compare value (X'00'), then D* this field is the parameter D* compare value. D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is a record format D* field (X'01' or X'02'), then D* this field is the CHAR(10) D* parameter record format field D* name. D******************************************************************** D* KEY SPECIFICATION ARRAY DECLARATIONS D******************************************************************** D** Key Statement Sequencing Attribute Flags ****************** DQDBQ12 DS D* Key Statement Sequencing D* Attribute Flags D QDBBITS13 1 1 D* QDBFKSAD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The key field is an D* ascending sequence key. D* 1 = The key field is a D* descending sequence key D* (*DESCEND). D* QDBFKSN 2 BITS D* Numeric Key Field Sequencing D* Indicators D* B'00' = The numeric key field D* will sequence as a D* string of unsigned D* binary data D* (UNSIGNED). D* B'01' = The numeric key field D* will ignore the sign D* of the field and D* sequence as absolute D* value data (ABSVAL). D* B'10' = The numeric key field D* will consider the D* signs of the field D* and sequence as D* signed value data D* (SIGNED). D* QDBRSV60 1 BIT D* Reserved. D* QDBFKSAC 1 BIT D* Alternative Collating D* Sequence Indicator (ALTSEQ) D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field D* (NOALTSEQ). D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating D* sequence table, then this D* field is NOT applicable. D* QDBFKSZF 1 BIT D* Force Zone Sequencing D* Indicators D* 0 = The zone portion of the D* key field will NOT be D* zeroed. D* 1 = The zone portion of the D* key field will be zeroed D* so that only the digit D* portions (farthest right D* 4 bits) of the key values D* will be used in the key D* sequencing (DIGIT). D* QDBFKSDF 1 BIT D* Force Digit Sequencing D* Indicators D* 0 = The digit portion of the D* key field will NOT be D* zeroed. D* 1 = The digit portion of the D* key field will be zeroed D* so that only the zone D* portions (farthest left D* 4 bits) of the key values D* will be used in the key D* sequencing (ZONE). D* QDBFKFT 1 BIT D* Key Statement External Or D* Internal Name Indicator D* 0 = The key statement field D* name is an internal D* record format name. D* 1 = The key statement field D* name is an external D* record format name. D**************************************************************** D* D*Key Specification Array D* D*The key specification array entries describe the record D*format's fields that are used in defining the access path D*for the file. D* D*Non-Join Logical Files: D* There can be one key specification array for each file D* scope array entry. D* D*Join Logical Files: D* There can only be one key specification array for the D* join logical file. The first scope array entry for the D* join logical file will contain the offset to the file's D* key specification array. D* D**************************************************************** D*This section can be located with the offset Qdbfksof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ39 DS D* Key Specification Array D QDBFKFLD 1 10 D* Key Statement Field Name D* X'40's = The key statement D* field is a *NONE key D* field. D QDBRSV59 11 13 D* Reserved. D*QDBFKSQ 1 D QDBBITS40 14 14 D* QDBFKSAD00 1 BIT D* QDBFKSN00 2 BITS D* QDBRSV6000 1 BIT D* QDBFKSAC00 1 BIT D* QDBFKSZF00 1 BIT D* QDBFKSDF00 1 BIT D* QDBFKFT00 1 BIT D* Key Statement Sequencing D QDBRSV61 15 32 D* Reserved. D******************************************************************* D* D*Distributed File Definition Section and Partition Key Array. D* D*The Distributed File Definition Section and Partition Key D*Array consists of 2 parts - the Distributed File Definition D*Section Header and the Partition Key Array. D******************************************************************* D*The section Qdb_Qdbf_dis is located by the offset Qdbfodis D*which is located in the File Scope Array Section. D******************************************************************* D**************************************************************** D*Partition Key Array D*This array is located in the structure below it, Qdb_Qdbf_dis. D* D**************************************************************** DQDBQDP DS D* Partition key names array D* D QDBFDK 1 10 D* Partition key name D QDBR125 11 32 D* Reserved D**************************************************************** D*Distributed File Definition Section Header D* D**************************************************************** DQDBQD DS D* Distributed File Definition D* Section for this scope D* entry D QDBFDN 1 10 D* Node group name D QDBFDN00 11 20 D* Node group library D QDBFDN01 21 24B 0 D* Number of partition keys D* D QDBR200 25 64 D* Reserved D*QDBFDP 32 D* Qdbf dis pkeyarr D QDBFDK00 65 74 D* Qdbf dis kname D QDBR126 75 96 D* Reserdis 1 D* Partition key names array D* D******************************************************************** D* JOURNAL SECTION DECLARATIONS D******************************************************************** D** Journaling Option Flags *********************************** DQDBQ13 DS D* Journaling Option Flags D QDBBITS14 1 1 D* QDBR106 1 BIT D* Reserved. D* QDBFJBIM 1 BIT D* Before Images Indicator. D* 0 = The before images are not D* being journaled. D* 1 = Before images are D* being journaled D* QDBFJAIM 1 BIT D* After Images Indicator. D* 0 = The after images are not D* being journaled. D* 1 = The after images are D* being journaled. D* QDBR107 1 BIT D* Reserved. D* QDBFJOMT 1 BIT D* Omit Journal Entries D* Indicator. D* 0 = All entries are being D* journaled. D* 1 = The open and close entries D* are being omitted from D* the journal. D* QDBR108 3 BITS D* Reserved. D**************************************************************** D* D*Journal Section D* D*The journal information of this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfjorn, which is D*located in the FDT header section. D**************************************************************** DQDBQ40 DS D* Journal Section D QDBFOJRN 1 10 D* Journal Name D QDBFOLIB 11 20 D* Journal Library Name D*QDBFOJPT 1 D QDBBITS41 21 21 D* QDBR10600 1 BIT D* QDBFJBIM00 1 BIT D* QDBFJAIM00 1 BIT D* QDBR10700 1 BIT D* QDBFJOMT00 1 BIT D* QDBR10800 3 BITS D* Journaling Option Flags D QDBFJACT 22 22 D* Journaling Options. D* '0' = The file is not being D* journaled. D* '1' = The file is being D* journaled. D QDBFLJRN 23 35 D* Last Journaling date D* Stamp-This is the date D* that corresponds to the most D* recent time that journaling D* was started for the file. D* The date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBR105 36 64 D* Reserved. D******************************************************************** D* QDBRTVFD FILD0200 FORMAT DECLARATIONS D******************************************************************** D** Record format DBCS flags ********************************** DQDBQ14 DS D* Record format DBCS flags D QDBBITS15 1 1 D* QDBFRITY 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The format does NOT D* contain DBCS or graphic D* data fields. D* 1 = The format does contain D* DBCS or graphic data D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRILT 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The format definition for D* the format does NOT D* contain DBCS or graphic D* literals. D* 1 = The format definition for D* the format does contain D* DBCS or graphic literals. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRITX 1 BIT D* Double-Byte Character Set D* (DBCS) Record Format Text D* Description D* 0 = The text description D* (TEXT) for the format D* does NOT contain DBCS D* data. D* 1 = The text description D* (TEXT) for the format D* does contain DBCS data. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRMEP 1 BIT D* Mapping Error Possible D* 0 = The format does NOT D* contain fields which may D* return data mapping D* errors. D* 1 = The format does contain D* fields which may return D* data mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRDRV 1 BIT D* Derived Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields derived D* from fields in the D* physical file the logical D* file is based on, or from D* fields in this logical D* file (CONCAT or SST). D* 1 = The format does contain D* fields derived from D* fields in the physical D* file the logical file is D* based on, or from fields D* in this logical file D* (CONCAT or SST). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBDFRNI 1 BIT D* Neither or Input-Only Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which can D* be used neither for input D* nor output operations, D* nor does it contain D* fields which can be used D* for input operations D* only. D* 1 = The format does contain D* fields which can be used D* neither for input nor D* output operations, or it D* does contain fields which D* can be used for input D* operations only. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFRDFI 1 BIT D* Default Values D* (Physical files only) D* 0 = The format does NOT D* contain fields with D* default values (DFT). D* 1 = The format does contain D* fields with default D* values (DFT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFCATO 1 BIT D* Concatenated Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* 1 = The format does contain D* fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D** Format Flags ********************************************** DQDBTFLGS DS D* Format Flags D QDBBITS64 1 1 D* QDBR11304 1 BIT D* Reserved D* QDBFUCSD 1 BIT D* UCS-2 fields D* 0 = The format does NOT D* contain fields which are D* UCS-2. D* 1 = The format does contain D* fields which are UCS-2. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLNK 1 BIT D* Datalink fields. D* 0 = The format does NOT D* contain fields which are D* datalinks. D* 1 = The format does contain D* fields which are D* datalinks. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDUDT 1 BIT D* User Defined Type fields. D* 0 = The format does NOT D* contain fields which are D* UDTs. D* 1 = The format does contain D* fields which are UDTs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLOB 1 BIT D* Large Object fields. D* 0 = The format does NOT D* contain fields which are D* LOBs. D* 1 = The format does contain D* fields which are LOBs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFUTFD 1 BIT D* UTF-8 or UTF-16 fields. D* 0 = The format does NOT D* contain fields which are D* UTF-8 or UTF-16. D* 1 = The format does contain D* fields which are UTF-8 D* or UTF-16. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBR114 2 BITS D* Reserved D** Flags ***************************************************** DQDBQ15 DS D* Flags D QDBBITS16 1 1 D* QDBRSV65 1 BIT D* Reserved D* QDBFRVAR 1 BIT D* Variable Length Fields D* 0 = The format does NOT D* contain fields which are D* variable length (VARLEN). D* 1 = The format does contain D* fields which are variable D* length (VARLEN). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRGPH 1 BIT D* Graphic Fields D* 0 = The format does NOT D* contain graphic data D* fields. D* 1 = The format does contain D* graphic data fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRDTT 1 BIT D* Date, Time or Timestamp D* Fields. D* 0 = The format does NOT D* contain date, time or D* timestamp fields. D* 1 = The format does contain D* date, time or timestamp D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRNUL 1 BIT D* Null Capable Fields D* 0 = The format does NOT D* contain fields which D* allow the null value D* (ALWNULL). D* 1 = The format does contain D* fields which allow the D* null value (ALWNULL). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRSID 1 BIT D* Common Coded Character Set D* Identifier Flag D* 0 = NOT all character fields D* in the format use the D* same coded character set D* identifier (CCSID). D* 1 = All character fields in D* the format use the same D* coded character set D* identifier (CCSID). The D* actual CCSID can be found D* in variable Qddfrcid. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFESID 1 BIT D* Explicit Coded Character Set D* Identifier Flag D* 0 = NO coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, nor for any D* fields within the format. D* 1 = A coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, or for one or D* more fields within the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBRSV66 1 BIT D* Reserved D**************************************************************** D* Record Structure for QDBRTVFD FILD0200 format D**************************************************************** D**************************************************************** D* D* FMTD HEADER D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ41 DS D* Header information D* The FMTD starts here. D QDBBYRTN00 1 4B 0 D* Bytes Returned D* The length, in bytes, of the D* data returned. D QDBBYAVA00 5 8B 0 D* Bytes Available D* The total length, in bytes, D* of the format. D QDBRSV62 9 32 D* Reserved D* Record status flags D*QDBFFMTF 1 D QDBBITS42 33 33 D* QDBFRITY00 1 BIT D* QDBFRILT00 1 BIT D* QDBFRITX00 1 BIT D* QDBFRMEP00 1 BIT D* QDBFRDRV00 1 BIT D* QDBDFRNI00 1 BIT D* QDBFRDFI00 1 BIT D* QDBFCATO00 1 BIT D* Record format DBCS flags D QDBFXLTO 34 37B 0 D* Offset from start of FMTD D* header to the translate table D* specifications (Qddfxl). D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCAO 38 41B 0 D* OFFSET to the SELECTION D* specifications for CASE D* operators in this record D* format(Qddfcsl). This is only D* valid for query formats D* (DB) CREATE: N EXTRACT: N D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFDICO 42 45B 0 D* Offset from start of FMTD D* header to the IDDU/SQL D* dictionary format D* information (Qddfdic). D* (DB) CREATE : Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCID 46 47U 0 D* Common Coded Character Set D* Identifier. D* Note: Before using this D* field, you should check D* Qddfrsid, if it is zero, then D* NOT all character fields in D* the format use the same coded D* character set identifier D* (CCSID), and this field is D* not valid. D* 65535 = The format contains D* no character fields. D* nnnnn = All character fields D* in the format use D* this coded character D* set identifier D* (CCSID). D* (QQ) QUERY: Y D QDBFSRCD00 48 49U 0 D* Source File Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) specified for D* the character portion D* of the source file D* which contained the D* DDS used to create D* the format. (CCSID). D* This CCSID should be used for D* the Qddfdtxt field also. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRTCD 50 51U 0 D* Format Text Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the text D* description (TEXT) of D* the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRLCD 52 53U 0 D* Long Comment Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the D* information about the D* content and purpose D* of the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBRSV64 54 60 D* Reserved D*QDBTFLGS00 1 D QDBBITS65 61 61 D* QDBR11305 1 BIT D* QDBFUCSD00 1 BIT D* QDBFDLNK00 1 BIT D* QDBFDUDT00 1 BIT D* QDBFDLOB00 1 BIT D* QDBFUTFD00 1 BIT D* QDBR11400 2 BITS D* Format flags D*QDBDFLGS 1 D QDBBITS43 62 62 D* QDBRSV6500 1 BIT D* QDBFRVAR00 1 BIT D* QDBFRGPH00 1 BIT D* QDBFRDTT00 1 BIT D* QDBFRNUL00 1 BIT D* QDBFRSID00 1 BIT D* QDBFESID00 1 BIT D* QDBRSV6600 1 BIT D* Flags D QDBRSV67 63 66 D* Reserved D QDBFRLEN 67 70B 0 D* Record Length D* The sum of the lengths of all D* fields the format contains, D* excluding neither fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFNAME 71 80 D* Record Format Name D* The name associated with the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBDFSEQ 81 93 D* Level Identifier D* The modification level D* identifier of the format. It D* is used to verify the format D* has not been changed since D* compile time, if LVLCHK(*YES) D* is requested. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFTEXT 94 143 D* Text Description (TEXT) D* The text description of the D* format. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBLDNUM 144 145B 0 D* Number of Fields D* The number of fields in the D* format. There is one field D* header for each field. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBQIO 146 149B 0 D* Offset from start of Format D* header to the Identity column D* information (Qdb_Qddfidcl). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBRSV68 150 256 D* Reserved D*QDBFFLDX 257 257 D* D* Start of Field Definitions D* (varying length) D******************************************************************** D* FIELD HEADER DECLARATIONS D******************************************************************** D** Field Status Byte 1 ************************************** DQDBQ1 DS D* Field Status Byte 1 D* Field DBCS Status D QDBBITS17 1 1 D* QDBFFIAT 1 BIT D* Double-Byte Character Set D* (DBCS) Alternate Type Field D* 0 = The alternate type for D* the field does NOT D* contain DBCS data. D* 1 = The alternate type for D* the field does contain D* DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFITX 1 BIT D* Double-Byte Character Set D* (DBCS) Field Text Description D* 0 = The text description D* (TEXT) for the field does D* NOT contain DBCS data. D* 1 = The text description D* (TEXT) for the field does D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFICH 1 BIT D* Double-Byte Character Set D* (DBCS) Column Headings D* 0 = The column headings D* (COLHDG) for the field do D* NOT contain DBCS data. D* 1 = The column headings D* (COLHDG) for the field do D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFIVC 1 BIT D* Double-Byte Character Set D* (DBCS) Validity Checking D* Literals D* 0 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do NOT contain DBCS D* data. D* 1 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do contain DBCS D* data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFRND 1 BIT D* Rounding D* Rounding method for the D* field. Currently not D* supported through DDS. D* 0 = Truncate D* Insignificant decimal D* digits will be truncated. D* 1 = Round D* Insignificant decimal D* digits will be rounded to D* the nearest decimal D* digit. D* (QQ) QUERY: Y D* QDBFFCID 1 BIT D* Character Identifier Flag D* 0 = A character identifier D* (CHRID) was NOT D* specified. D* 1 = A character identifier D* (CHRID) was specified. D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBRSV69 2 BITS D* Reserved D** Field Status Byte 2 ************************************** DQDBQ201 DS D* Field Status Byte 2 D* Field Default Value and Null D* Value Allowed Indicator D* 00 = Not NULL with default D* 01 = Not NULL D* 10 = NULL capable D* 11 = Invalid D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D QDBBITS18 1 1 D* QDBFFNUL 1 BIT D* Allow Null Value (ALWNULL) D* 0 = The null value is NOT D* allowed for this field. D* 1 = The null value is allowed D* for this field. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFFDFT 1 BIT D* Column Default Value D* 0 = The column has a default D* value. D* 1 = The column does NOT have D* a default value. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFFVAR 1 BIT D* Variable Field D* 0 = The field is NOT a D* variable field. D* 1 = The field is a variable D* field for a query format. D* Qddffvarx has meaning. D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBRSV70 1 BIT D* Reserved D* QDBFFVLN 1 BIT D* Variable Length Field D* 0 = The field is NOT a D* variable length field. D* 1 = The field is a variable D* length field. D* (DB) CREATE: X EXTRACT: A D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBRSV7001 3 BITS D* Reserved D** Flags **************************************************** DQDBQ202 DS D* Flags D QDBBITS19 1 1 D* QDBFCORR 1 BIT D* Correlated Field D* 0 = This is NOT a correlated D* field. D* 1 = This is a correlated D* field. D* (QQ) QUERY: Y D* QDBFFRRN 1 BIT D* File Relative Record Number D* field. D* 0 - This is NOT a relative D* record number field. D* 1 - This is a relative record D* number field. D* (QQ) QUERY: Y D* QDBRSV71 5 BITS D* Reserved D* QDBFFMEP 1 BIT D* Mapping Errors Possible D* 0 = The field can NOT return D* data mapping errors. D* 1 = The field may return data D* mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D** Flags **************************************************** DQDBFFLGS DS D* These flags indicate the user D* specified value for the field D* at the time the format was D* created. These flags only D* apply to date, time, and D* timestamp fields. D* CAUTION: If the format has D* ever been shared, these flags D* may not be applicable to the D* file for which the API was D* called. D QDBBITS78 1 1 D* QDBQD03 1 BIT D* If on, DATFMT was defaulted. D* D* QDBQJ 1 BIT D* If on, DATFMT(*JOB) was D* specified. D* QDBQD04 1 BIT D* If on, DATSEP was defaulted. D* D* QDBQJ00 1 BIT D* If on, DATSEP(*JOB) was D* specified. D* QDBQD05 1 BIT D* If on, TIMFMT was defaulted. D* D* QDBQD06 1 BIT D* If on, TIMSEP was defaulted. D* D* QDBQJ01 1 BIT D* If on, TIMSEP(*JOB) was D* specified. D* QDBQSAA 1 BIT D* If on, SAA format was D* specified. D******************************************************************** D* Complex Object Field Flags D******************************************************************** D** Default Attributes *************************************** DQDBLAGCO DS D* Complex Objects D QDBBITS72 1 1 D* QDBRSV6400 3 BITS D* Reserved. D* QDBDFUCS 1 BIT D* UCS-2 field. D* 0 = The field is not a D* UCS-2 field. D* 1 = The field is a UCS-2 field. D* D* QDBDFUDT 1 BIT D* User Defined Type field. D* 0 = The field is not a UDT field. D* 1 = The field is a UDT field. D* D* QDBQIC 1 BIT D* Identity Column field. D* 0 = The field is not an D* Identity column. D* 1 = The field is an Identity D* column. D* QDBQRC 1 BIT D* ROWID Column field. D* 0 = The field is not a D* ROWID column. D* 1 = The field is a ROWID D* column. D* QDBDFUTF 1 BIT D* UTF-8 or UTF-16 field. D* 0 = The field is not a D* UTF-8 or UTF-16 field. D* 1 = The field is a UTF-8 or D* UTF-16 field. D******************************************************************** D* UCS-2 Field Values D******************************************************************** DQDBQ208 DS D* UCS-2 fields values. §AMA D QDBFDSPL 1 2U 0 D* Field-display-length: D* Used with a UCS-2 field when D* the CCSID keyword modifies D* the display length. §AMA D QDBBITS80 3 3 D* QDBFUCSP 1 BIT D* UCS2_conversion_flag: D* When referenced by a printer D* file,indicates whether UCS-2 D* characters are to be D* converted before printing. D* 1 = do not convert. D* §AMA D* QDBFUCSM 1 BIT D* Minimum-display-length-flag: D* When referenced by a display D* file. D* 1 = Qddfdspl contains the D* number of display D* positions allowed equal D* to the field length D* defined in the DDS. D* Example: 5G CCSID(13488). D* The Qddfdspl value is 5.§AMA D* QDBFUCSL 1 BIT D* Length-of-display-field_flag D* When referenced by a display D* file. D* 1 = the DDS for the field D* provided the allowed number D* of display positions. D* This number is in Qddfdspl. D* §AMA D* QDBQRCT 1 BIT D* Row Change D* Timestamp. D* 0 = This field/column is Not D* a Row Change Timestamp. D* 1 = This field/column is a Row D* Change Timestamp. D* QDBQHC 1 BIT D* Hidden Column. D* 0 = This field/column is Not D* a Hidden Column. D* 1 = This field/column is a D* Hidden Column. D* QDBR130 3 BITS D* Reserved. D QDBNCODE 4 5 D* Encoding scheme for field's D* CCSID. D* '0000'X = No encoding scheme. D* §AMA D QDBQRCTG 6 6 D* Row Change D* Timestamp GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D**************************************************************** D* D* FIELD HEADER D* D**************************************************************** D*This section is located immediately after the FMTD header D**************************************************************** DQDBQ42 DS D* Field Definition D* The definition for a field in D* format. There is a linked D* list of these field D* definitions, one for each D* field. The number of fields D* is stored in the variable D* Qddffldnum. D QDBFDEFL 1 4B 0 D* Length of Field D* The length of the entire D* field structure, including D* all sub-sections. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDI 5 34 D* Internal Field Name D* The name of the field in the D* logical format, if this is a D* logical format. If this is a D* physical format, this name is D* a duplicate of Qddfflde. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDE 35 64 D* External Field Name D* The name of the field in the D* physical format, if this is a D* physical format. If this is D* a logical format, this name D* is the name of the field in D* a physical format, on which D* this field is based. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFTYP 65 66 D* Data Type D* The data type of the field. D* X'0000' = BINARY . . . . . . D* X'0001' = FLOAT . . . . . . D* X'0002' = ZONED DECIMAL . . D* X'0003' = PACKED DECIMAL . . D* X'0004' = CHARACTER . . . . D* X'8004' = VAR CHARACTER . . D* X'0005' = GRAPHIC . . . . D* X'0006' = DBCS-CAPABLE . . . D* X'8005' = VAR GRAPHIC . . . D* X'8006' = VAR DBCS-CAPABLE . D* X'000B' = DATE . . . . . . . D* X'000C' = TIME . . . . . . . D* X'000D' = TIMESTAMP . . . . D* X'4004' = BLOB/CLOB . . . . D* X'4005' = DBCLOB . . . . . . D* X'4006' = CLOB-OPEN . . . . D* X'8044' = DATALINK-CHAR . . D* X'8046' = DATALINK-OPEN . . D* X'FFFF' = NULL . . . . . . . D* NULL is only valid D* for data base query D* formats. If NULL is D* specified, query D* will determine the D* type and attributes D* of the field from D* the based on fields D* if Qddffvar is off. D* If Qddffvar is on D* then the attributes D* are set from the D* variable's operand. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFIOB 67 67 D* Usage D* X'01' = Input-Only D* The field can be used D* for input operations D* only. D* X'02' = Output Only D* The field can be used D* for output operations D* only. D* X'03' = Both D* The field can be used D* for both input and D* output operations. D* X'04' = Neither D* The field can be used D* for neither input nor D* output operations. D* X'FF' = Unknown D* The usage is set D* appropriately during D* query processing. D* This value is only D* valid for query. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFOBO 68 71B 0 D* Output Buffer Offset D* The offset from the start of D* the output buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFIBO 72 75B 0 D* Input Buffer Offset D* The offset from the start of D* the input buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFLDB 76 77B 0 D* Length D* The length of the field. D* - For character fields, this D* is the number of D* characters. D* - For float fields: D* 4 = Single D* 8 = Double D* - For variable length fields, D* this is the maximum length D* the field can be, plus two D* for the length. D* - For date/time/timestamp D* fields, this is the length D* of the formatted data. So D* this may vary, depending on D* the format specified. D* - For graphic data fields, D* this is the number of D* bytes. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is X'FFFF'. D QDBFFLDD 78 79B 0 D* Number of Digits D* The number of digits in the D* field. D* - For numeric fields, this D* is the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFLDP 80 81B 0 D* Decimal Positions D* The number of decimal D* positions to the right of the D* decimal point. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFKBS 82 82 D* Keyboard Shift (REFSHIFT) D* The keyboard shift attribute D* of the field. D* 'X' = Alphabetic only D* 'A' = Alphameric shift D* 'N' = Numeric shift D* 'S' = Signed numeric D* 'Y' = Numeric only D* 'D' = Digits only D* 'M' = Numeric only character D* 'W' = Katakana D* 'H' = Hexadecimal D* 'I' = Inhibit keyboard entry D* 'J' = DBCS only D* 'E' = DBCS either D* 'O' = DBCS open D* 'B' = Binary character D* X'00' = No shift specified D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D*QDBQ100 1 D QDBBITS44 83 83 D* QDBFFIAT00 1 BIT D* QDBFFITX00 1 BIT D* QDBFFICH00 1 BIT D* QDBFFIVC00 1 BIT D* QDBFFRND00 1 BIT D* QDBFFCID00 1 BIT D* QDBRSV6900 2 BITS D* Field Status Byte 1 D QDBFJREF 84 85B 0 D* Join Reference (JREF) D* (Logical files only) D* For fields whose names are D* specified in more than one D* physical file, this value D* identifies which physical D* file contains the field. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file D* format, an error is D* signalled. This value is D* only allowed on a query D* format. D* n = The external field name D* is to be found in the D* file format referenced D* by using this value as a D* join reference index into D* the file list. D* (DB) CREATE: R EXTRACT: Y D* (DF) N D* (QQ) QUERY: R D*QDBQ203 1 D QDBBITS45 86 86 D* QDBFFNUL00 1 BIT D* QDBFFDFT00 1 BIT D* QDBFFVAR00 1 BIT D* QDBRSV7000 1 BIT D* QDBFFVLN00 1 BIT D* QDBRSV7002 3 BITS D* Field Status Byte 2 D*QDBQ204 1 D QDBBITS46 87 87 D* QDBFCORR00 1 BIT D* QDBFFRRN00 1 BIT D* QDBRSV7100 5 BITS D* QDBFFMEP00 1 BIT D* Flags D QDBFVARX 88 89B 0 D* Variable Field Index D* Index into the list of all D* variable field values for the D* query. D* (QQ) QUERY: Y D QDBRSV72 90 91 D* Reserved D QDBFLALC 92 93B 0 D* Allocated Length D* The number of bytes allocated D* for the field in the fixed D* portion of the file. D* or... D* Date/Time/Timestamp Length D* The number of bytes the D* based-on field for the date/ D* time/timestamp occupies. D* (QQ) QUERY: R, unless field D* type (Qddffldt) is x'FFFF' D QDBFDTTF 94 94 D* Date Format (DATFMT) D* The format of the date field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Format (TIMFMT) D* The format of the time field. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D* (QQ) QUERY: Y D QDBFDTTS 95 95 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D* (QQ) QUERY: Y D QDBFCSID 96 97U 0 D* Common Coded Character Set D* Identifier (CCSID) D* 00000 = The CCSID associated D* with the job is to be D* used for data D* translation. D* 65535 = No data translation D* is to be done. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for data translation. D* (QQ) QUERY: Y D QDBFTSID 98 99U 0 D* Text Description Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the text description. D* 65535 = The text description D* is not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* text description. D* (QQ) QUERY: Y D QDBFHSID 100 101U 0 D* Column Heading Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the column headings. D* 65535 = The column headings D* are not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* column headings. D* (QQ) QUERY: Y D QDBFLSID 102 103U 0 D* Long Comment Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the long comment. D* 65535 = The long comment is D* not to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* long comment. D* (QQ) QUERY: Y D QDBFLDUR 104 104 D* Labeled Duration D* The type of labeled duration D* this field defines. D* '00'X = The field is not a D* labeled duration. D* '0D'X = Year/Years. D* '0E'X = Month/Months. D* '0F'X = Day/Days. D* '10'X = Hour/Hours. D* '11'X = Minute/Minutes. D* '12'X = Second/Seconds. D* '13'X = Microsecond/ D* Microseconds. D* (QQ) QUERY: Y D*QDBFFLGS00 1 D QDBBITS79 105 105 D* QDBQD07 1 BIT D* QDBQJ02 1 BIT D* QDBQD08 1 BIT D* QDBQJ03 1 BIT D* QDBQD09 1 BIT D* QDBQD10 1 BIT D* QDBQJ04 1 BIT D* QDBQSAA00 1 BIT D* Flags. D QDBFWSID 106 107U 0 D* Edit Word Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the edit word. D* 65535 = The edit word is not D* to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* edot word. D* (QQ) QUERY: Y D QDBRSV6100 108 108 D* Reserved D QDBRSV6200 109 109 D* Reserved D QDBRSV6300 110 111U 0 D* Reserved. D*QDBLAGCO00 1 D QDBBITS73 112 112 D* QDBRSV6401 3 BITS D* QDBDFUCS00 1 BIT D* QDBDFUDT00 1 BIT D* QDBQIC00 1 BIT D* QDBQRC00 1 BIT D* QDBDFUTF00 1 BIT D* Complex Object flags. D*QDBQ209 6 D QDBFDSPL00 113 114U 0 D QDBBITS81 115 115 D* QDBFUCSP00 1 BIT D* QDBFUCSM00 1 BIT D* QDBFUCSL00 1 BIT D* QDBQRCT00 1 BIT D* QDBQHC00 1 BIT D* QDBR13000 3 BITS D QDBNCODE00 116 117 D QDBQRCTG00 118 118 D* UCS-2 field values. §AMA D QDBRSV74 119 180 D* Reserved §AMA D QDBFCPLX 181 184B 0 D* Offset from start of Field D* header to the Complex Object D* field information D* (Qdb_Qddffcpli). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBMAXL 185 188B 0 D* Maximum length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBPADL 189 190U 0 D* Pad length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFDICD 191 194B 0 D* Offset from start of Field D* header to IDDU/SQL dictionary D* field information (Qddfdicf) D* (QQ) QUERY: Y D QDBFDFTD 195 198B 0 D* Offset from start of Field D* header to default value D* description (Qddfdft) D* (QQ) QUERY: Y D QDBFDERD 199 202B 0 D* Offset from start of Field D* header to derived field D* description (or to the D* concatenated field description D* if its file is externally D* described) (Qddfderv) D* (QQ) QUERY: Y D QDBRSV75 203 208 D* Reserved D QDBFTXTD 209 212B 0 D* Offset from start of Field D* header to field text D* description (Qddfftxt) D* (QQ) QUERY: N D QDBR102 213 214 D* Reserved D QDBFREFD 215 218B 0 D* Offset from start of Field D* header to field reference D* information (Qddfrefi) D* (QQ) QUERY: N D QDBFEDTL 219 220B 0 D* Length of the edit code / D* edit word information for the D* field D* (QQ) QUERY: N D QDBFEDTD 221 224B 0 D* Offset from start of Field D* header to the edit code / D* edit word information D* (Qddfedcw) D* (QQ) QUERY: N D QDBRSV76 225 226 D* Reserved D QDBDFCHD 227 230B 0 D* Offset from start of Field D* header to the column heading D* information (Qddfcolh) D* (QQ) QUERY: N D QDBFVCKL 231 232B 0 D* Length of the validity D* checking data present for the D* field. D* (QQ) QUERY: N D QDBFVCKD 233 236B 0 D* Offset from start of Field D* header to the validity D* checking data (Qddfvchk) D* (QQ) QUERY: N D QDBFXALS 237 240B 0 D* Offset from start of Field D* header to alias name entry D* (QQ) QUERY: N D QDBFFPND 241 244B 0 D* Offset from start of Field D* header to the the field D* prompted numeric editing D* information (Qddfdfne) D* (QQ) QUERY: N D QDBRSV77 245 252 D* Reserved D*QDBDFVPX 253 253 D* D* START OF THE VARIABLE PORTION D* OF THE FIELD DESCRIPTION D* (varying length) D**************************************************************** D* D* Complex Object Field Type Information D* D**************************************************************** D*This section can be located with the offset Qddfcplx, which D*is located in the Field header section. D**************************************************************** DQDBFCPLI DS D* Field text D QDBFLENU 1 4B 0 D* If the field is a UDT, D* this length is the length D* of the UDT name. D QDBFNUDT 5 132 D* UDT name. D QDBFLUDT 133 142 D* UDT library name. D QDBDLINK 143 143 D* If the field is a datalink, D* this is the link control: D* N = No link control. D* Y = Link control. D QDBDINTE 144 144 D* If the field is a datalink, D* this is the link integrity: D* A = All under control. D* S = Selective control. D* This value is not D* supported yet. D QDBDRPER 145 146 D* If the field is a datalink, D* this is the read permisssion: D* FS = File system. D* DB = Database. D QDBDWPER 147 148 D* If the field is a datalink, D* this is the write D* permission: D* FS = File system. D* BL = Blocked. D QDBDRECO 149 149 D* If the field is a datalink, D* the database manager will D* recover the file: D* Y = Yes. This value is not D* supported yet. D* N = No. D QDBDUNLK 150 150 D* If the field is a datalink, D* the database manager will D* restore the file owner on D* an unlink, or delete the file D* when unlinking the file. D* R = Restore the owner. D* D = Delete the file. D QDBQ150 151 160 D* Reserved. D**************************************************************** D* D* IDENTITY Column/ROWID Field Information D* D**************************************************************** D*This section can be located with the offset Qddf_Identity_Off D*which is located in the Field header section. D**************************************************************** DQDBFIDCL DS D* IDENTITY column/ROWID info D* NOTE: Only D* Qddf_ROWID_Generate D* applies to ROWID columns. D QDBQIL 1 2B 0 D* Length of identity column/ D* ROWID information. D QDBQIOSW 3 18P 0 D* Qddf Id Orig Start With D* Identity Original START WITH D* value D QDBQICSW 19 34P 0 D* Qddf Id Curr Start With D* Identity Current START WITH D* value. (Changed using ALTER D* TABLE RESTART WITH.) D QDBQIIB 35 38B 0 D* Identity INCREMENT BY value. D QDBQIM 39 54P 0 D* Qddf Id Minimum D* Identity MINIMUM value. D QDBQIM00 55 70P 0 D* Qddf Id Maximum D* Identity MAXIMUM value. D QDBQIC01 71 71 D* Identity CYCLE indicator. D* 1 = Cycling will occur. D* 0 = Cycling will not occur. D QDBQIO00 72 72 D* Identity ORDER mode. D* 1 = Values are generated in D* order of request. D* 0 = Values do not need to be D* generated in order of D* request. D QDBQIG 73 73 D* Identity GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQICC 74 77U 0 D* Identity CACHE value D QDBQRG 78 78 D* ROWID GENERATE indicator D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQIR1 79 131 D* Reserved. D**************************************************************** D* D* FIELD TEXT D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddftxtd, which D*is located in the Field header section. D**************************************************************** DQDBQ43 DS D* Field text D QDBFFTXT 1 50 D* Text (TEXT) D* Text description of the D* field. D******************************************************************** D* REFERENCE INFORMATION DECLARATIONS D******************************************************************** D** Modification Flags *************************************** DQDBQ16 DS D* Modification Flags D QDBBITS20 1 1 D* QDBFDUPE 1 BIT D* Modifications D* 0 = The field has NOT been D* modified. D* 1 = The field has been D* modified. D* QDBFNMEC 1 BIT D* Name Modification D* 0 = The name of the field has D* NOT been modified. D* 1 = The name of the field has D* been modified. D* QDBFTYPC 1 BIT D* Data Type Modification D* 0 = The data type of the D* field has NOT been D* modified. D* 1 = The data type of the D* field has been modified. D* QDBFLENC 1 BIT D* Field Length Modification D* 0 = The length of the field D* has NOT been modified. D* 1 = The length of the field D* has been modified. D* QDBFDECC 1 BIT D* Precision Modification D* 0 = The precision of the D* field has NOT been D* modified. D* 1 = The precision of the D* field has been modified. D* QDBFEDTC 1 BIT D* Edit Information Modification D* 0 = The edit information of D* the field has NOT been D* modified. D* 1 = The edit information of D* the field has been D* modified. D* QDBDDFVC 1 BIT D* Validity Checking Information D* Modification D* 0 = The validity checking D* information of the field D* has NOT been modified. D* 1 = The validity checking D* information of the field D* has been modified. D* QDBFOTHR 1 BIT D* Other Modification D* 0 = Other information of the D* field has NOT been D* modified. D* 1 = Other information of the D* field has been modified. D**************************************************************** D* D* REFERENCE INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfrefd, which D*is located in the Field header section. D**************************************************************** DQDBQ44 DS D* Reference Information D*QDBFRCDE 1 D QDBBITS47 1 1 D* QDBFDUPE00 1 BIT D* QDBFNMEC00 1 BIT D* QDBFTYPC00 1 BIT D* QDBFLENC00 1 BIT D* QDBFDECC00 1 BIT D* QDBFEDTC00 1 BIT D* QDBDDFVC00 1 BIT D* QDBFOTHR00 1 BIT D* Modification Flags D QDBFRFIL 2 11 D* Referenced File Name D* The name of the file the D* field references. D QDBFRLIB 12 21 D* Referenced File Library D* The name of the library D* containing the file the field D* references. D QDBFRFMT 22 31 D* Referenced Record Format D* The name of the record format D* containing the field D* referenced. D QDBFRFLD 32 61 D* Referenced Field D* The name of the field D* referenced. D QDBRSV78 62 80 D* Reserved D******************************************************************** D* EDIT CODE DECLARATIONS D******************************************************************** D** Edit Code Information ************************************ DQDBQ17 DS D* Edit Code Information D QDBFECDE 1 1 D* Edit Code (EDTCDE) D* Edit code for the field when D* it is referred to later D* during display or printer D* file creation. D QDBFECDX 2 2 D* Floating Currency Symbol D* '*' = Asterisk Protection D* Asterisks are displayed D* to the left of D* significant digits. D* floating currency symbol = D* The symbol specified D* appears to the left of D* the first significant D* digit. D**************************************************************** D* D* EDIT CODE / EDIT WORD INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfedtd, which D*is located in the Field header section. D**************************************************************** DQDBQ45 DS D* Edit Information D*QDBFECDI 2 D QDBFECDE00 1 1 D QDBFECDX00 2 2 D* Edit Code Information D QDBRSV79 3 16 D* Reserved D*QDBDFEWD 17 17 D* D* Edit Word (EDTWRD) D* (varying length) The form in which the field D* values are to be displayed. D* Note: Before using this D* field, you should D* check Qddfecde, if it D* is not blank, then D* this field is not D* valid. The length of D* this field, if D* present, is included D* in Qddfedtl. D******************************************************************** D* NUMERIC EDIT DECLARATIONS D******************************************************************** D** Negative Sign Information ******************************** DQDBQNSI DS D* Negative Sign Information D QDBFDNSC 1 1 D* Display Negative Sign D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The negative sign D* character will be D* displayed for negative D* values. D* '2' = The negative sign D* character will NOT be D* displayed for negative D* values. D QDBFDNSL 2 7 D* Left Negative Sign Value D* The symbol to be displayed D* to the left of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDNSR 8 13 D* Right Negative Sign Value D* The symbol to be displayed D* to the right of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Currency Symbol Information ***************************** DQDBQCSI DS D* Currency Symbol Information D QDBFDCSY 1 1 D* Display Currency Symbol D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The currency symbol D* will be displayed. D* '2' = The currency symbol D* will NOT be displayed. D QDBFDCSL 2 7 D* Left Currency Symbol Value D* The symbol to be displayed D* to the left of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDCSR 8 13 D* Right Currency Symbol Value D* The symbol to be displayed D* to the right of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Leading Zero Information ********************************* DQDBQLZI DS D* Leading Zero Information D QDBFDRLZ 1 1 D* Replace Leading Zeros D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced. D* '2' = Leading zeros are NOT D* replaced. D QDBFDRLV 2 2 D* Leading Zero Replacement D* Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced with blanks. D* '2' = Leading zeros are D* replaced with asterisks. D* '3' = Leading zeros are D* replaced with blanks, D* and left currency D* symbol is shifted to D* the right. D QDBFDLZO 3 3 D* Single Leading Zero D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero is displayed to D* the left of the decimal D* point when there are no D* significant digits to D* the left of the decimal D* point. D* '2' = A zero is NOT displayed D* to the left of the D* decimal point when D* there are no D* significant digits to D* the left of the decimal D* point. D**************************************************************** D* D* FIELD PROMPTED NUMERIC EDITING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddffpnd, which D*is located in the Field header section. D**************************************************************** DQDBQ46 DS D* IDDU/SQL Dictionary Field D* Prompted Numeric Editing D* Information. D QDBRSV80 1 2 D* Reserved D QDBFDDTS 3 3 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* '00'X = This is not a date D* or time field. The D* numeric editing D* information should be D* used. D* '1' = The period separator D* is to be used. "." D* '2' = The slash separator D* is to be used. "/" D* '3' = The colon separator D* is to be used. ":" D* '4' = The dash separator D* is to be used. "-" D* '5' = The comma separator D* is to be used. "," D QDBFDDPC 4 4 D* Decimal Point Character D* The character to be used to D* separate decimal digits. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period decimal D* is to be used. "." D* '2' = The comma decimal D* is to be used. "," D* '3' = The colon decimal D* is to be used. ":" D* '4' = The dollar decimal D* is to be used. "$" D* '5' = No decimal is to be D* used. D QDBFDTSC 5 5 D* Thousands Separator Character D* The character to be used to D* group digits by threes. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period thousands D* is to be used. "." D* '2' = The comma thousands D* is to be used. "," D* '3' = The apostrophe D* thousands is to be D* used. "'" D* '4' = The blank thousands D* is to be used. " " D* '5' = No thousands is to be D* used. D*QDBQNSI00 13 D QDBFDNSC00 6 6 D QDBFDNSL00 7 12 D QDBFDNSR00 13 18 D* Negative Sign Information D*QDBQCSI00 13 D QDBFDCSY00 19 19 D QDBFDCSL00 20 25 D QDBFDCSR00 26 31 D* Currency Symbol Information D QDBFDPZV 32 32 D* Print Zero Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero value is D* displayed. D* '2' = A zero value is NOT D* displayed. D*QDBQLZI00 3 D QDBFDRLZ00 33 33 D QDBFDRLV00 34 34 D QDBFDLZO00 35 35 D* Leading Zero Information D QDBRSV81 36 64 D* Reserved D**************************************************************** D* D* COLUMN HEADING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfchd, which D*is located in the Field header section. D**************************************************************** DQDBQ47 DS D* Column Heading (COLHDG) D* Column headings used for this D* field when it is displayed D QDBQ101 1 20 D* Column Heading #1 D* The first column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ205 21 40 D* Column Heading #2 D* The second column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ3 41 60 D* Column Heading #3 D* The third column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D**************************************************************** D* D* VALIDITY CHECKING INFORMATION D* D**************************************************************** D*This section can be located with the offset Qddfvckd, which D*is located in the Field header section. D**************************************************************** DQDBQ48 DS D* Validity Checking Information D* (CHECK), (COMP), (RANGE), and D* (VALUES) D QDBCNUME 1 2B 0 D* Number of Validity Check D* Entries D QDBRSV82 3 16 D* Reserved D*QDBFVCEN 17 17 D* D* Validity Checking Entry Array D* (varying length) DQDBQ49 DS D* Validity Checking Entry D QDBFVCCD 1 1 D* DDSI Keyword Identifier D* '63'X = CHKMSGID D* '64'X = CHECK(ME) D* '66'X = CHECK(FE) D* '67'X = CHECK(MF) D* '71'X = RANGE D* '72'X = VALUES D* '73'X = COMP(GT) D* '74'X = COMP(GE) D* '75'X = COMP(EQ) D* '76'X = COMP(NE) D* '77'X = COMP(LE) D* '78'X = COMP(LT) D* '79'X = COMP(NL) D* '7A'X = COMP(NG) D* 'A0'X = CHECK(M10) D* 'A1'X = CHECK(M11) D* 'A2'X = CHECK(VN) D* 'A3'X = CHECK(AB) D* 'A5'X = CHECK(VNE) D* 'A6'X = CHECK(M10F) D* 'A7'X = CHECK(M11F) D QDBCNUMP 2 3B 0 D* Number of Parameters D QDBFVCEL00 4 5B 0 D* Length of This Validity Check D* Entry D QDBRSV83 6 16 D* Reserved. D*QDBFVCPM 17 17 D* D* Validity Checking Parameter D* Array (varying length) DQDBQ50 DS D* Validity Checking Parameter D QDBFVCPL 1 2B 0 D* Length of the Validity D* Checking Parameter Qddfvcpv D QDBRSV84 3 16 D* Reserved. D*QDBFVCPV 17 17 D* D* Validity Checking Parameter D* Value (varying length) D**************************************************************** D* D* ALIAS NAME STRUCTURE D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfxals, which D*is located in the Field header section. D**************************************************************** DQDBQ51 DS D* Alternative Name Information D* (ALIAS) D QDBFALSL 1 2B 0 D* Length of Alternative Name D* Qddfalsn D QDBRSV85 3 16 D* Reserved D*QDBFALSN 17 17 D* D* Alternative Name (ALIAS) D* An alternative name for the D* field. (varying length) D******************************************************************** D* DEFAULT VALUE DESCRIPTION DECLARATIONS D******************************************************************** D** Default Attributes *************************************** DQDBQ18 DS D* Default Attributes D QDBBITS21 1 1 D* QDBFDFIG 1 BIT D* DBCS or Graphic Default D* 0 = The default is NOT a DBCS D* or graphic literal. D* 1 = The default is a DBCS or D* graphic literal. D* QDBFDFHX 1 BIT D* Hex Default D* 0 = The default is NOT a D* hex literal. D* 1 = The default is a hex D* literal. D* QDBFNDFT 1 BIT D* Null Default D* 0 = The default is NOT null. D* 1 = The default is null. D* QDBRSV86 2 BITS D* Reserved D* QDBFDCUR 1 BIT D* Default is CURRENT_DATE, D* CURRENT_TIME or D* CURRENT_TIMESTAMP D* 0 = The default is NOT CURRENT D* 1 = The default is CURRENT. D* QDBR109 1 BIT D* Reserved D* QDBFDFTK 1 BIT D* DFT or DFTVAL Keyword D* 0 = The DFT keyword was D* specified. D* 1 = The DFTVAL keyword was D* specified. D**************************************************************** D* D* DEFAULT VALUE DESCRIPTION INFORMATION D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdftd, which D*is located in the Field header section. D**************************************************************** DQDBQ52 DS D* Default Information (DFT) or D* (DFTVAL) D QDBFDFTL 1 2B 0 D* Length of Default Information D* Qddfdft D*QDBFDFTA 1 D QDBBITS48 3 3 D* QDBFDFIG00 1 BIT D* QDBFDFHX00 1 BIT D* QDBFNDFT00 1 BIT D* QDBRSV8600 2 BITS D* QDBFDCUR00 1 BIT D* QDBR10900 1 BIT D* QDBFDFTK00 1 BIT D* Default Attributes D QDBRSV87 4 16 D* Reserved D*QDBFDFTV 17 17 D* D* Default (DFT) or (DFTVAL) D* The default value of the D* field. (varying length) D******************************************************************** D* IDDU/SQL DICTIONARY ADDITIONAL DECLARATIONS D******************************************************************** D** Field Definition Long Comment **************************** DQDBQ19 DS D* Field Definition Long Comment D QDBFDFCL 1 2B 0 D* Length of Field Definition D* Long Comment Qddfdfco D*QDBFDFCT 3 3 D* D* Field Definition Comment Text D* (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY ADDITIONAL FIELD INFORMATION. D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdicd, which D*is located in the Field header section. D**************************************************************** DQDBQ53 DS D* IDDU/SQL Dictionary D* Additional Field Information D QDBFDFCH 1 16 D* Reserved D*QDBFDFCO 3 D QDBFDFCL00 17 18B 0 D QDBFDFCT00 19 19 D* Field Definition Long Comment D******************************************************************** D* FORMAT FIELD FLAGS D******************************************************************** D** Field Attributes ************************************** DQDBQFLDF DS D* Field flags D QDBBITS84 1 1 D* QDBR504 2 BITS D* Reserved D* QDBFSIU01 1 BIT D* Derived field D* uses a user defined UDF D* indicator: D* 0 = The field does NOT use a D* user defined UDF. D* 1 = The field does use a D* user defined UDF. D* §APA D* QDBR505 5 BITS D* Reserved §APA D******************************************************************* D* D*These are type definitions which are needed for a UNION in the D*Header Section D* D******************************************************************* DQDBQ54 DS D* Field Operand Entry D QDBFDVON 1 30 D* Field Name D* The external name of the D* field. D QDBFDVJR 31 32B 0 D* Join Reference (JREF) D* Relative file number of the D* physical file containing the D* external field referenced. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file format, D* an error is signalled. D* n = The external field name D* is located in the file D* format referenced by D* using this value as a D* join reference index into D* the file list. D QDBQ102 33 34B 0 D* Starting Position D* The starting position in the D* external field, of the D* substring (SST) specified. D QDBQ206 35 36B 0 D* Ending Position D* The ending position in the D* external field, of the D* substring (SST) specified. D QDBDTNUM 37 38B 0 D* QDT from which this D* Only applicable for SQL D QDBR502 39 39 D* Reserved §APA D QDBR503 40 40 D* Reserved §APA D*QDBFLDF 1 D QDBBITS85 41 41 D* QDBR50400 2 BITS D* QDBFSIU02 1 BIT D* QDBR50500 5 BITS D* Field flags. §APA D QDBRSV89 42 58 D* Reserved §APC D******************************************************************** D* CONSTANT OPERAND DECLARATIONS D******************************************************************** D** Constant Attributes ************************************** DQDBQCA DS D* Constant Attributes D QDBBITS22 1 1 D* QDBFDVCI 1 BIT D* DBCS Constant D* 0 = This constant is NOT a D* DBCS - OPEN literal. D* 1 = This constant is a DBCS - D* OPEN literal. D* QDBRSV90 1 BIT D* Reserved D* QDBFDVCC 1 BIT D* Character Constant Type D* 0 = The constant is a quoted D* character string, D* bracketed by single D* quotes. Imbedded quotes D* are represented with two D* single quotes. D* 1 = The constant is an D* unquoted D* character string, NOT D* bracketed by single D* quotes. Imbedded quotes D* are represented with a D* single quote. D* QDBFDVAC 1 BIT D* Assume Character Constant D* 0 = The system will NOT D* assume this is a D* character constant. D* 1 = The system will assume D* this is a character D* constant. D* QDBFDVCO 1 BIT D* DBCS - ONLY Literal D* Note: Before using this D* field, you should D* check Qddfdvci, if it D* is not on, then this D* field is not valid. D* 0 = This constant is a DBCS - D* OPEN literal. D* 1 = This constant is a DBCS - D* ONLY literal. D* QDBFDVSR 1 BIT D* Special register D* 0 = This constant operand is D* not a special register. D* 1 = This constant operand is D* a special register, D* defined by Qddfdvrc D* QDBFDVNL 1 BIT D* Null Indicator D* 0 = This constant is NOT a D* null literal. D* 1 = This constant is a null D* literal. D* QDBRSV91 1 BIT D* Reserved D** Constant Flags ******************************************* DQDBQ20 DS D* Constant Flags D QDBBITS23 1 1 D* QDBRSV93 2 BITS D* Reserved D* QDBFGLIT 1 BIT D* If on, this indicates that D* this is a graphics literal. D* QDBRSV94 5 BITS D* Reserved D** Constant Operand Header ********************************** DQDBQ21 DS D* Constant Operand Header D QDBFDVOL 1 4B 0 D* Length of Constant Qddfdvov D*QDBQCA00 1 D QDBBITS24 5 5 D* QDBFDVCI00 1 BIT D* QDBRSV9000 1 BIT D* QDBFDVCC00 1 BIT D* QDBFDVAC00 1 BIT D* QDBFDVCO00 1 BIT D* QDBFDVSR00 1 BIT D* QDBFDVNL00 1 BIT D* QDBRSV9100 1 BIT D* Constant Attributes D QDBFDVRC 6 6 D* Special register constant D* Defined by special register D* constants, can only be D* specified if Qddfdvsr is on. D QDBFDVFT 7 7 D* Date Constant Format (DATFMT) D* The format of the date D* constant. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Constant Format (TIMFMT) D* The format of the time D* constant. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSP 8 8 D* Date Constant Separator D* (DATSEP) D* The separator character to be D* used with the date constant. D* or... D* Time Constant Separator D* (TIMSEP) D* The separator character to be D* used with the time constant. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBRSV92 9 10 D* Reserved D QDBFDVCD 11 12U 0 D* Constant Coded Character Set D* Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* constant. D*QDBFCFLG 1 D QDBBITS25 13 13 D* QDBRSV9300 2 BITS D* QDBFGLIT00 1 BIT D* QDBRSV9400 5 BITS D* Constant Flags D QDBRSV95 14 42 D* Reserved DQDBQ55 DS D* Constant Operand Entry D*QDBFDVOH 42 D QDBFDVOL00 1 4B 0 D* QDBQCA01 1 D QDBBITS49 5 5 D* QDBFDVCI03 1 BIT D* QDBRSV9003 1 BIT D* QDBFDVCC03 1 BIT D* QDBFDVAC03 1 BIT D* QDBFDVCO03 1 BIT D* QDBFDVSR03 1 BIT D* QDBFDVNL03 1 BIT D* QDBRSV9103 1 BIT D QDBFDVRC00 6 6 D QDBFDVFT00 7 7 D QDBFDVSP00 8 8 D QDBRSV9200 9 10 D QDBFDVCD00 11 12U 0 D* QDBFCFLG00 1 D QDBBITS50 13 13 D* QDBRSV9303 2 BITS D* QDBFGLIT03 1 BIT D* QDBRSV9403 5 BITS D QDBRSV9500 14 42 D* Constant Operand Header D*QDBFDVOV 43 43 D* D* Derived Constant D* The external form of the D* constant. (varying length) D******************************************************************** D* OPERATOR ENTRY DECLARATIONS D******************************************************************** D** Translation Table Index ********************************** DQDBQ22 DS D* Translation Table Index D* Index into the translation D* table. D* or D* Index into the case selection D* specification D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '0B'X or '3E'X, D* then this field is not D* valid. D QDBDTFMT 1 1 D* Operator Date Format Index D QDBDTSEP 2 2 D* Operator Date Separator Index D** Operator attributes ************************************** DQDBQOA DS D* Operator attributes D QDBBITS26 1 1 D* QDBRSV96 1 BIT D* Reserved D* QDBVDTTM 1 BIT D* Operator Date Format and D* Separator Source D* 1 = Qddfdvdtfmt & Qddfdvdtsep D* are to be used as the D* date format & separator D* for the CHAR operator. D* Similarly, Qddfdvfm & D* Qddfdvsa are to be used D* as the time format & D* separator for the CHAR D* operator. D* 0 = Process only Qddfdvfm & D* Qddfdvsa as the format & D* separator for the CHAR D* operator. D* QDBR113 1 BIT D* Reserved D* QDBFDVDF 1 BIT D* May only be set for D* group by operators. D* 1 = Do not include duplicate D* field values in group by D* operation. D* 0 = Include duplicate field D* values in group by D* operation. D* QDBRSV97 1 BIT D* Reserved D* QDBQC01 1 BIT D* Number of characters D* operator option. D* 0 = Result is computed for D* this operator based on D* number of bytes. D* 1 = Result is computed for D* this operator based on D* number of characters. D* Applicable only when Qddfdvop D* is POSSTR '41'X, LENGTH '23'X D* or SUBSTRING '27'X and either D* of the arguments is IGC. D* QDBR115 2 BITS D* Reserved DQDBQ56 DS D* Operator Entry D QDBFDVOP 1 1 D* Derived Operator D* The type of operation to be D* performed on the operand/s. D* D* Associciated with each value, D* is a list of what operand D* attributes are valid with D* that value. D* N = ALL NUMERIC OPERANDS AR D* C = CHARACTER OPERANDS ARE D* Z = ZONED OPERANDS ARE VAL D* L = DATE OPERANDS ARE VALI D* T = TIME OPERANDS ARE VALI D* S = TIMESTAMP OPERANDS ARE D* LD = DATE DURATION OPERAND D* TD = TIME DURATION OPERAND D* SD = TIMESTAMP DURATION OP D* A = ANY OPERANDS ARE VALID D* G = GRAPHIC OPERANDS ARE VALID D* D* - Operators that require D* three operands: D* '27'X = SUBSTRING (C) D* - Operators that require D* two operands: D* '01'X = CONCATENATION (C) D* '04'X = ADDITION (N,L,LD,T, D* TD,S,SD) D* '05'X = SUBTRACTION (N,L,LD, D* T,TD,S,SD) D* '06'X = MULTIPLICATION (N) D* '07'X = DIVISION (N) D* '08'X = MINIMUM (A) D* '09'X = MAXIMUM (A) D* '1A'X = X TO THE Y POWER (N) D* '1B'X = BINARY OR (C) D* '1C'X = BINARY XOR (C) D* '1D'X = BINARY AND (C) D* '24'X = STRIP LEADING (C) D* '25'X = STRIP TRAILING(C) D* '26'X = STRIP BOTH (C) D* '35'X = COMPUTE (N,L,LD, D* T,TD,S,SD) D* '80'X = REMAINDER (N) D* '41'X = POSSTR(C,G) D* - Operators that require D* one operand: D* '02'X = MAP (A) D* '03'X = DIRECT MAP D* '0A'X = ABSOLUTE VALUE (N) D* '0B'X = TRANSLATE (C) D* '0C'X = NATURAL LOGARITHM (N) D* '0D'X = EXPONENTIAL (N) D* '0E'X = SINE (N) D* '0F'X = COSINE (N) D* '10'X = TANGENT (N) D* '11'X = COTANGENT (N) D* '12'X = ARC SINE (N) D* '13'X = ARC COSINE (N) D* '14'X = ARC TANGENT (N) D* '15'X = HYPERBOLIC SINE (N) D* '16'X = HYPERBOLIC COSINE (N) D* '17'X = HYPERBOLIC TANGENT(N) D* '18'X = HYPERBOLIC ARCTAN (N) D* '19'X = SQUARE ROOT (N) D* '1E'X = BINARY NOT (C) D* '1F'X = NEGATION (N) D* '23'X = LENGTH (A) D* '29'X = YEAR (L,S,LD,SD) D* '2A'X = MONTH (L,S,LD,SD) D* '2B'X = DAY (L,S,LD,SD) D* '2C'X = DAYS (S,L,N,C) D* '2D'X = HOUR (T,S,TD,SD) D* '2E'X = MINUTE (T,S,TD,SD) D* '2F'X = SECOND (T,S,TD,SD) D* '30'X = MICROSECOND (S,SD) D* '31'X = DATE (S,N) D* '32'X = TIME (S,T,C) D* '34'X = HEX (A) D* '36'X = Test-translate CSID D* '37'X = TRANSLATE (Monocase) D* '3C'X = NODENUMBER D* '3D'X = CAST (A) D* '47'X = PARTITION D* '48'X = NODENAME D* '83'X = LOG (BASE 10) (N) D* '84'X = ANTI LOG (BASE 10)(N) D* '85'X = DIGITS (N) D* '86'X = CHAR (L,T,S) D* '8F'X = VARGRAPHIC (C,G) D* '90'X = VARCHAR (C,G) D* '91'X = FLOOR (N) D* - Label duration operators: D* '87'X = Year D* '88'X = Month D* '89'X = Day D* '8A'X = Hour D* '8B'X = Minute D* '8C'X = Second D* '8D'X = Microsecond D* - Operators that require D* two to many operands: D* '28'X = NULL VALUES (A) D* Returns the first D* non-null value. D* '3E'X = CASE Expression (A) D* - Operators that require D* one to many operands: D* '3A'X = HASH D* - Operators that require D* one, or two, operands: D* '33'X = TIMESTAMP D* - Group by operators: D* All require one operand, D* except COUNT, which D* requires no operands. D* 'A1'X = COUNT D* 'A3'X = SUM (N) D* 'A4'X = MINIMUM (A) D* 'A5'X = MAXIMUM (A) D* 'B0'X = AVERAGE (N) D* 'B1'X = STANDARD DEVIATION(N) D* 'B2'X = VARIANCE (N) D*QDBVXNUM 2 D QDBDTFMT00 2 2 D QDBDTSEP00 3 3 D* Translation Table Index D QDBFDVFM 4 4 D* Operator Date Format (DATFMT) D* The format of the date D* operator. D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '31'X, then D* this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Operator Time Format (TIMFMT) D* The format of the time D* operator. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSA 5 5 D* Operator Date Separator D* (DATSEP) D* The separator character to be D* used with the date operator. D* or... D* Operator Time Separator D* (TIMSEP) D* The separator character to be D* used with the time operator. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBFDVNO 6 7B 0 D* Number of Operands D*QDBQOA00 1 D QDBBITS51 8 8 D* QDBRSV9600 1 BIT D* QDBVDTTM00 1 BIT D* QDBR11302 1 BIT D* QDBFDVDF02 1 BIT D* QDBRSV9700 1 BIT D* QDBQC02 1 BIT D* QDBR11500 2 BITS D* Operator attributes D QDBVED98 9 10 D* Reserved D QDBQD00 11 11 D* Specifies the character to use D* for the decimal point, D* if the operation is a CAST and D* one of the operands is numeric D* and the other is character. D* Also used for CHAR operator D* when the first operand is D* a decimal expression. Only D* used for these two operator D* types. D QDBQFD 12 15U 0 D* Offset to function referenced D* information. D* 0 - Reference information not D* given. Use derived operator D* specified above. D* <>0 - function reference section D* is provided. It is located at D* this offset from the beginning D* of this derived entry. D QDBR10100 16 26 D* Reserved D**************************************************************** D* D*This is the function reference information. If the derived D*operator section specifies that a function reference is D*specified, this structure defines that reference. D* D**************************************************************** DQDBQD02 DS D* Defines the structure of a D* function reference. D QDBR120 1 20 D* Reserved D QDBQL 21 30 D* Library name of function D* - x'40's D* Use path to determine D* function. D* - name D* search only specified D* library for function D QDBQN00 31 32U 0 D* Length of function name D QDBQF 33 160 D* Function name D**************************************************************** D* D* DERIVED FIELD DESCRIPTION INFORMATION D* D*The derived field structure is a stack of operators and D*operands in Reverse Polish Notation. For example: D* D* A + B would be: D* D* A B + D* D* ((A * B) + 14)/(X - Y) would be: D* D* A B * 14 + X Y - / D* D*NOTE: Numeric operands and character operands can not be D*mixed in one derived field description. If numeric operands D*are specified, the resulting field attributes must be D*numeric. If character operands are specified, the resulting D*field attributes must be character or DBCS. Character and D*DBCS only fields cannot be mixed in one derived field D*description. D* D*Substringing DBCS fields will be allowed, although the data D*will be treated as character data, i.e. there is no true D*Double-Byte substring support. This applies to query formats D*only. D* D* (QQ) QUERY: Y D**************************************************************** D*This section can be located with the offset Qddfderd, which D*is located in the Field header section. D**************************************************************** DQDBQ57 DS D* Derived Field Information D QDBFDVTL 1 4B 0 D* Length of Derived Field D* Information Qddfderv D QDBVNUME 5 6B 0 D* Number of Derived Field D* Entries. Zero indicates it is D* a concatenated field. D QDBFDVOT 7 10B 0 D* Offset from start of Derived D* field header to derived field D* text description (or to the D* concatenated field text D* description) (Qddfdvtx). D QDBRSV88 11 16 D* Reserved D*QDBFDVEN 17 17 D* D* Derived Field Entry Array D* (varying length) DQDBQ58 DS D* Derived Field Entry D QDBFDVLN 1 4B 0 D* Length of Derived Field Entry D* Qddfdvst D QDBFDTYP 5 6B 0 D* Derived Field Entry Type D* 0 = Field Operand D* 1 = Constant Operand D* 2 = Operator D QDBDFDVT 7 64 D* Field Operand, Constant D* Operand, or Operator Entry D* QDDFDVOFU REDEFINES QDDFDV D QDBFDVON00 7 36 D QDBFDVJR00 37 38B 0 D QDBQ103 39 40B 0 D QDBQ207 41 42B 0 D QDBDTNUM00 43 44B 0 D QDBR50200 45 45 D QDBR50300 46 46 D* QDBFLDF00 1 D QDBBITS86 47 47 D* QDBR50401 2 BITS D* QDBFSIU03 1 BIT D* QDBR50501 5 BITS D QDBRSV8900 48 64 D* Field Operand Entry D* QDDFDVOCU REDEFINES QDDFDV D* QDBFDVOH00 42 D QDBFDVOL01 7 10B 0 D* QDBQCA02 1 D QDBBITS61 11 11 D* QDBFDVCI04 1 BIT D* QDBRSV9004 1 BIT D* QDBFDVCC04 1 BIT D* QDBFDVAC04 1 BIT D* QDBFDVCO04 1 BIT D* QDBFDVSR04 1 BIT D* QDBFDVNL04 1 BIT D* QDBRSV9104 1 BIT D QDBFDVRC01 12 12 D QDBFDVFT01 13 13 D QDBFDVSP01 14 14 D QDBRSV9201 15 16 D QDBFDVCD01 17 18U 0 D* QDBFCFLG01 1 D QDBBITS62 19 19 D* QDBRSV9304 2 BITS D* QDBFGLIT04 1 BIT D* QDBRSV9404 5 BITS D QDBRSV9501 20 48 D QDBFDVOV00 49 49 D* Constant Operand Entry D* QDDFDVOU REDEFINES QDDFDV D QDBFDVOP00 7 7 D* QDBVXNUM00 2 D QDBDTFMT01 8 8 D QDBDTSEP01 9 9 D QDBFDVFM00 10 10 D QDBFDVSA00 11 11 D QDBFDVNO00 12 13B 0 D* QDBQOA01 1 D QDBBITS54 14 14 D* QDBRSV9604 1 BIT D* QDBVDTTM04 1 BIT D* QDBR11303 1 BIT D* QDBFDVDF03 1 BIT D* QDBRSV9704 1 BIT D* QDBQC03 1 BIT D* QDBR11501 2 BITS D QDBVED9800 15 16 D QDBQD01 17 17 D QDBQFD00 18 21U 0 D QDBR10101 22 32 D* Operator Entry D**************************************************************** D* D* DERIVED FIELD TEXT DESCRIPTION D* D**************************************************************** D*This section can be located with the offset Qddfdvot, which D*is located in the Derived field header section. D**************************************************************** DQDBQ59 DS D* Derived Field Text D* Information D* Text description of the D* derived field. D QDBFDVLT 1 2B 0 D* Length of Derived Field Text D* information or concatenated D* field text information. D* (Qddfdvtx) D*QDBFDTXT 3 3 D* D* Derived Field Text D* Description (varying length) D* or concatenated field text D* description. D******************************************************************** D* TRANSLATION TABLE DECLARATIONS D******************************************************************** D** Translation Table Array ********************************** DQDBQ23 DS D* Translation Table Array D QDBFXTNM 1 10 D* Translation Table Name D QDBFXTLN 11 20 D* Translation Table Library D QDBFXCID 21 22U 0 D* Translation Table Constant D* Coded Character Set D* Identifier D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* translation table. D QDBRSV99 23 32 D* Reserved D QDBFXTBL 33 288 D* Translation Table D**************************************************************** D* D* TRANSLATE TABLE SPECIFICATION. D* D**************************************************************** D*This section can be located with the offset Qddfxlto, which D*is located in the FMTD header section. D**************************************************************** DQDBQ60 DS D* Translation Table Information D QDBXLNUM 1 2B 0 D* Number of Elements In The D* Translation Table Array D*QDBFXARR 288 D QDBFXTNM00 3 12 D QDBFXTLN00 13 22 D QDBFXCID00 23 24U 0 D QDBRSV9900 25 34 D QDBFXTBL00 35 290 D* Translation Table Array D************************************************************** D* D*This is the CASE Selection specification table. If this D*specification exists it will be found after all the field D*definitions using offset Qddfrcao. D* D************************************************************** DQDBDFCSL DS D* This structure contains the D* CASE Selection specification D* table information D QDBCSNUM 1 2B 0 D* Number of selection D* specifications. D QDBDFCLN 3 6B 0 D* Length of this table plus the D* the length of all selection D* specifications D QDBERVED06 7 16 D* Reserved D QDBDFCAO 17 412B 0 DIM(00099) D* Offset to the selection D* specifications. Offset is from D* the beginning of Qdb_Qddfcsl. D* For the selection specs D* see QDBQS_T in QQQQRY D******************************************************************** D* IDDU DICTIONARY DECLARATIONS D******************************************************************** D** Format Definition Long *********************************** DQDBQ24 DS D* Format Definition Long D* Comment Information D QDBFDILT 1 2B 0 D* Length of Format Definition D* Long Comment Information D* Qddfdilt D*QDBFDITX 3 3 D* D* Format Definition Long D* Comment (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY FORMAT INFORMATION. D* D**************************************************************** D*This section can be located with the offset Qddfdico, which D*is located in the FMTD header section. D**************************************************************** DQDBQ61 DS D* IDDU/SQL Dictionary Record D* Format Information D QDBR100 1 32 D* Reserved D*QDBFDICM 3 D QDBFDILT00 33 34B 0 D QDBFDITX00 35 35 D* Format Definition Long D******************************************************************** D* Record Structure for QDBRTVFD FILD0300 format D******************************************************************** D******************************************************************** D* D*Note: Each file may contain multiple record format and each D* format may contain multiple key fields D******************************************************************** D******************************************************************** D*The following structure contains record format information and D*can appears multiple times depending on the number of record D*formats specified for the request file D******************************************************************** DQDBQ62 DS D* Record Key Information D QDBRN 1 10 D* Record Name D QDBRSV101 11 12 D* Reserved D QDBNBROK 13 14B 0 D* Number of Keys D QDBRSV201 15 28 D* Reserved D QDBKIO 29 32B 0 D* Key Information Offset D******************************************************************** D*The following structure provides file level information for the D*request file D******************************************************************** DQDBQ63 DS D* File level information D QDBBR 1 4B 0 D* Bytes Returned D QDBBA 5 8B 0 D* Bytes Available D QDBMKL 9 10B 0 D* Maximum Key Length D QDBKC 11 12B 0 D* Key Count D QDBERVED01 13 22 D* Reserved D QDBFC01 23 24B 0 D* Formats Counts D QDBRKI 32 DIM(00032) D QDBRN00 10 OVERLAY(QDBRKI:00001) D QDBRSV102 2 OVERLAY(QDBRKI:00011) D QDBNBROK00 4B 0 OVERLAY(QDBRKI:00013) D QDBRSV202 14 OVERLAY(QDBRKI:00015) D QDBKIO00 9B 0 OVERLAY(QDBRKI:00029) D* Record Key Information D******************************************************************** D*The following structure maps to the returned key_attr data to D*provide field attributes information D******************************************************************** DQDBQ64 DS D* Qdb Qdbwhkattr D QDBBITS55 1 1 D* QDBNDING 1 BIT D* 0 = the key field is an D* ascending sequence key D* 1 = The key field is a D* decending sequence key D* QDBMERIC 2 BITS D* B'00' = The numberic key field D* will sequence as a D* string of unsigned D* binary data. D* B'01' = The numeric key field D* will ignore the sign of D* the field and sequence D* as absolute value data D* B'10' = The numeric key field D* will consider the signs D* of the field and D* sequence as signed D* value data. D* QDBERVED02 1 BIT D* Reserved D* QDBAC 1 BIT D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field. D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating sequence D* table, then this field is NOT D* applicable. D* QDBFZ 1 BIT D* 0 = The zone portion of the key D* field will NOT be zeroed. D* 1 = The zone portion of the key D* field will be zeroed so D* that only the digit portions D* (farthest right 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBFD 1 BIT D* 0 = The digit portion of the key D* field will NOT be zeroed. D* 1 = The digit portion of the key D* field will be zeroed so D* that only the zone portions D* (farthest left 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBSF 1 BIT D* 0 = The key statement field name D* is an internal record format D* name. D* 1 = The key statement field name D* is an external record format D* name. D******************************************************************** D*The following structure maps to the additional key field D*attributes. D******************************************************************** DQDBQ104 DS D* Qdb Qdbwhkatt1 D QDBBITS66 1 1 D* QDBNV00 1 BIT D* Allow Null Value (ALWNULL) D* 0 = the null value is NOT D* allowed for this field. D* 1 = the null value is allowed D* for this field. D* QDBANE 1 BIT D* Alternative Name Indicator D* 0 = the key field does not have D* an alternative name. D* 1 = the key field has an D* alternative name. This D* will be 1 even if the length D* of the alternative name is D* greater than 30. §AHA D* QDBERVED04 6 BITS D* Reserved. §AHC D******************************************************************** D*The following structure provides key field information for each D*key field in a record format. This structure can appear multiple D*times depending on the number of key fields defined in the D*associated record format D******************************************************************** DQDBQ65 DS D* Qdb Qdbwhkey D QDBIFN 1 10 D* Internal Field Name D QDBEFN 11 20 D* External Field Name D QDBDT01 21 22B 0 D* The data type of the field D* X'0000' = BINARY D* X'0001' = FLOAT D* X'0002' = ZONED DECIMAL D* X'0003' = PACKED DECIMAL D* X'0004' = CHARACTER D* X'8004' = VAR CHARACTER D* X'0005' = GRAPHIC D* X'8005' = VAR GRAPHIC D* X'0006' = DBCS CAPABLE D* X'8006' = VAR DBCS-CAPABLE D* X'000B' = DATE D* X'000C' = TIME D* X'000D' = TIMESTAMP D QDBFL 23 24B 0 D* Field Length D QDBNBROD 25 26B 0 D* Number of Digits D* - For numeric fields, this is D* the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (This field is applicable only D* to numeric and graphic fields) D* D QDBDP 27 28B 0 D* Decimal Position D*QDBKA 1 D QDBBITS56 29 29 D* QDBNDING00 1 BIT D* QDBMERIC00 2 BITS D* QDBERVED03 1 BIT D* QDBAC00 1 BIT D* QDBFZ00 1 BIT D* QDBFD00 1 BIT D* QDBSF00 1 BIT D* Key Attributes D QDBANL 30 31B 0 D* Alternate Name Length D QDBAN 32 61 D* Alternate Name D QDBRSV103 62 62 D* Reserved D*QDBW1 1 D QDBBITS67 63 63 D* QDBNV01 1 BIT D* QDBANE00 1 BIT D* QDBERVED05 6 BITS D* Additional Key Attributes D QDBRSV203 64 64 D* Reserved D******************************************************************** D* Record Structure for QDBRTVFD FILD0400 format D******************************************************************** D* ----------------------------------------------- D* ! ! D* ! TRIGGER SPACE HEADER ! D* ! fixed length ! D* ! ! D* ! Total # of trigger entries ! D* ! ! D* +---! Offset to first trigger entry ! D* ! ! ! D* ! ! # of SQL Trigger entries ! D* ! ! # of System entries ! D* ! ! # of INSERT/BEFORE Trigger entries ! D* ! ! # of INSERT/AFTER Trigger entries ! D* ! ! # of DELETE/BEFORE Trigger entries ! D* ! ! # of DELETE/AFTER Trigger entries ! D* ! ! # of UPDATE/BEFORE Trigger entries ! D* ! ! # of UPDATE/AFTER Trigger entries ! D* ! ! # of READ/AFTER Trigger entries ! D* ! ! # of INSERT/INSTEADOF Trigger entries ! D* ! ! # of DELETE/INSTEADOF Trigger entries ! D* ! ! # of UPDATE/INSTEADOF Trigger entries ! D* ! ! ! D* +-->!---------------------------------------------! D* ! Trigger Entry # 1 ! D* !---------------------------------------------! D* ! Trigger Entry # 2 ! D* !---------------------------------------------! D* ! . ! D* ! . ! D* ! . ! D* !---------------------------------------------! D* ! Trigger Entry # n ! D* ----------------------------------------------- D******************************************************************* DQDBQH DS D* Qdb Qdbftrg Head D* Trigger Header Structure §ADA D QDBQBRTN 1 4U 0 D* Qdb Qdbftrg Bytes Returned D* Bytes Returned §ADA D QDBQBA 5 8U 0 D* Qdb Qdbftrg Bytes Avail D* Bytes Available §ADA D QDBQRSV1 9 60 D* Qdb Qdbftrg Reserved1 D* Reserved. §ADA D QDBQNBRT 61 64U 0 D* Qdb Qdbftrg Num Trgs D* Number of trigger definitions. D* §ADA D QDBQRSV2 65 72 D* Qdb Qdbftrg Reserved2 D* Reserved. §ADA D QDBQOEN1 73 76U 0 D* Qdb Qdbftrg Off Ent Num1 D* Offset to first entry. §ADA D QDBQOIG 77 80U 0 D* Qdb Qdbftrg Off Ins Grp D* Offset to the beginning of D* the insert group. D* 0 => Either no INSERT D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQOUG 81 84U 0 D* Qdb Qdbftrg Off Upd Grp D* Offset to the beginning of D* the update group. D* 0 => Either no UPDATE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQODG 85 88U 0 D* Qdb Qdbftrg Off Del Grp D* Offset to the beginning of D* the delete group. D* 0 => Either no DELETE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQORG 89 92U 0 D* Qdb Qdbftrg Off Read Grp D* Offset to the beginning of D* the read group. D* 0 => Either no READ D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. §ADA D* D QDBQR36 93 120 D* Qdb Qdbftrg Reserved36 D* Reserved. §ADA D QDBQNST 121 124U 0 D* Qdb Qdbftrg Num Sql Trgs D* Number of SQL Triggers §ADA D QDBQNNT 125 128U 0 D* Qdb Qdbftrg Num Ntv Trgs D* Number of system Triggers §ADA D QDBQNIT 129 132U 0 D* Qdb Qdbftrg Num Insb Trg D* Number of Insert/Before D* triggers §ADA D QDBQNIT00 133 136U 0 D* Qdb Qdbftrg Num Insa Trg D* Number of Insert/After D* triggers §ADA D QDBQNDT 137 140U 0 D* Qdb Qdbftrg Num Delb Trg D* Number of Delete/Before D* triggers §ADA D QDBQNDT00 141 144U 0 D* Qdb Qdbftrg Num Dela Trg D* Number of Delete/After D* triggers §ADA D QDBQNUT 145 148U 0 D* Qdb Qdbftrg Num Updb Trg D* Number of Update/Before D* triggers §ADA D QDBQNUT00 149 152U 0 D* Qdb Qdbftrg Num Upda Trg D* Number of Update/After D* triggers §ADA D QDBQNRT 153 156U 0 D* Qdb Qdbftrg Num Reada Trg D* Number of Read/After D* triggers §ADA D QDBQNIT01 157 160U 0 D* Qdb Qdbftrg Num Insi Trg D* Number of Insert/Instead OF D* triggers §0DA D QDBQNDT01 161 164U 0 D* Qdb Qdbftrg Num Deli Trg D* Number of Delete/Instead OF D* triggers §0DA D QDBQNUT01 165 168U 0 D* Qdb Qdbftrg Num Updi Trg D* Number of Update/Instead OF D* triggers §0DA D QDBQRSV3 169 704 D* Qdb Qdbftrg Reserved3 D* Reserved §0DC D******************************************************************** D*The following structure provides header information for the D*trigger definition. It can appear multiple times depending on D*the number of triggers defined for the file D******************************************************************** D* Trigger Entry - Variable Length D* ----------------------------------------------- D* ! ! D* ! TRIGGER DEFINITION HEADER - Fixed Length ! D* ! ! D* ! Total length of this trigger definition. ! D* ! This length plus the offset to this ! D* ! trigger definition header will get ! D* ! addressability to the next trigger ! D* ! definition. ! D* ! ! D* ! Length of the trigger definition header. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Trigger attributes ! D* ! - TYPE - System or SQL ! D* ! - ORIENTATION - Column, Row, Statement ! D* ! - TIME - Before/After ! D* ! - EVENT - Insert/Update/Delete/Read ! D* ! - STATE - Enabled/Disabled ! D* ! ! D* ! Trigger program name and library ! D* ! ! D* ! Offsets to appended trigger areas for ! D* ! this trigger definition. These offsets ! D* ! are relative to the beginning of this ! D* ! trigger definition header. ! D* ! - Trigger name area ! D* ! - SQL Path area ! D* ! - List of Update Columns ! D* ! - List of WHEN Referenced Columns ! D* ! - List of BODY Referenced Columns ! D* ! - List of Dependent Objects area ! D* ! - Transition area ! D* ! - SQL Trigger STMT area ! D* ! - Trigger Text ! D* ! ! D* ! NOTE: A SYSTEM TRIGGER will have a ! D* ! trigger header and a ! D* ! trigger name area. The text section ! D* ! can only be added via the COMMENT ! D* ! ON SQL statement and is therefore ! D* ! optional. All other sections are ! D* ! not applicable to a system trigger. ! D* ! ! D* ! An SQL TRIGGER may have all of the ! D* ! above structures with the following ! D* ! restrictions/dependencies: ! D* ! 1 - The trigger definition header, ! D* ! the trigger name area, the SQL ! D* ! path, and the SQL trigger STMT ! D* ! are all required. ! D* ! 2 - Only an SQL trigger with an ! D* ! Update event will have a list of ! D* ! update columns. ! D* ! 3 - The list of WHEN columns, the ! D* ! list of BODY columns, the list ! D* ! of dependent objects, and the ! D* ! transition area are optional. ! D* ! More correctly, they are ! D* ! dependent on if there is any ! D* ! of that type of information to ! D* ! be included in the trigger ! D* ! definition entry. ! D* ! 4 - The text section can only be ! D* ! added via the COMMENT ON SQL ! D* ! statement and is therefore ! D* ! optional. ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! TRIGGER NAME AREA - Fixed Length ! D* ! ! D* ! Length of the TRIGGER NAME AREA. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Library name ! D* ! Trigger name - fixed length ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! SQL PATH AREA - Variable Length ! D* ! ! D* ! Length of the SQL PATH Area. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! LIST OF UPDATE COLUMNS AREA - Var Length ! D* ! This is the list of the columns specified ! D* ! for an Update event trigger. ! D* ! ! D* ! Length of the LIST OF UPDATE COLUMNS Area. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Number of Columns in List ! D* ! Array of Column names ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! LIST OF WHEN COLUMNS AREA ! D* ! Variable length. ! D* ! This is the list of the columns in the ! D* ! WHEN portion of the CREATE TRIGGER ! D* ! statement. ! D* ! ! D* ! Length of the LIST OF WHEN COLUMNS area ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Number of Columns in WHEN List ! D* ! Array of WHEN Column names ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! LIST OF BODY COLUMNS AREA ! D* ! Variable length. ! D* ! This is the list of the columns in the ! D* ! BODY portion of the CREATE TRIGGER ! D* ! statement. ! D* ! ! D* ! Length of the LIST OF BODY COLUMNS area ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Number of Columns in BODY List ! D* ! Array of BODY Column names ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! LIST OF DEPENDENT OBJECTS AREA - Var Length ! D* ! ! D* ! NOTE: This is not the actual list but a ! D* ! set of offsets into the SQL CREATE ! D* ! TRIGGER STMT that will position one ! D* ! to a dependent object. ! D* ! ! D* ! Length of the LIST of DEP OBJs Area. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Number of objects in List ! D* ! Array of Object information ! D* ! - Offsets to dependent object ! D* ! - Type of object (table, UDT, UDF, etc) ! D* ! - Attributes (eg library qualified) ! D* ! ! D* ! NOTE: All offsets are relative to the ! D* ! beginning of the CREATE TRIGGER ! D* ! string located in the TRIGGER SQL ! D* ! STMT AREA. ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! TRANSITION AREA - Variable Length ! D* ! ! D* ! This area contains the old/new correlation ! D* ! names and the old/new transition ! D* ! table names that can be used by the action ! D* ! to reference the affected rows. ! D* ! ! D* ! Length of the TRANSITION Area. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Old Correlation variable name ! D* ! New Correlation variable name ! D* ! Old Transition Table name ! D* ! New Transition Table name ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! SQL TRIGGER STMT AREA - Variable Length ! D* ! ! D* ! Length of the SQL TRIGGER STMT Area. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Length of the SQL CREATE TRIGGER STMT ! D* ! Length of the SQL WHEN CLAUSE ! D* ! Offset to the SQL WHEN CLAUSE relative to ! D* ! the start of the SQL CREATE TRIGGER STMT ! D* ! Length of the SQL TRIGGER BODY ! D* ! Offset to the SQL TRIGGER BODY relative to ! D* ! the start of the SQL CREATE TRIGGER STMT ! D* ! SQL CREATE TRIGGER STMT ! D* ! ! D* !---------------------------------------------! D* ! ! D* ! SQL TRIGGER TEXT AREA - Variable Length ! D* ! ! D* ! Length of the SQL TRIGGER TEXT Area. ! D* ! This length plus the offset to this ! D* ! substructure will get addressability to ! D* ! the next substructure in this trigger ! D* ! definition. ! D* ! ! D* ! Length of the SQL TEXT ! D* ! SQL TRIGGER TEXT ! D* ! ! D* ! NOTE: The text for a trigger can only be ! D* ! added via the COMMENT ON Statement. ! D* ! ! D* ----------------------------------------------- D* D* D******************************************************************* D******************************************************************** D*This section can be located using offset Qdb_qdbftrg_off_ent_#1 D******************************************************************** DQDBQDH DS D* Qdb Qdbftrg Def Head D* Trigger definition header D* §ADA D QDBQRSV4 1 20 D* Qdb Qdbftrg Reserved4 D* Reserved. §ADA D QDBQDL 21 24U 0 D* Qdb Qdbftrg Def Len D* Length of the trigger D* definition entry. D* This includes all structures. D* NOTE: This length will also D* include any padding needed D* to get a length divisable by D* 16. This is done in order to D* get the next trigger D* definition entry on a 16 byte D* boundary. D* D* §ADA D QDBQHL 25 28U 0 D* Qdb Qdbftrg Head Len D* Length of the trigger D* definition header - D* Qdb_qdbftrg_def_head §ADA D QDBQRSV5 29 80 D* Qdb Qdbftrg Reserved5 D* Reserved §ADA D QDBQDP00 81 90 D* Qdb Qdbftrg Def Pgm D* Trigger program name §ADA D QDBQDL00 91 100 D* Qdb Qdbftrg Def Lib D* Trigger program library §ADA D QDBQRSV6 101 104 D* Qdb Qdbftrg Reserved6 D* Reserved §ADA D QDBQDON 105 108U 0 D* Qdb Qdbftrg Def Ord Num D* Trigger ordinal number. §ADA D QDBQDS 109 109 D* Qdb Qdbftrg Def State D* Trigger state. §ADA D* 'E' = Enabled D* 'D' = Disabled D* Value restricted to enabled. D* Disabled is not yet supported. D* D QDBQDO 110 110 D* Qdb Qdbftrg Def Operative D* Trigger is operative. §ADA D* 'O' = Operative Trigger. D* 'I' = Inoperative Trigger. D* D* An Operative trigger indicates D* the trigger can be fired. D* An Inoperative trigger cannot D* be fired. D* D QDBQDT 111 111 D* Qdb Qdbftrg Def Type D* Trigger type D* 'N' = Native/System (added D* using ADDPFTRG) D* 'S' = SQL (added using CREATE D* TRIGGER) §ADA D QDBQDM 112 112 D* Qdb Qdbftrg Def Mode D* Trigger mode. §ADA D* Used only when the trigger D* type QDBFTRG_DEF_TYPE is set D* to an SQL trigger. D* The mode is used to determine D* the I/O model used during D* the trigger program D* execution. D* '00'X = Not applicable. D* '01'X = DB2 SQL. D* '02'X = DB2 Row. D QDBQDO00 113 113 D* Qdb Qdbftrg Def Orient D* Trigger orientation D* 'R' = Row trigger D* 'C' = Column trigger §ADA D QDBQDT00 114 114 D* Qdb Qdbftrg Def Time D* Trigger time D* '1' = After D* '2' = Before §ADA D* '3' = Instead Of D QDBQDE 115 115 D* Qdb Qdbftrg Def Event D* Trigger event D* '1' = Insert D* '2' = Delete D* '3' = Update D* '4' = Read §ADA D QDBQRSV7 116 160 D* Qdb Qdbftrg Reserved7 D* Reserved §ADA D QDBQDOTN 161 164U 0 D* Qdb Qdbftrg Def Off Trg Name D* Offset to the trigger name D* structure. §ADA D QDBQRSV8 165 168U 0 D* Qdb Qdbftrg Reserved8 D* Reserved. §ADA D QDBQDOSP 169 172U 0 D* Qdb Qdbftrg Def Off Sql Path D* Offset to the SQL path. §ADA D QDBQDOUC 173 176U 0 D* Qdb Qdbftrg Def Off Upd Cols D* Offset to the update columns D* structure. §ADA D QDBQDOWC 177 180U 0 D* Qdb Qdbftrg Def Off When Col D* Offset to the structure D* containing the list of D* columns referenced in the D* WHEN condition. §ADA D QDBQDOBC 181 184U 0 D* Qdb Qdbftrg Def Off Body Col D* Offset to the structure D* containing the list of D* columns referenced in the D* trigger body. §ADA D QDBQDODO 185 188U 0 D* Qdb Qdbftrg Def Off Dep Objs D* Offset to the structure D* containing the list of D* dependent objects referenced D* in the trigger body. §ADA D QDBQDOT 189 192U 0 D* Qdb Qdbftrg Def Off Transiti D* Offset to the structure D* containing the transition D* tables. §ADA D QDBQDOTS 193 196U 0 D* Qdb Qdbftrg Def Off Trg Stmt D* Offset to the structure D* containing the CREATE TRIGGER D* statement. §ADA D QDBQDOTL 197 200U 0 D* Qdb Qdbftrg Def Off Trg Long D* Offset to the structure D* containing the trigger long D* comment area. The long D* comment can only be added D* via the COMMENT ON statement. D* 0 => No Trigger Long Comment. D* §ADA D QDBQRSV9 201 264 D* Qdb Qdbftrg Reserved9 D* Reserved §ADA D QDBQDU 265 265 D* Qdb Qdbftrg Def Updcond D* Trigger update condition. For D* system/native triggers only. D* This field is only valid for D* UPDATE event. This field will D* be ignored for INSERT or D* DELETE or READ events. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. §ADA D QDBQDAR 266 266 D* Qdb Qdbftrg Def Allow Repchg D* Allow repeated change. D* '00'X = *NO (not allowed) D* '01'X = *YES (allows change) D* §ADA D QDBQDT01 267 267 D* Qdb Qdbftrg Def Threadsafe D* Threadsafe indicator. D* X'00' = *UNKNOWN (Threadsafe D* status is not known) D* X'01' = *NO (Not threadsafe) D* X'10' = *YES (Threadsafe) D* §ADA D QDBQDM00 268 268 D* Qdb Qdbftrg Def Multijob D* Multithreaded Job Action D* Indicator D* X'00' = *SYSVAL (default) D* X'01' = *MSG (Run, diagnostic) D* X'10' = *NORUN (Escape) D* X'11' = *RUN (Run, no message) D* §ADA D QDBQDOT00 269 269 D* Qdb Qdbftrg Def Old Tvar D* Old transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only §ADA D QDBQDNT 270 270 D* Qdb Qdbftrg Def New Tvar D* New transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only §ADA D QDBQDOT01 271 271 D* Qdb Qdbftrg Def Old Ttable D* Old transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only §ADA D QDBQDNT00 272 272 D* Qdb Qdbftrg Def New Ttable D* New transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only §ADA D QDBQDSR 273 273 D* Qdb Qdbftrg Def Self Ref D* Indicates if this trigger is D* self-referencing. That is, D* did the user explicitly D* specify this file's name in D* the trigger body. D* X'00' => Not self-referencing D* X'01' => Self-referencing D* §ADA D QDBQDCT 274 286 D* Qdb Qdbftrg Def Crt Ts D* Trigger creation timestamp D* §ADA D QDBQDCU 287 296 D* Qdb Qdbftrg Def Crt User D* User profile that created the D* trigger §ADA D QDBQDPO 297 306 D* Qdb Qdbftrg Def Pgm Owner D* User profile that owns the D* trigger program §ADA D* For SQL triggers only D QDBQDTC 307 310U 0 D* Qdb Qdbftrg Def Trg Ccsid D* CCSID that the trigger D* statement was created with. D* §ADA D QDBQR34 311 311 D* Qdb Qdbftrg Reserved34 D* Reserved. §ADA D QDBQDMT 312 312 D* Qdb Qdbftrg Def Mod Tvar D* Indicates if the trigger D* contains a SET statement that D* modifies the new correlation D* variable. D* X'00' = No D* X'01' = Yes D* For SQL Before Update triggers D* only. §ADA D QDBQR10 313 464 D* Qdb Qdbftrg Reserved10 D* Reserved §ADA D******************************************************************** D*The following structure maps the trigger name area D******************************************************************** DQDBQNA DS D* Qdb Qdbftrg name area D QDBQR11 1 20 D* Qdb Qdbftrg Reserved11 D* Reserved. §ADA D QDBQNATL 21 24U 0 D* Qdb Qdbftrg Name Area Tot Le D* Total length of the trigger D* name area. §ADA D QDBQNLL 25 28U 0 D* Qdb Qdbftrg Name Lib Len D* Length of the trigger library D* name. §ADA D QDBQNL 29 32U 0 D* Qdb Qdbftrg Name Len D* Length of the trigger §ADA D* name. D QDBQNS 33 33 D* Qdb Qdbftrg Name Sysgen D* Trigger name generated by D* the system. D* X'00' => User GENed name. D* X'01' => Originally, user D* GENed name but D* collision occured D* and system Re-GENed D* the name. D* X'02' => System GENed name. D* §ADA D QDBQND 34 34 D* Qdb Qdbftrg Name Delim D* Trigger name is a delimited D* name. If a delimited name, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* §ADA D QDBQLD 35 35 D* Qdb Qdbftrg Lib Delim D* Trigger library is a delimited D* name. If delimited, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* §ADA D QDBQNT 36 36 D* Qdb Qdbftrg Name Type D* Trigger naming convention. D* X'00' => System naming. D* X'01' => SQL naming. §ADA D QDBQR12 37 94 D* Qdb Qdbftrg Reserved12 D* Reserved §ADA D QDBQNQ 95 362 D* Qdb Qdbftrg Name Qual D* Qualified trigger name. D* The trigger name and library D* are in 2 parts. D* The first part contains the D* trigger library name (10 D* characters). D* The second part contains the D* trigger name (258 characters). D* Qdb_Qdbftrg_Name_Len contains D* the length of the trigger D* name. D* D* The trigger name may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Name_Delim D* indicates whether it is D* delimited. If it is D* delimited, the the name in D* this field does contain D* double quotes. D* D* The trigger library may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Lib_Delim D* indicates whether it is D* delimited. §ADA D******************************************************************** D*The following structure maps the SQL path structure D******************************************************************** DQDBQPA DS D* Qdb Qdbftrg Path Area D QDBQR13 1 20 D* Qdb Qdbftrg Reserved13 D* Reserved. §ADA D QDBQPTL 21 24U 0 D* Qdb Qdbftrg Path Tot Len D* Length of the trigger path D* area. §ADA D QDBQPL 25 28U 0 D* Qdb Qdbftrg Path Len D* Length of the path structure. D* §ADA D QDBQR14 29 64 D* Qdb Qdbftrg Reserved14 D* Reserved §ADA D*QDBQP 65 65 D* D* SQL Path (varying length). D* §ADA D******************************************************************* D* D*List of Update Columns D* D*This is the list of columns specified for an Update trigger. D*The columns in this list must be present in the file's record D*format. The list will contain both the short and long column D*names. D* D*A seperate structure will be used to reference the column D*names since the long name can be variable length. D* D*NOTE: Each column entry name is unique. There will not be any D* duplicate name entries. D* D******************************************************************* D******************************************************************* D*The following structure maps the UPDATE columns list entry D******************************************************************* DQDBFQULE DS D* Qdbf Qdbftrg Updc List Ent D QDBQULL 1 4U 0 D* Qdb Qdbftrg Updc Le Len D* List Entry Length. D* Addressability to this entry D* plus this length gets D* addressability to the next D* column list entry. §ADA D* D QDBQULSN 5 14 D* Qdb Qdbftrg Updc Le Short Na D* Short name of the column. D* §ADA D QDBQULSD 15 15 D* Qdb Qdbftrg Updc Le Short De D* Short name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQULLD 16 16 D* Qdb Qdbftrg Updc Le Long Del D* Long name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQULLS 17 17 D* Qdb Qdbftrg Updc Le Long Sam D* Short name and long name are D* the same. D* X'00' => Names are different. D* X'01' => Names are the same. D* §ADA D QDBQULLL 18 21U 0 D* Qdb Qdbftrg Updc Le Long Len D* Length of the long name - D* qdbfTRG_UPDC_LE_LONG_NAME D* §ADA D QDBQR17 22 48 D* Qdb Qdbftrg Reserved17 D* Reserved §ADA D*QDBQULLN 49 49 D* Qdb Qdbftrg Updc Le Long Nam D* D* Long name of the column D* (varying length). D* §ADA D* D******************************************************************** D*The following structure maps the UPDATE columns structure D******************************************************************** DQDBQUA DS D* Qdb Qdbftrg Updc Area D QDBQR15 1 20 D* Qdb Qdbftrg Reserved15 D* Reserved. §ADA D QDBQUTL 21 24U 0 D* Qdb Qdbftrg Updc Tot Len D* Length of the update columns D* area. §ADA D QDBQUNC 25 28U 0 D* Qdb Qdbftrg Updc Num Cols D* Number of columns in the list. D* §ADA D QDBQR16 29 80 D* Qdb Qdbftrg Reserved16 D* Reserved §ADA D*QDBQULS 81 81 D* Qdb Qdbftrg Updc List Struc D* D* Update column list structure D* (varying length). §ADA D******************************************************************** D*List of WHEN Reference Columns D* D*This is the list of the columns in the WHEN portion of the D*CREATE TRIGGER statement. Actually, the name is NOT part of the D*list. Rather, there is an offset to the column name in the WHEN D*statement of the expanded CREATE TRIGGER string. D* D*Each WHEN column entry consists of a set of offsets into the D*CREATE TRIGGER expanded string. The following is an example D*of the offsets. D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* SQL will generate correlation variables X and Y. D* D* If the user codes the following: D* D* CREATE TRIGGER ... D* AFTER INSERT ON T1 ... D* WHEN(COL1 = COL2) ... D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* AFTER INSERT ON LIB1.T1 X ... D* WHEN(X.COL1 = X.COL2) ... D* D* The correlation variable X is used to qualify the D* column names with the library and file. The table in D* the expanded string are qualified with the library D* name. D* D* The list entries will have offsets into the expanded D* CREATE TRIGGER string. D* D* --------------------- D* ! WHEN entry 1 ! D* ! Offset to col ----!--------------+ D* ! Offset to file ---!--------+ ! D*+------! Offset to lib ! ! ! D*! !-------------------! ! ! D*! ! WHEN entry 2 ! ! ! D*! ! Offset to col ----!--------!-----!--------+ D*! ! Offset to file ---!----+ ! ! ! D*! +--! Offset to lib ! ! ! ! ! D*! ! --------------------- ! ! ! ! D*! ! ! ! ! ! D*! ! ! ! ! ! D*+-->+---------------+ +------+<--+ ! ! D* ! ! ! ! D*CREATE TRIGGER string V V V V D*---------------------------------------------------------------- D*! ... AFTER INSERT ON LIB1.T1 X ... WHEN(X.COL1 = X.COL2) ... ! D*---------------------------------------------------------------- D* D*NOTE: The list of WHEN columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the WHEN columns array entry D******************************************************************** DQDBQWA DS D* Qdb Qdbftrg When Array D QDBQWCO 1 4U 0 D* Qdb Qdbftrg When Col Off D* WHEN column name offset into D* the WHEN portion of the CREATE D* TRIGGER statement. §ADA D QDBQWCL 5 8U 0 D* Qdb Qdbftrg When Col Len D* WHEN column name length. §ADA D QDBQWFO 9 12U 0 D* Qdb Qdbftrg When File Off D* Offset to the column's file D* name. §ADA D QDBQWFL 13 16U 0 D* Qdb Qdbftrg When File Len D* Length of the column's file D* name in the trigger string. D* §ADA D QDBQWLO 17 20U 0 D* Qdb Qdbftrg When Lib Off D* Offset to the column's file D* library name. §ADA D QDBQWLL 21 24U 0 D* Qdb Qdbftrg When Lib Len D* Length of the column's file D* library name. §ADA D QDBQW1E 25 25 D* Qdb Qdbftrg When 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. §ADA D QDBQWTF 26 26 D* Qdb Qdbftrg When This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* §ADA D QDBQWCL00 27 27 D* Qdb Qdbftrg When Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQWCD 28 28 D* Qdb Qdbftrg When Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQWFL00 29 29 D* Qdb Qdbftrg When File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQWFD 30 30 D* Qdb Qdbftrg When File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQWLL00 31 31 D* Qdb Qdbftrg When Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQWLD 32 32 D* Qdb Qdbftrg When Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQR20 33 64 D* Qdb Qdbftrg Reserved20 D* Reserved §ADA D******************************************************************** D*The following structure maps the WHEN columns structure D******************************************************************** DQDBQWA00 DS D* Qdb Qdbftrg When Area D QDBQR18 1 20 D* Qdb Qdbftrg Reserved18 D* Reserved. §ADA D QDBQWTL 21 24U 0 D* Qdb Qdbftrg When Tot Len D* Length of the WHEN D* referenced columns area. §ADA D QDBQWNC 25 28U 0 D* Qdb Qdbftrg When Num Cols D* Number of columns in the list. D* §ADA D QDBQWSR 29 29 D* Qdb Qdbftrg When Self Ref D* Indicates columns in the D* WHEN list belong to this file. D* That is, this is a self- D* referencing dependency. D* X'00' => All self-referencing. D* All columns belong D* to the ON table. D* X'01' => Self-referencing. D* Some of the columns D* belong to the ON D* table. D* X'02' => Not self-referencing. D* None of the columns D* belong to the ON D* table. D* D QDBQR19 30 80 D* Qdb Qdbftrg Reserved19 D* Reserved §ADA D*QDBQWA01 64 D* Qdb Qdbftrg When Array D QDBQWCO00 81 84U 0 D* Qdb Qdbftrg When Col Off D QDBQWCL01 85 88U 0 D* Qdb Qdbftrg When Col Len D QDBQWFO00 89 92U 0 D* Qdb Qdbftrg When File Off D QDBQWFL01 93 96U 0 D* Qdb Qdbftrg When File Len D QDBQWLO00 97 100U 0 D* Qdb Qdbftrg When Lib Off D QDBQWLL01 101 104U 0 D* Qdb Qdbftrg When Lib Len D QDBQW1E00 105 105 D* Qdb Qdbftrg When 1st Entry D QDBQWTF00 106 106 D* Qdb Qdbftrg When This File D QDBQWCL02 107 107 D* Qdb Qdbftrg When Col Long D QDBQWCD00 108 108 D* Qdb Qdbftrg When Col Del D QDBQWFL02 109 109 D* Qdb Qdbftrg When File Long D QDBQWFD00 110 110 D* Qdb Qdbftrg When File Del D QDBQWLL02 111 111 D* Qdb Qdbftrg When Lib Long D QDBQWLD00 112 112 D* Qdb Qdbftrg When Lib Del D QDBQR2000 113 144 D* Qdb Qdbftrg Reserved20 D* WHEN column list array. §ADA D******************************************************************** D*The following structure maps the BODY columns structure D* D*List of Columns referenced in the BODY D* D*This is the list of the columns in the BODY portion of the D*CREATE TRIGGER statement. D* D*The columns in this list may be in this file or another file. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* column name in the BODY. D* D* See the WHEN columns prologue for an example of how D* column entry offsets are tied to the CREATE TRIGGER string. D* D*NOTE: The list of BODY columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the BODY column array entry D******************************************************************** DQDBQBA00 DS D* Qdb Qdbftrg Body Array D* Individual BODY Column Entry. D* Note: This structure does D* not contain the name of a D* column in the trigger body, D* but an offest into the D* trigger body where the D* column is referenced. D* Each entry is 64 bytes long. D* §ADA D QDBQBCO 1 4U 0 D* Qdb Qdbftrg Body Col Off D* BODY Column Name offset into D* the BODY portion of the D* CREATE TRIGGER statement. §ADA D QDBQBCL 5 8U 0 D* Qdb Qdbftrg Body Col Len D* Length of the column name in D* the trigger string. §ADA D QDBQBFO 9 12U 0 D* Qdb Qdbftrg Body File Off D* Offset to the column's file D* name. §ADA D QDBQBFL 13 16U 0 D* Qdb Qdbftrg Body File Len D* Length of the column's file D* name in the trigger string. D* §ADA D QDBQBLO 17 20U 0 D* Qdb Qdbftrg Body Lib Off D* Offset to the column's library D* name. §ADA D QDBQBLL 21 24U 0 D* Qdb Qdbftrg Body Lib Len D* Length of the column's library D* name in the trigger string. D* §ADA D QDBQB1E 25 25 D* Qdb Qdbftrg Body 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. §ADA D QDBQBTF 26 26 D* Qdb Qdbftrg Body This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* §ADA D QDBQBCL00 27 27 D* Qdb Qdbftrg Body Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQBCD 28 28 D* Qdb Qdbftrg Body Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQBFL00 29 29 D* Qdb Qdbftrg Body File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQBFD 30 30 D* Qdb Qdbftrg Body File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQBLL00 31 31 D* Qdb Qdbftrg Body Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQBLD 32 32 D* Qdb Qdbftrg Body Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQR23 33 64 D* Qdb Qdbftrg Reserved23 D* Reserved area-future use. §ADA D******************************************************************** D*The following structure maps the BODY columns structure D******************************************************************** DQDBQBA01 DS D* Qdb Qdbftrg Body Area D QDBQR21 1 20 D* Qdb Qdbftrg Reserved21 D* Reserved. §ADA D QDBQBTL 21 24U 0 D* Qdb Qdbftrg Body Tot Len D* Total length of the list of D* WHEN reference columns D* substructure D* Qdb_qdbftrg_body_area. §ADA D QDBQBNC 25 28U 0 D* Qdb Qdbftrg Body Num Cols D* Number of columns in the list. D* 0 = No columns in the list. D* §ADA D QDBQBSR 29 29 D* Qdb Qdbftrg Body Self Ref D* Indicates columns in the D* BODY list belong to this file. D* That is, this is a self- D* referencing dependency. §ADA D* X'00' => All self-referencing. D* X'01' => Some self-referencing D* X'10' => Not self-referencing. D QDBQR22 30 80 D* Qdb Qdbftrg Reserved22 D* Reserved. §ADA D*QDBQBA02 64 D* Qdb Qdbftrg Body Array D QDBQBCO00 81 84U 0 D* Qdb Qdbftrg Body Col Off D QDBQBCL01 85 88U 0 D* Qdb Qdbftrg Body Col Len D QDBQBFO00 89 92U 0 D* Qdb Qdbftrg Body File Off D QDBQBFL01 93 96U 0 D* Qdb Qdbftrg Body File Len D QDBQBLO00 97 100U 0 D* Qdb Qdbftrg Body Lib Off D QDBQBLL01 101 104U 0 D* Qdb Qdbftrg Body Lib Len D QDBQB1E00 105 105 D* Qdb Qdbftrg Body 1st Entry D QDBQBTF00 106 106 D* Qdb Qdbftrg Body This File D QDBQBCL02 107 107 D* Qdb Qdbftrg Body Col Long D QDBQBCD00 108 108 D* Qdb Qdbftrg Body Col Del D QDBQBFL02 109 109 D* Qdb Qdbftrg Body File Long D QDBQBFD00 110 110 D* Qdb Qdbftrg Body File Del D QDBQBLL02 111 111 D* Qdb Qdbftrg Body Lib Long D QDBQBLD00 112 112 D* Qdb Qdbftrg Body Lib Del D QDBQR2300 113 144 D* Qdb Qdbftrg Reserved23 D* Array used to access the list D* of BODY referenced columns. D* §ADA D******************************************************************* D* D*List of Dependent Objects for the WHEN/BODY clauses. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* dependent object. D* D*NOTE: All offsets in this list are relative to the beginning of D* the CREATE TRIGGER string located in the TRIGGER SQL STMT D* variable Qdb_qdbftrg_stmt_crt_trg. D* D*NOTE: The list of dependent objects will identify all instances D* of an object in the list. That is, there may be multiple D* entries for the same object name. The first entry flag D* can be used to differentiate between the first occurrence D* of an object in the list and subsequent entries. D* D******************************************************************* D******************************************************************** D*The following structure maps the dependent objects array entry D******************************************************************** DQDBFQDA DS D* Qdbf Qdbftrg Depo Array D QDBQDT02 1 2 D* Qdb Qdbftrg Depo Type D* Type of dependent object. D* TB = Table D* PF = Physical File D* VW = View D* LF = Logical File D* IX = Index D* UF = UDF D* UT = UDT D* PR = Procedure D* AL = Alias §ADA D QDBQDO01 3 6U 0 D* Qdb Qdbftrg Depo Off D* Offset to the dependent D* object - relative to the D* beginning of the CREATE D* TRIGGER string D* Qdb_qdbftrg_stmt_crt_trg D* §ADA D QDBQDL01 7 10U 0 D* Qdb Qdbftrg Depo Len D* Length of the dependent D* object's name. §ADA D QDBQDLO 11 14U 0 D* Qdb Qdbftrg Depo Lib Off D* Offset to the qualifying D* library name of the dependent D* object. D* Offset relative from start of D* Qdb_qdbftrg_stmt_crt_trg D* 0 => No qualifying library. D* §ADA D QDBQDLL 15 18U 0 D* Qdb Qdbftrg Depo Lib Len D* Length of the qualifying D* library name of the dependent D* object. D* 0 => No qualifying library. D* §ADA D QDBQD1E 19 19 D* Qdb Qdbftrg Depo 1st Entry D* Indicates if the object name D* is the first in the list of D* entries. Criteria is based on D* object name, library name and D* object type. D* X'00' => Object is 2nd or D* greater occurance D* in the list. D* X'01' => Object is the first D* in the list. §ADA D QDBQDTF 20 20 D* Qdb Qdbftrg Depo This File D* Indicates if the object is D* this FILE. D* X'00' => Object Not THIS FILE. D* X'01' => Object is THIS FILE. D* §ADA D QDBQDOL 21 21 D* Qdb Qdbftrg Depo Obj Long D* Indicates if the object name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQDOD 22 22 D* Qdb Qdbftrg Depo Obj Del D* Indicates if the object name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQDLL00 23 23 D* Qdb Qdbftrg Depo Lib Long D* Indicates if the object's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* §ADA D QDBQDLD 24 24 D* Qdb Qdbftrg Depo Lib Del D* Indicates if the object's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* §ADA D QDBQR26 25 64 D* Qdb Qdbftrg Reserved26 D* Reserved. §ADA D******************************************************************** D*The following structure maps the dependent objects area D******************************************************************** DQDBFQDA00 DS D* Qdbf Qdbftrg Depo Area D QDBQR24 1 20 D* Qdb Qdbftrg Reserved24 D* Reserved. §ADA D QDBQDTL 21 24U 0 D* Qdb Qdbftrg Depo Tot Len D* Total length of the list of D* dependent objects D* substructure D* Qdb_qdbftrg_depo_area. §ADA D QDBQDNO 25 28U 0 D* Qdb Qdbftrg Depo Num Off D* Number of dependent object D* offsets in the following D* array. §ADA D QDBQDSR00 29 29 D* Qdb Qdbftrg Depo Self Ref D* Indicates this file is D* referenced at least once D* somewhere in the WHEN or D* BODY. That is, this is a D* self-referencing dependency. D* X'00' => Not self-referencing. D* X'01' => Is self-referencing. D* §ADA D QDBQR25 30 80 D* Qdb Qdbftrg Reserved25 D* Reserved. §ADA D*QDBQDA 64 D* Qdb Qdbftrg Depo Array D QDBQDT03 81 82 D* Qdb Qdbftrg Depo Type D QDBQDO02 83 86U 0 D* Qdb Qdbftrg Depo Off D QDBQDL02 87 90U 0 D* Qdb Qdbftrg Depo Len D QDBQDLO00 91 94U 0 D* Qdb Qdbftrg Depo Lib Off D QDBQDLL01 95 98U 0 D* Qdb Qdbftrg Depo Lib Len D QDBQD1E00 99 99 D* Qdb Qdbftrg Depo 1st Entry D QDBQDTF00 100 100 D* Qdb Qdbftrg Depo This File D QDBQDOL00 101 101 D* Qdb Qdbftrg Depo Obj Long D QDBQDOD00 102 102 D* Qdb Qdbftrg Depo Obj Del D QDBQDLL02 103 103 D* Qdb Qdbftrg Depo Lib Long D QDBQDLD00 104 104 D* Qdb Qdbftrg Depo Lib Del D QDBQR2600 105 144 D* Qdb Qdbftrg Reserved26 D* Array used to access the list D* of dependent objects offsets. D* §ADA D******************************************************************* D* D*TRANSITION AREA for OLD/NEW Correlation Variable names and D* OLD/NEW Transistion Table names. D* D*This area contains the old/new correlation variable names and the D*old/new transition table names that can be used by the action to D*reference the affected rows. D* D******************************************************************* DQDBFQTA DS D* Qdbf Qdbftrg Trns Area D* Transition area. §ADA D QDBQR27 1 20 D* Qdb Qdbftrg Reserved27 D* Reserved. §ADA D QDBQTTL 21 24U 0 D* Qdb Qdbftrg Trns Tot Len D* Total length of the transition D* area substructure D* Qdb_qdbftrg_trns_area; §ADA D QDBQTOL 25 28U 0 D* Qdb Qdbftrg Trns Oldvar Len D* Old correlation variable name D* length. §ADA D* 0 => No old transition var. D QDBQTNL 29 32U 0 D* Qdb Qdbftrg Trns Newvar Len D* New correlation variable name D* length. D* 0 => No new correlation var. D* §ADA D QDBQTOL00 33 36U 0 D* Qdb Qdbftrg Trns Oldtbl Len D* Old transition table name D* length. D* 0 => No old transition table. D* §ADA D QDBQTNL00 37 40U 0 D* Qdb Qdbftrg Trns Newtbl Len D* New transition table name D* length. D* 0 => No new transition table. D* §ADA D QDBQTOO 41 44U 0 D* Qdb Qdbftrg Trns Oldvar Off D* Offset to the Old correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old correlation var. D* §ADA D QDBQTNO 45 48U 0 D* Qdb Qdbftrg Trns Newvar Off D* Offset to the New correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition var. D* §ADA D QDBQTOO00 49 52U 0 D* Qdb Qdbftrg Trns Oldtbl Off D* Offset to the Old transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old transition table. D* §ADA D QDBQTNO00 53 56U 0 D* Qdb Qdbftrg Trns Newtbl Off D* Offset to the New transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition table. D* §ADA D QDBQTOD 57 57 D* Qdb Qdbftrg Trns Oldvar Del D* Old correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQTND 58 58 D* Qdb Qdbftrg Trns Newvar Del D* New correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQTOD00 59 59 D* Qdb Qdbftrg Trns Oldtbl Del D* Old transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQTND00 60 60 D* Qdb Qdbftrg Trns Newtbl Del D* New transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQTNL01 61 64U 0 D* Qdb Qdbftrg Trns Names Len D* Total length of the transition D* names in the structure D* Qdb_Qdbftrg_Trns_Names. §ADA D QDBQR28 65 112 D* Qdb Qdbftrg Reserved28 D* Reserved. §ADA D*QDBQTN 113 113 D* Qdb Qdbftrg Trns Names D* D* Old/new transition §ADA D* variable/table names reside D* here. See offsets for D* substringing the names D* (varying length). §ADA D* §ADA D******************************************************************* D* D*SQL TRIGGER STMT AREA D* D*NOTE: This is the complete CREATE TRIGGER statement and expanded D* to include library information. D* D*NOTE: All offsets are relative to the beginning of the CREATE D* TRIGGER string. D* D*DESIGN NOTE: The expanded string for the CREATE TRIGGER will be D* library qualified for both SQL names and system names. D* That is, for those object names not library qualified, D* one will be added before the object name. All names D* (short, long, delimited, non-delimited) will be left as D* the user specified them. D* D* The design point will be to store the image of what the D* user defined but with all names library qualified. D* D* For column names, correlation variables will be used D* for each column to qualify the names. D* D* For example: D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* Given Table T2 in LIB2 with columns COL3 and COL4 D* SQL will generate correlation variables X and Y D* D* If the user codes the following: D* D* CREATE TRIGGER ... SELECT * FROM T1, T2 WHEN COL1 = 10 D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* SELECT X.COL1, X.COL2, Y.COL3, Y.COL4 D* FROM LIB1.T1 X, LIB2.T2 Y D* WHEN X.COL1 = 10 D* D* The correlation variables X and Y are used to qualify D* the column names with the library and file. The tables D* in the expanded string are qualified with the library D* name. D* D******************************************************************* DQDBQSA DS D* Qdb Qdbftrg Stmt Area D* SQL Trigger statement area. D* §ADA D QDBQR29 1 20 D* Qdb Qdbftrg Reserved29 D* Reserved. §ADA D QDBQSTL 21 24U 0 D* Qdb Qdbftrg Stmt Tot Len D* Total length of the SQL D* Trigger statement area - D* substructure D* Qdb_Qdbftrg_Stmt_Area. §ADA D QDBQSOO 25 28U 0 D* Qdb Qdbftrg Stmt Onfile Off D* Offset to the user specified D* file/table name in the D* CREATE TRIGGER STMT. D* This is the ON table-name D* that specifies the table D* the trigger is being added D* to. See the prologue of this D* structure for the layout of D* the data. §ADA D* D QDBQSOL 29 32U 0 D* Qdb Qdbftrg Stmt Onfile Len D* Length of the qualified D* library.file name of the D* ON file/table name. This is D* not the MAX length but the D* actual lenght of the name. D* This name also takes into D* accout the period seperator. D* §ADA D QDBQSOD 33 33 D* Qdb Qdbftrg Stmt Onfile Del D* The ON table/file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQSOD00 34 34 D* Qdb Qdbftrg Stmt Onlib Del D* The ON table-file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* §ADA D QDBQSOL00 35 35 D* Qdb Qdbftrg Stmt Onfile Long D* The ON table-file name is D* a long name. D* X'00' => Name not long name. D* X'01' => Name is a long name. D* §ADA D QDBQR30 36 36 D* Qdb Qdbftrg Reserved30 D* Reserved. §ADA D QDBQSCTL 37 40U 0 D* Qdb Qdbftrg Stmt Crt Trg Len D* Length of the SQL CREATE D* TRIGGER string in variable D* Qdb_Qdbftrg_stmt_crt_trg §ADA D QDBQSWL 41 44U 0 D* Qdb Qdbftrg Stmt When Len D* Length of the WHEN clause D* for the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg §ADA D QDBQSWO 45 48U 0 D* Qdb Qdbftrg Stmt When Off D* Offset to the WHEN clause D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg §ADA D* This offset is relative to D* the beginning of variable D* WDBFTRG_STMT_CRT_TRG D QDBQSBL 49 52U 0 D* Qdb Qdbftrg Stmt Body Len D* Length of the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg §ADA D QDBQSBO 53 56U 0 D* Qdb Qdbftrg Stmt Body Off D* Offset to the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg D* This offset is relative to D* the beginning of variable D* Qdb_qdbftrg_stmt_crt_trg §ADA D QDBQSR31 57 112 D* Qdb Qdbftrg Stmt Reserved31 D* Reserved. §ADA D*QDBQSCT 113 113 D* Qdb Qdbftrg Stmt Crt Trg D* D* SQL CREATE TRIGGER string D* (varying length). §ADA D******************************************************************* D* D*SQL TRIGGER LONG COMMENT AREA D* D*NOTE: The Trigger Long comment can only be added via the D* COMMENT ON SQL statement. D* D******************************************************************* DQDBQLA DS D* Qdb Qdbftrg Long Area D* SQL Trigger Long Comment area. D* §ADA D QDBQR32 1 20 D* Qdb Qdbftrg Reserved32 D* Reserved. §ADA D QDBQLTL 21 24U 0 D* Qdb Qdbftrg Long Tot Len D* Total length of the SQL D* Trigger long comment area D* substructure D* Qdb_qdbftrg_long_area §ADA D QDBQLL 25 28U 0 D* Qdb Qdbftrg Long Len D* Length of the Trigger Long D* comment area which is located D* in variable D* Qdb_qdbftrg_long_comment §ADA D QDBQLC 29 30U 0 D* Qdb Qdbftrg Long Ccsid D* Text CCSID. §ADA D QDBQR33 31 64 D* Qdb Qdbftrg Reserved33 D* Reserved. §ADA D*QDBQLC00 65 65 D* Qdb Qdbftrg Long Comment D* D* Trigger long comment (varying D* length). §ADA D******************************************************************* D* D*SQL Materialized Query Table Dependency Entry. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section repeats in the dependency array for the number D*of depended-on files (Qdbfmqtd_num_deps) defined in structure D*Qdb_Qdbfmqtd_Head. The first dependency entry follows the D*dependency header Qdb_Qdbfmqtd_Head. Use length Qdbfmqtd_len D*to get to the next dependency entry. D******************************************************************* DQDBFMQTD DS D* SQL Materialized Query Table D* Dependency Entry. D QDBR117 1 16 D* Reserved. D QDBFL00 17 20U 0 D* Length, in bytes, of this D* dependency entry. Use this D* length to get to the next D* entry. D QDBFFIL 21 30 D* Name of depended-on file. D QDBFL01 31 40 D* Name of depended-on file's D* library. D QDBR116 41 96 D* Reserved. D******************************************************************* D* D*SQL Materialized Query Table Dependency Header. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section can be located with the offset Qdbfmqtd_o, which D*is located in the SQL Area, Qdb_Qdbfv. This structure exists D*only if the file is a SQL materialized query table. D******************************************************************* DQDBQH00 DS D* SQL Materialized Query Table D* Dependency Header. D QDBFLS 1 4U 0 D* Qdbfmqt len sum D* Total length, in bytes, of D* the dependency area. This D* includes both the dependency D* header and the dependency D* array. D QDBFNBRD 5 8U 0 D* Qdbfmqt num deps D* Number of file entries in the D* dependency array. D QDBRSV1601 9 64 D* Reserved. D*QDBQA 65 65 D* D* Dependency array. D******************************************************************* D* D*SQL Partitioned Table Header Area. D* D*This section contains information about the files that D*are SQL Partitioned Tables. D* D* D******************************************************************* D*This section can be located with the offset Qdbfoff_sqpt D*This structure exists only if the file is a SQL Partitioned D*Table. D******************************************************************* DQDBQH01 DS D* SQL Partitoned Table D* Header. D QDBFLS00 1 4U 0 D* Qdbfsqpt Len Sum D* Total length, in bytes, of D* the partitioned table area. D* This includes all structures D* that follow. D QDBFSR4 5 8U 0 D* Reserved. D QDBFRH 9 9 D* 'R' = Range Partitioning. D* 'H' = Hash Partitioning. D QDBFL02 10 10 D* 'Y' = Field has long name. D* 'N' = No long name. D QDBFR230 11 240 D* Reserved. D QDBFNBRP 241 244U 0 D* Qdbfsqpt Num Parts D* Number of file partitions. D* This is the number of D* Qdb_Qdbfsqpt_Part structures D* that follow. D QDBFPO 245 248U 0 D* Qdbfsqpt Part Offset D* The offset to the first D* partition. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFHO 249 252U 0 D* Qdbfsqpt Hk Offset D* The offset to the partition D* key structure if hash D* partitioning is specified. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFSR400 253 256U 0 D* Reserved. D QDBFHR4 257 260U 0 D* Reserved. D QDBFFR4 261 264U 0 D* Reserved. D QDBFR88 265 352 D* Reserved. D*QDBQHHA 353 353 D* Qdb Qdbfsqpt head hash array D* D* Header Hash key array. D*QDBQPA00 354 354 D* D* Partition array. D******************************************************************* D* D*SQL Partition Area. D* D*This section contains information about the partitions D*of a Partitioned Table. D* D******************************************************************* D*This section repeats for the number of partitons. D*The next partition can be addressed by the total length of the D*partition. The total length of the partition includes all D*sub-structures that can be included. D* D******************************************************************* DQDBQP00 DS D* SQL Partitioned Table D* Partition Structure. D QDBFPL 1 4U 0 D* Qdbfsqpt Part Len D* Length, in bytes of this D* partition and all sub-structs. D* Use this length to get to the D* next partition. D QDBFPDSN 5 8U 0 D* The partition data D* space number. D QDBFPNBR 9 12U 0 D* The partition number. D QDBFPL00 13 16U 0 D* Qdbfsqpt Pname Len D* Length of the partition name. D QDBFP 17 144 D* Name of the partition. D QDBFMR80 145 224 D* Reserved. D QDBFNBRK 225 228U 0 D* Qdbfsqpt Num Keys D* Number of range keys. D* If the partitioning is range, D* this is the number of range D* key structures that will D* follow. If hash partitioning D* was being done, this value is D* 0. D QDBFRO 229 232U 0 D* Qdbfsqpt Range Offset D* Offset to the first range D* key structure. If hash D* partitioning was being done, D* this value will be 0. D QDBFRSV8 233 240 D* Reserved. D*QDBQRA00 241 241 D* D* Range array. D******************************************************************* D* D*SQL Range Key Area. D* D*This section contains information about the partitions D*range key(s). D* D******************************************************************* D*This section repeats for the number of range keys. D*The next range key structure can be addressed by the total length D*of the range key information. D* D******************************************************************* DQDBQR DS D* SQL Partitioned Table D* Range Key Structure. D QDBFRL 1 4U 0 D* Qdbfsqpt Range Len D* Length, in bytes of this D* structure and all sub-structs. D* Use this length to get to the D* next range key structure. D QDBFR12 5 16 D* Reserved. D QDBFRK 17 26 D* Range key name. D* ******************************* D QDBFRRSV 27 28U 0 D* Qdbfsqpt Range Reserved D* Element. D* ******************************* D QDBFR01 29 29 D* Range minimum value: D* Start value minimum: D* 'Y' = Yes. D* 'N' = No. D QDBFR02 30 30 D* Range maximum value: D* End value maximum: D* 'Y' = Yes. D* 'N' = No. D QDBFR03 31 31 D* Range start value inclusive: D* Start inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR04 32 32 D* Range end value inclusive: D* End inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR15 33 47 D* Reserved. D QDBFR05 48 48 D* Range null option: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR06 49 52U 0 D* Length in bytes of the D* starting range value string. D QDBFR07 53 56U 0 D* Length in bytes of the D* ending range value string. D QDBFRO00 57 60U 0 D* Qdbfsqpt Rstart Offset D* Offset to the D* starting range value string. D QDBFRO01 61 64U 0 D* Qdbfsqpt Rend Offset D* Offset to the D* ending range value string. D QDBFR14 65 78 D* Reserved. D QDBFR08 79 80U 0 D* Qdbfsqpt Rccsid D* Coded Character Set D* Identifier, CCSID, For D* the range start-end D* values string. D*QDBQRSA 81 81 D* D* Start value string. D*QDBQREA 82 82 D* D* End value string. D******************************************************************* D* D*SQL Head Hash Key Area. D* D*This section contains information about the partitions D*hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQHH DS D* Qdb Qdbfsqpt Head Hash D* SQL Partitioned Table D* Header Hash Key Structure. D QDBFHHL 1 4U 0 D* Qdbfsqpt Head Hash Len D* Total length of the header D* and all entries. D QDBFHNK 5 8B 0 D* Qdbfsqpt Head Num Keys D* Total number of keys, D* or entries that follow. D QDBHR56 9 64 D* Reserved. D*QDBQHA 65 65 D* D* Hash Partition Key Array. D******************************************************************* D* D*SQL Hash Key Area. D* D*This section contains the hash key information about the D*partitions hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQH02 DS D* Qdb Qdbfsqpt Hash D* SQL Partitioned Table D* Hash Key Structure. D QDBFHK 1 10 D* Hash key name. D QDBFHR22 11 32 D* Reserved. D******************************************************************* D* D*SQL Field Format Information D* D*This section contains the format information about each D*partition key field. The information is the same that is stored D*in the format for the file. D* D******************************************************************* DQDBQF00 DS D* Qdb Qdbfsqpt Fldinfo D* SQL Partitioned Field Format D* Information Structure. D QDBFFR400 1 4U 0 D* Reserved. D QDBFFN 5 14 D* Field name. D QDBFFNBR 15 16U 0 D* Field number. D QDBFFT 17 18B 0 D* Field type. D QDBFFB 19 20B 0 D* Field buffer offset. D QDBFFF 21 22U 0 D* Field length, bytes. D QDBFFF00 23 24U 0 D* Field digits. D QDBFFF01 25 26B 0 D* Field precision. D QDBFFK 27 27 D* Field KBS. D QDBFFV 28 28 D* Field varlen, Y/N. D QDBFFN00 29 29 D* Field null, Y/N. D QDBFFR 30 30 D* Field rowid, Y/N. D QDBFFI 31 31 D* Field ident, Y/N. D QDBTF816 32 32 D* Field UTF8/16 Y/N. D QDBDTFMT02 33 33 D* Field date format. D QDBDTSEP02 34 34 D* Field seperator. D QDBFFC 35 36U 0 D* Field Ccsid. D QDBFFL 37 38U 0 D* Long field length. D QDBFFL00 39 68 D* Long name. D QDBFFR76 69 144 D* Reserved. D*#ifndef __ILEC400__ ü §RKR //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(QDBRTVFD7A) FILETYPE(*SRC) ENDCHAR('//ENDSRC') D*begin_generated_IBM_copyright_prolog D*This is an automatically generated copyright prolog. D*After initializing, DO NOT MODIFY OR MOVE D*----------------------------------------------------------------- D* D*Product(s): D*5722-SS1 D*5770-SS1 D* D*(C)Copyright IBM Corp. 1994, 2009 D* D*All rights reserved. D*US Government Users Restricted Rights - D*Use, duplication or disclosure restricted D*by GSA ADP Schedule Contract with IBM Corp. D* D*Licensed Materials-Property of IBM D* D*--------------------------------------------------------------- D* D*end_generated_IBM_copyright_prolog D*** START HEADER FILE SPECIFICATIONS **************************** D* D*Header File Name: H/QDBRTVFD.h D* D*Descriptive Name: Retrieve file description API. D* D*Description: The Retrieve File Description (QDBRTVFD) API D* allows the user to get complete and specific D* information about a file on a local or remote D* system. D* D*Header Files Included: None D* D*Macros List: None D* D*Structure List: Qdb_Rfd_Input_Parms_t D* Qdb_Qdbfh_t D* Qdb_Qdbfphys_t D* Qdb_Qdbftrg_t D* Qdb_Qdbf_Constraint_t D* Qdb_Qdbf_Keyn_t D* Qdb_Qdbf_Riafk_Afkd_t D* Qdb_Qdbf_Chk_Cst_t D* Qdb_Qdbfdtalnk_t D* Qdb_Qdbfdlcole_t D* Qdb_Qdbfdrae_t D* Qdb_Qdbfdrtb_t D* Qdb_Qdbflogl_t D* Qdb_Qdbfv_t D* Qdb_Qdbfj_t D* Qdb_Qdbfjfld_t D* Qdb_Qdbfjdup_t D* Qdb_Qdbfacs_t D* Qdb_Qdbfdic_t D* Qdb_Qdbflngn_t D* Qdb_Qdbfb_t D* Qdb_Qdbfss_t D* Qdb_Qdbfsp_t D* Qdb_Qdbfk_t D* Qdb_Qdbf_dis_t D* Qdb_Qdbfjoal_t D* Qdb_Qddfmt_t D* Qdb_Qddffld_t D* Qdb_Qddfrefi_t D* Qdb_Qddfedcw_t D* Qdb_Qddfdfne_t D* Qdb_Qddfcolh_t D* Qdb_Qddfvchk_t D* Qdb_Qddfvcst_t D* Qdb_Qddfvcpr_t D* Qdb_Qddfcpli_t D* Qdb_Qddfftxt_t D* Qdb_Qddfalis_t D* Qdb_Qddfdft_t D* Qdb_Qddfdicf_t D* Qdb_Qddfdvof_t D* Qdb_Qddfdvoc_t D* Qdb_Qddfdvo_t D* Qdb_Qddfderv_t D* Qdb_Qddfdvst_t D* Qdb_Qddfdvtx_t D* Qdb_Qddfxl_t D* Qdb_qddfcsl_t D* Qdb_Qddfdic_t D* Qdb_Qdbwhrec_t D* Qdb_Qdbwh_t D* Qdb_Qdbwhkattr_t D* Qdb_Qdbwhkatt1_t D* Qdb_Qdbwhkey_t D* Qdb_Qbftrg_Head D* Qdb_Qdbftrg_Def_Head D* Qdb_Qdbftrg_Name_Area D* Qdb_Qdbftrg_Path_Area D* Qdb_Qdbftrg_Updc_Area D* Qdb_Qdbftrg_Updc_List_Ent D* Qdb_Qdbftrg_When_Area D* Qdb_Qdbftrg_When_Array D* Qdb_Qdbftrg_Body_Area D* Qdb_Qdbftrg_Body_Array D* Qdb_Qdbftrg_Depo_Area D* Qdb_Qdbftrg_Depo_Array D* Qdb_Qdbftrg_Trns_Area D* Qdb_Qdbftrg_Stmt_Area D* Qdb_Qdbftrg_Long_Area D* Qdb_Qdbfmqtd_Head D* Qdb_Qdbfmqtd D* Qdb_Qdbfvflgs D* Qdb_Qdbfsqpt_Head D* Qdb_Qdbfsqpt_Part D* Qdb_Qdbfsqpt_Range D* Qdb_Qdbfsqpt_Head_Hash D* Qdb_Qdbfsqpt_Hash D* D*Function Prototype List: QDBRTVFD D* D*Change Activity: D* D*CFD List: D* D*FLAG REASON LEVEL DATE DEPT/PGMR CHANGE DESCRIPTION D*---- ------------ ----- ------ --------- ---------------------- D*$A0= D2862000 3D10 940102 45H R P: New Include D*$01= PTH01678 3P10 940818 45H JRA: Correct ALWNULL flag D* definition. D*$A2= D9196200 3D60 941104 45H JRA: Large Access Path D* support. D*$A3= D2871000 3D60 941104 45H JRA: UCS-2 support. D*$02= P3979527 3P10 950119 45H JRA: Correct field text D* definition. D*$03= PSA42574 3P10 950411 45H JRA: Correct ACST/SST D* definition and D* separate Record ID D* Code array. D*$04= P 3D60 950630 45H PSN: Add Default for Date, D* Time, Timestamp of D* CURRENT_xxxx D*$A4= D9410100 3D70 950713 45H KRB: Distributed File D* support. D*$05= P3617238 3D70 960430 45H KRS: Add missing operands D* to derived operator D* comments. D*$06= P3629488 4D10 960930 45H KLW: Add missing comments D* for concatenated D* fields and number of D* digits. D*$A5= D28540 4D20 970127 45H randy: Add Check Constraint D* support D*$A6= D9495801 4D20 970215 45H KRS: UCS-2 sort sequence D*$07= P3640846 4D20 970227 45H KRS: Fix comment. D*$08= P3651248 4D20 970729 RAMLER : Add v4r2 QQ support D* CAST, CASE D*$09= P3652103 4D20 970811 45H KRS: Add "Allow Repeated D* Change" flag to D* trigger section. D*$A7= d9491500 4D30 971215 45H DMK: Add EVI support. D*$A8= P3663202 4D30 980302 SBURRICH: Add comment for V4R3 D* QQ FLOOR support. D*$A9= D9586707 4D40 980713 45H KRS: Add THDSAFE and D* MLTTHDACN support. D*$AA= D9703200 4D40 980713 45H MWT: Complex Objects. D*$AB= P3684590 4D40 981117 45H KRS: Add Qddfsqfd. D*$AC= P3684760 4D40 981209 Bestgen: UDF support. D*$AD= D9759300 5D10 990801 45H RKS: Triggers D*$AE= P9934931 5D10 001010 45H RKS: Teraspace State II D*$AF= P9938576 5D10 001129 45H RKS: Fix comment D*$AG= D9844202 5D20 010530 45H RKS: Identity Columns D*$AH= D9899500 5D20 010625 VPZ MJA: Longer alias names D*$AI= D9913201 5D30 020613 45H KRS: SQL materialized query D* tables. D*$AJ= D9923300 5D30 021010 45H MWT: SQL Partitioned Table D*$AK= D9922600 5D30 030107 45H RLN: Binary Character D* support. D*$AL= D9924906 5D30 030226 45H KRS: UTF8. D*$0A= P9A32647 5D30 030616 45H KRS: Return Qddfflgs in D* field header. D*$0B= P9A35914 5D30 030729 45H KRS: Fix values for ROWID D* and ID generate fields. D*$0C= P9A42662 5D30 031010 ISA MJA: Add info for SQL view D* text. D*$0D= D9977201 5D40 031206 45H BAC: Instead OF triggers D*$AM= D9307400 5D40 041206 45H MWT: Added for V5R4. D*$AN= D9342302 5D50 051214 45H KRS: LF/PF Restore Ordering D*$0D= PSE24623 5D50 060427 45H KRS: Add QDDFFVLN. D*$0E= P9B29769 5D50 060627 45H MWT: Change 2000 to 32768. D*$AP= D9995800 5D50 061010 45H MWT: SQL Index with a D* derived key, or a D* Where clause(SQLI). D*$AQ= D9354900 5D50 061122 45H JAV: DECFLOAT D*$AR= D9356200 5D50 070108 45H RLN: Row Change Timestamp D* and Hidden Column D* support. D*$AS= P9C30998 7D10 080908 GEY MJA: Enable constraint type D* and Secure Data D*$AT= D9230000 7D10 081119 47U RLN: Restricted XML Data D* Type. D*$AU= D9223900 7D10 081202 47U RLN: Database Encryption D* Via Field Procedures. D*$AV= P9C36148 7D10 081212 47U MWT: Added for QCPIMPRT. D*$0F= P9C42250 7D10 090603 HRG RLN: Keep in memory D* (KEEPINMEM) support. D*$0G= FW482528 7D10 090914 GEY MJA: Change UNIT comment D* D*End CFD List. D* D*Additional notes about the Change Activity D*End Change Activity. D***************************************************************** D******************************************************************** D*Prototypes for calling Retrieve File Description API QDBRTVFD D******************************************************************** D QDBRTVFD C 'QDBRTVFD' D****************************************************************** D*Input structure for QDBRTVFD API header section D****************************************************************** DQDBRIP DS D* Qdb Rfd Input Parms D*QDBRV 1 1 D* D* varying length D QDBLORV 2 5B 0 D* Length Of Receiver Var D QDBRFAL 6 25 D* Returned File And Library D QDBFN00 26 33 D* Format Name D QDBFALN 34 53 D* File And Library Name D QDBRFN00 54 63 D* Record Format Name D QDBFILOF 64 64 D* File Override Flag D QDBYSTEM 65 74 D* System D QDBFT 75 84 D* Format Type D*QDBEC 85 85 D* D* varying length D**************************************************************** D* Record Structure for QDBRTVFD FILD0100 format D**************************************************************** D******************************************************************** D* FDT HEADER DECLARATIONS D******************************************************************** D* The following typedef structs are pointed to by the header D* typedef struct. They are defined outside of the header for D* LAN/DE compatibility and to ensure alignment on a 16-byte D* boundary. D**************************************************************** D** Attribute Bytes ******************************************* DQDBQ DS D* Attribute Bytes D QDBBITS 1 2 D* QDBRSV1 2 BITS D* Reserved. D* QDBFHFPL 1 BIT D* Type Of File D* 0 = The file is a physical D* Database file. D* 1 = The file is a logical D* Database file. D* QDBRSV2 1 BIT D* Reserved. D* QDBFHFSU 1 BIT D* File Type (FILETYPE) D* 0 = The file is a data file D* (*DATA). D* 1 = The file is a source D* file (*SRC). D* QDBRSV3 1 BIT D* Reserved. D* QDBFHFKY 1 BIT D* Access Path D* 0 = The file has an arrival D* sequence access path D* 1 = The file has a keyed D* sequence access path D* QDBRSV4 1 BIT D* Reserved. D* QDBFHFLC 1 BIT D* Record Format Level Check D* (LVLCHK) D* 0 = The level identifiers of D* the record formats are D* NOT checked when the file D* is opened (*NO). D* 1 = The level identifiers of D* the record formats are D* checked when the file D* is opened (*YES). D* QDBFKFSO 1 BIT D* Select/Omit D* 0 = The file is NOT a D* select/omit logical file. D* 1 = The file is a select/omit D* logical file. D* QDBRSV5 1 BIT D* Reserved. D* QDBFHSHR 1 BIT D* Reserved. D* QDBRSV6 2 BITS D* Reserved. D* QDBFIGCD 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any DBCS or Graphic data D* fields. D* 1 = The record format(s) for D* the file does contain D* DBCS or Graphic data D* fields. D* QDBFIGCL 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The file definition for D* the file does NOT contain D* DBCS or Graphic literals. D* 1 = The file definition for D* the file does contain D* DBCS or Graphic literals. D** Keyed Sequence Access Path Attributes ********************* DQDBQ00 DS D* Keyed Sequence Access Path D* Attributes D QDBBITS00 1 1 D* QDBRSV8 1 BIT D* Reserved. D* QDBFKFCS 1 BIT D* Alternative Collating D* Sequence (ALTSEQ) D* 0 = No alternative collating D* sequence table for the D* file. D* 1 = An alternative collating D* sequence table was D* specified for the file. D* QDBRSV9 4 BITS D* Reserved. D* QDBFKFRC 1 BIT D* Force Keyed Access Path D* (FRCACCPTH) D* 0 = The access path and D* changed records are NOT D* forced to auxiliary D* storage when the access D* path is changed (*NO). D* 1 = The access path and D* changed records are D* forced to auxiliary D* storage when the access D* path is changed (*YES). D* QDBFKFLT 1 BIT D* Floating Point Key Indicator D* 0 = The access path for the D* file contains NO floating D* point keys. D* 1 = The access path for the D* file contains floating D* point keys. D** Keyed Sequence Access Path Description ******************** DQDBQ01 DS D* Keyed Sequence Access Path D* Description D* If this file has an arrival D* sequence access path, these D* fields are NOT applicable. D QDBFKNUM 1 2B 0 D* Number Of Key Fields D* 1-120 = Number of key fields D* for the file. D QDBFKMXL 3 4B 0 D* Maximum Key Length D* 1-32768 = Maximum length of D* the key for the file. D*QDBFKFLG 1 D QDBBITS01 5 5 D* QDBRSV800 1 BIT D* QDBFKFCS00 1 BIT D* QDBRSV900 4 BITS D* QDBFKFRC00 1 BIT D* QDBFKFLT00 1 BIT D* Keyed Sequence Access Path D QDBFKFDM 6 6 D* Access Path Maintenance D* (MAINT) D* 'I' = Immediate maintenance D* (*IMMED). D* 'D' = Delayed maintenance D* (*DLY). D* 'R' = Rebuild maintenance D* (*REBLD). D QDBRSV10 7 14 D* Reserved. D** Additional Attribute Flags ******************************** DQDBQAAF DS D* Additional Attribute Flags D QDBBITS02 1 1 D* QDBRSV12 7 BITS D* Reserved. D* QDBFPGMD 1 BIT D* Program Described File D* Indicator D* 0 = The file is an externally D* described file. D* 1 = The file is a program D* described file. D** Additional Attribute Flags ******************************** DQDBQ2 DS D* Additional Attribute Flags D QDBBITS03 1 2 D* QDBFJNAP 1 BIT D* Access Path Journaled D* 0 = The files access path(s) D* is NOT journaled. D* 1 = The files access path(s) D* is journaled. D* File Capability Attributes D* QDBRSV13 1 BIT D* Reserved. D* File Capability Flags D* QDBFRDCP 1 BIT D* Allow Read Operation D* 0 = Records are allowed to D* be read from the file. D* 1 = Records are NOT allowed D* to be read from the file. D* QDBFWTCP 1 BIT D* Allow Write Operation D* 0 = Records are allowed to D* be written to the file. D* 1 = Records are NOT allowed D* to be written to the D* file. D* QDBFUPCP 1 BIT D* Allow Update Operation D* (ALWUPD) D* 0 = Records are allowed to D* be updated in the file D* (*YES). D* 1 = Records are NOT allowed D* to be updated in the D* file (*NO). D* QDBFDLCP 1 BIT D* Allow Delete Operation D* (ALWDLT) D* 0 = Records are allowed to D* be deleted from the file D* (*YES). D* 1 = Records are NOT allowed D* to be deleted from the D* file (*NO). D* QDBRSV14 9 BITS D* Reserved. D* QDBFKFND 1 BIT D* Null Values Cause Duplicates D* Indicator (UNIQUE) D* 0 = Null values do cause D* duplicate keys in the D* files access path(s) D* (*INCNULL). D* 1 = Null values do NOT cause D* duplicate keys in the D* files access path(s) D* (*EXCNULL). D* Only valid if Qdbfpact is D* equal to 'KU'. D** Additional Attribute Flags ******************************** DQDBQ200 DS D* Additional Attribute Flags D QDBBITS04 1 2 D* QDBFHMCS 1 BIT D* Multiple Coded Character Set D* Identifier Indicator (CCSID). D* 0 = The file has only one D* CCSID for all of its D* input and output D* character type fields. D* 1 = The file has more than D* one CCSID for all of its D* input and output D* character type fields. D* If the file has NO character D* type fields in its record D* format(s), this bit will be D* off. D* QDBRSV15 1 BIT D* Reserved. D* QDBFKNLL 1 BIT D* Allow Null Value Key D* Indicator (ALWNULL) D* 0 = The access path for the D* file contains NO allow D* null value keys. D* 1 = The access path for the D* file contains allow null D* value keys. D* QDBFNFLD 1 BIT D* Allow Null Value Data D* (ALWNULL) D* 0 = The record format(s) for D* the file does NOT contain D* any allow null value D* fields. D* 1 = The record format(s) for D* the file does contain D* allow null value fields. D* QDBFVFLD 1 BIT D* Variable Length Data (VARLEN) D* 0 = The record format(s) for D* the file does NOT contain D* any variable length D* fields. D* 1 = The record format(s) for D* the file does contain D* variable length fields. D* QDBFTFLD 1 BIT D* Date/Time/Timestamp Data D* 0 = The record format(s) for D* the file does NOT contain D* any date, time, or D* timestamp fields. D* 1 = The record format(s) for D* the file does contain D* a date, time, or D* timestamp fields. D* QDBFGRPH 1 BIT D* Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any graphic fields. D* 1 = The record format(s) for D* the file does contain D* graphic fields. D* QDBFPKEY 1 BIT D* Primary Key D* 0 = The access path for the D* file is NOT a primary key. D* any graphic fields. D* 1 = The access path for the D* file is a primary key. D* D* QDBFUNQC 1 BIT D* Unique Constraint D* Indicator (ALWNULL) D* 0 = The access path for the D* file is NOT a unique D* constraint. D* 1 = The access path for the D* file is a unique D* constraint. D* QDBR118 2 BITS D* Reserved. D* QDBFAPSZ 1 BIT D* Access Path Size(ACCPTHSIZ). D* 0 = All access paths for the D* file will be allowed to D* occupy a maximum of 4GB D* of auxillary storage. D* 1 = All access paths for the D* file will be allowed to D* occupy a maximum of 1TB D* of auxillary storage. D* QDBFDISF 1 BIT D* File is distributed indicator. D* 0 = File is not a distributed D* file. D* 1 = File is a distributed file. D* D* QDBR119 3 BITS D* Reserved. D** Complex Object Flags. ******************************** DQDBFNBIT DS D* Additional Attribute Flags D QDBBITS70 1 1 D* QDBFHUDT 1 BIT D* User Defined Types in file. D* 0 = The file does not have D* any UDTs. D* 1 = The file has fields with D* UDTs. D* QDBFHLOB 1 BIT D* Large Objects fields in file. D* 0 = The file does not have D* any LOBs. D* 1 = The file has fields with D* LOBs. D* QDBFHDTL 1 BIT D* Datalink fields in file. D* 0 = The file does not have D* any datalinks. D* 1 = The file has fields with D* datalinks. D* QDBFHUDF 1 BIT D* User Defined Functions in file. D* 0 = The file does not have D* any UDFs. D* 1 = The file has UDFs. D* D* QDBFHLON 1 BIT D* Datalink fields in the file D* with FILE LINK CONTROL. D* 0 = The file does not have D* datalink fields with D* FILE LINK CONTROL. D* 1 = The file has datalink fields D* with FILE LINK CONTROL. D* QDBFHLOP 1 BIT D* Logical file without any LOB D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have LOB fields. D* 1 = The based on file has LOB D* fields. D* QDBFHDLL 1 BIT D* Logical file without any datalink D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have datalink fields. D* 1 = The based on file has D* datalink fields. D* QDBQLVOL 1 BIT D* SQL Volatile Table Indicator D* 0 = The file is NOT an SQL D* volatile table. D* 1 = The file is an SQL D* volatile table. @AMC D** File Text Description ************************************* DQDBQ02 DS D* File Text Description D QDBRSV18 1 2 D* Reserved. D QDBFHTXT 3 52 D* Text Description (TEXT) D** Source File Fields **************************************** DQDBQ03 DS D* Source File Fields D* Must be X'00's if there is D* NO source file information. D QDBFSRCF 1 10 D* Source File Name D QDBFSRCM 11 20 D* Source File Member Name D QDBFSRCL 21 30 D* Source File Library Name D** Sort Sequence Table Flags ********************************* DQDBQ04 DS D* Flags D QDBBITS05 1 1 D* QDBFSSCS 3 BITS D* Sort Sequence Table D* (SRTSEQ) Indicators D* B'000' = No sort sequence D* table for the file. D* However, an D* alternate collating D* sequence table was D* specified for the D* file. D* B'010' = No sort sequence D* table is used for the D* file, and the hexa- D* decimal values of the D* characters will be D* used to determine the D* sort sequence (*HEX). D* B'100' = A sort sequence D* table was specified D* for the file. D* QDBR103 5 BITS D* Reserved D** Sort Sequence Table *************************************** DQDBFSSFP DS D* Sort Sequence Table D*QDBFNLSB00 1 D QDBBITS57 1 1 D* QDBFSSCS01 3 BITS D* QDBR10301 5 BITS D* NLS Flags D QDBFLANG00 2 4 D* Language Identifier (LANGID) D QDBFCNTY00 5 6 D* Country Identifier (CNTRYID) D** Identity/Rowid Flags. ******************************** DQDBFIDFL DS D* Additional Attribute Flags D QDBBITS74 1 2 D* QDBR121 5 BITS D* Reserved. D* QDBFFHIC 1 BIT D* Qdbf File Has Identity Colum D* Identity Column in the file. D* 0 = The file does not have D* an Identity Column. D* 1 = The file has an Identity D* column. D* QDBFFHR 1 BIT D* Qdbf File Has Rowid D* Rowid in the file. D* 0 = The file does not have D* a Rowid Column. D* 1 = The file has a Rowid D* column. D* QDBFRCT 1 BIT D* Qdbfh Row Change Timestamp D* Row Change Timestamp in the D* file. D* 0 = The file does not have D* a Row Change Timestamp D* Column in its format(s). D* 1 = The file has a Row Change D* Timestamp field in its D* format(s). D* QDBR122 6 BITS D* Reserved. D* QDBFKIM 1 BIT D* Qdbf Keep In Memory D* Keep In Memory indicator. D* 0 = The File's Keep In Memory D* state has Not been changed D* to *YES. D* 1 = The File's Keep In Memory D* state has been changed to D* *YES. D* QDBR124 1 BIT D* Reserved. D**************************************************************** D* D*File Definition Template (FDT) Header D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ25 DS D* Header information - The D* FDT starts here D QDBFYRET 1 4B 0 D* Bytes returned - The length D* of the data returned D QDBFYAVL 5 8B 0 D* Bytes available - The number D* of bytes provided for the D* file definition template D* data D*QDBFHFLG 2 D QDBBITS27 9 10 D* QDBRSV100 2 BITS D* QDBFHFPL00 1 BIT D* QDBRSV200 1 BIT D* QDBFHFSU00 1 BIT D* QDBRSV300 1 BIT D* QDBFHFKY00 1 BIT D* QDBRSV400 1 BIT D* QDBFHFLC00 1 BIT D* QDBFKFSO00 1 BIT D* QDBRSV500 1 BIT D* QDBFHSHR00 1 BIT D* QDBRSV600 2 BITS D* QDBFIGCD00 1 BIT D* QDBFIGCL00 1 BIT D* Attribute Bytes D QDBRSV7 11 14 D* Reserved. D QDBLBNUM 15 16B 0 D* Number Of Data Members D* 1 = Externally described D* physical file, or program D* described physical file D* that is NOT linked to a D* Data Dictionary. D* 1-32 = Number of Data D* Dictionary record D* formats for a program D* described physical D* file that is linked to D* a Data Dictionary. D* 1-256= Number of based on D* physical files for D* a logical file. D*QDBFKDAT 14 D QDBFKNUM00 17 18B 0 D QDBFKMXL00 19 20B 0 D* QDBFKFLG00 1 D QDBBITS28 21 21 D* QDBRSV802 1 BIT D* QDBFKFCS02 1 BIT D* QDBRSV902 4 BITS D* QDBFKFRC02 1 BIT D* QDBFKFLT02 1 BIT D QDBFKFDM00 22 22 D QDBRSV1000 23 30 D* Keyed Sequence Access Path D QDBFHAUT 31 40 D* Public Authority (AUT) D* '*CHANGE ' = Public change D* authority. D* '*ALL ' = Public all D* authority. D* '*USE ' = Public use D* authority. D* '*EXCLUDE ' = Public exclude D* authority. D* 'authorization-list-name' D* = Name of the D* authorization D* list whose D* authority is D* used for the D* file. D* This is the original public D* authority that the file was D* created with, NOT the current D* public authority for the file. D QDBFHUPL 41 41 D* Preferred Storage Unit (UNIT) D* X'00'-X'FE' = No storage media D* is preferred. Storage D* will be allocated from D* any available storage D* media. D* X'FF' = Solid state disk storage D* media is preferred. D* Storage may be allocated D* from solid state disk D* storage media, if D* available. D QDBFHMXM 42 43B 0 D* Maximum Members (MAXMBRS) D* 0 = No maximum is specified D* for the number of members, D* the system maximum of D* 32,767 members is used D* (*NOMAX). D* 1-32,767 = The value for the D* maximum number of D* members that the D* file can have D* (maximum-members). D QDBFWTFI 44 45B 0 D* Maximum File Wait Time D* (WAITFILE) D* -1 = The default wait time D* specified in the class D* description is used as D* the wait time for the D* file (*CLS). D* 0 = A program does NOT wait D* for the file, an D* immediate allocation of D* the file is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the file (number- D* of-seconds). D QDBFHFRT 46 47B 0 D* Records To Force A Write D* (FRCRATIO) D* 0 = There is NO force write D* ratio, the system D* determines when the D* records are written to D* auxiliary storage (*NONE). D* 1-32,767 = The number of D* inserted, updated, D* or deleted records D* that are processed D* before they are D* explicitly forced D* to auxiliary D* storage (number- D* of-records-before- D* force). D QDBHMNUM 48 49B 0 D* Number Of Members D* 0-32,767 = The current number D* of members for the D* file. D QDBPSIZE 50 51B 0 D* Access path page size. @AMA D* -1 = NA, 4G Access path. D* 0 = Key length page size. D* 8,16,32,64,128,256,512=Ksize D QDBRSV11 52 58 D* Reserved. D QDBFBRWT 59 60B 0 D* Maximum Record Wait Time D* (WAITRCD) D* -2 = The wait time is the D* maximum allowed by the D* system, 32,767 seconds D* (*NOMAX). D* -1 = A program does NOT wait D* for the record, an D* immediate allocation of D* the record is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the record D* (number-of- D* seconds). D*QDBQAAF00 1 D QDBBITS29 61 61 D* QDBRSV1200 7 BITS D* QDBFPGMD00 1 BIT D* Additional Attribute Flags D QDBMTNUM 62 63B 0 D* Total Number Of Record D* Formats D* 1-32 = Number of record D* formats for the file. D*QDBFHFL2 2 D QDBBITS30 64 65 D* QDBFJNAP00 1 BIT D* QDBRSV1300 1 BIT D* QDBFRDCP00 1 BIT D* QDBFWTCP00 1 BIT D* QDBFUPCP00 1 BIT D* QDBFDLCP00 1 BIT D* QDBRSV1400 9 BITS D* QDBFKFND00 1 BIT D* Additional Attribute Flags D QDBFVRM 66 67B 0 D* First Supported D* Version Release Modification D* Level D* X'0000' = Pre-Version 2 D* Release 1 D* Modification 0 file. D* X'1500' = Version 2 Release 1 D* Modification 0, D* V2R1M0, file. D* X'1501' = Version 2 Release 1 D* Modification 1, D* V2R1M1, file. D* X'1600' = Version 2 Release 2 D* Modification 0, D* V2R2M0, file. D* X'1700' = Version 2 Release 3 D* Modification 0, D* V2R3M0, file. D* X'1F00' = Version 3 Release 1 D* Modification 0, D* V3R1M0, file. D* X'2000' = Version 3 Release 2 D* Modification 0, D* V3R2M0, file. D* X'2400' = Version 3 Release 6 D* Modification 0, D* V3R6M0, file. D* X'2500' = Version 3 Release 7 D* Modification 0, D* V3R7M0, file. D* X'2900' = Version 4 Release 1 D* Modification 0, D* V4R1M0, file. D* X'2A00' = Version 4 Release 2 D* Modification 0, D* V4R2M0, file. D* X'2B00' = Version 4 Release 3 D* Modification 0, D* V4R3M0, file. D* X'2C00' = Version 4 Release 4 D* Modification 0, D* V4R4M0, file. D* X'2D00' = Version 4 Release 5 D* Modification 0, D* V4R5M0, file. D* X'3300' = Version 5 Release 1 D* Modification 0, D* V5R1M0, file. D* X'3400' = Version 5 Release 2 D* Modification 0, D* V5R2M0, file. D* X'3500' = Version 5 Release 3 D* Modification 0, D* V5R3M0, file. D* X'3600' = Version 5 Release 4 D* Modification 0, D* V5R4M0, file. D* X'3700' = Version 5 Release 5 D* Modification 0, D* V5R5M0, file. D* New Database support is used D* in the file which will D* prevent it from being saved D* and restored to a prior D* Version Release and D* Modification level. D*QDBQAAF2 2 D QDBBITS31 68 69 D* QDBFHMCS00 1 BIT D* QDBRSV1500 1 BIT D* QDBFKNLL00 1 BIT D* QDBFNFLD00 1 BIT D* QDBFVFLD00 1 BIT D* QDBFTFLD00 1 BIT D* QDBFGRPH00 1 BIT D* QDBFPKEY00 1 BIT D* QDBFUNQC00 1 BIT D* QDBR11800 2 BITS D* QDBFAPSZ00 1 BIT D* QDBFDISF00 1 BIT D* QDBR11900 3 BITS D* Additional Attribute Flags D QDBFHCRT 70 82 D* File Level Identifier D* The date of the file in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D*QDBFHTX 52 D QDBRSV1800 83 84 D QDBFHTXT00 85 134 D* File Text Description D QDBRSV19 135 147 D* Reserved D*QDBFSRC 30 D QDBFSRCF00 148 157 D QDBFSRCM00 158 167 D QDBFSRCL00 168 177 D* Source File Fields D QDBFKRCV 178 178 D* Access Path Recovery D* (RECOVER) D* 'A' = The file has its access D* path built after the D* IPL has been completed D* (*AFTIPL). D* 'N' = The access path of the D* file is NOT built D* during or after an IPL D* (*NO). The file's D* access path is built D* when the file is next D* opened. D* 'S' = The file has its access D* path built during the D* IPL (*IPL). D QDBFDR 179 179 D* Qdbfh dfp round D* Decimal floating point D* rounding mode. Set for D* logical files and MQTs that D* reference decimal floating D* point fields. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFDW 180 180 D* Qdbfh dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBRSV20 181 201 D* Reserved. D QDBFTCID 202 203U 0 D* Coded Character Set D* Identifier, CCSID, For D* Text Description (TEXT) D* 0 = There is NO text D* description for the file. D* 1-65,535 = The CCSID for the D* file's text D* description. D QDBFASP 204 205 D* Auxiliary Storage Pool (ASP) D* X'0000' = The file is D* located on the D* system auxiliary D* storage pool. D* X'0002'-X'0010' = The user D* auxiliary storage D* pool the file is D* located on D* (asp-identifier). D*QDBFNBIT00 1 D QDBBITS71 206 206 D* QDBFHUDT00 1 BIT D* QDBFHLOB00 1 BIT D* QDBFHDTL00 1 BIT D* QDBFHUDF00 1 BIT D* QDBFHLON00 1 BIT D* QDBFHLOP00 1 BIT D* QDBFHDLL00 1 BIT D* QDBQLVOL00 1 BIT D* Complex Object flags. D QDBXFNUM 207 208B 0 D* Maximum Number Of Fields D* 1-8000 = The number of fields D* in the file's record D* format that contains D* the largest number D* of fields. D QDBRSV22 209 282 D* Reserved. D*QDBFIDFL00 2 D QDBBITS75 283 284 D* QDBR12100 5 BITS D* QDBFFHIC00 1 BIT D* QDBFFHR00 1 BIT D* QDBFRCT00 1 BIT D* QDBR12200 6 BITS D* QDBFKIM00 1 BIT D* QDBR12400 1 BIT D* Identity/Rowid flags. D QDBFODIC 285 288B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* IDDU/SQL Data Dictionary D* Area, Qdbfdic. D QDBRSV23 289 302 D* Reserved. D QDBFFIGL 303 304B 0 D* File Generic Key Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBFMXRL 305 306I 0 D* Maximum Record Length D* 1-32766 = The length of the D* record in the D* file's record D* format that D* contains the D* largest number of D* bytes. D QDBRSV24 307 314 D* Reserved. D QDBFGKCT 315 316B 0 D* File Generic Key Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFOS 317 320B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* File Scope Array, Qdbfb. D QDBRSV25 321 328 D* Reserved. D QDBFOCS 329 332B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Alternative Collating D* Sequence Table section, D* Qdbfacs. D QDBRSV26 333 336 D* Reserved. D QDBFPACT 337 338 D* Access Path Type D* 'AR' = Arrival sequence D* access path. D* 'KC' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* changed-first-out D* (FCFO) order. D* 'KF' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* in-first-out D* (FIFO) order. D* 'KL' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in last- D* in-first-out D* (LIFO) order. D* 'KN' = Keyed sequence access D* path with duplicate D* keys allowed. D* No order is guaranteed D* when accessing D* duplicate keys. D* Duplicate keys are D* accessed in one of the D* following methods: D* (FCFO) (FIFO) (LIFO). D* 'KU' = Keyed sequence access D* path with NO duplicate D* keys allowed (UNIQUE). D* 'EV' = Encoded Vector with a D* 1, 2, or 4 byte vector D* D QDBFHRLS 339 344 D* File Version Release D* Modification Level D* 'VxRyMz' = Where x is the D* Version, y is the D* Release, and z is D* the Modification D* level D* example V2R1M1 D* Version 2 Release D* 1 Modification 1 D QDBRSV27 345 364 D* Reserved. D QDBPFOF 365 368B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Physical File Specific D* Attributes section, Qdbfphys. D QDBLFOF 369 372B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Logical File Specific D* Attributes section, Qdbflogl. D*QDBFSSFP00 6 D* QDBFNLSB01 1 D QDBBITS58 373 373 D* QDBFSSCS02 3 BITS D* QDBR10302 5 BITS D QDBFLANG01 374 376 D QDBFCNTY01 377 378 D* Sort Sequence Table D QDBFJORN 379 382B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Journal Section, Qdbfjoal. D QDBFEVID 383 386U 0 D* Initial number of distinct D* values an encoded vector D* access path was allowed at D* creation. Default will be set D* to hex zeros D QDBRSV28 387 400 D* Reserved. D**************************************************************** D* D*The FDT header ends here. D* D**************************************************************** D******************************************************************** D* PHYSICAL FILE DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBQ05 DS D* Flags D QDBBITS06 1 1 D* QDBFRDEL 1 BIT D* Reuse Deleted Records D* (REUSEDLT) D* 0 = The deleted record space D* in the file's members is D* NOT used again by the D* system on Write (Insert) D* requests to the file's D* members (*NO). D* 1 = The deleted record space D* in the file's members is D* used again by the system D* on Write (Insert) D* requests to the file's D* members (*YES). D* QDBRSV30 3 BITS D* Reserved. D* QDBFSQLT 1 BIT D* SQL Table Indicator D* 0 = The file is NOT an SQL D* table. D* 1 = The file is an SQL table. D* QDBFMQT 1 BIT D* SQL Materialized Query Table D* Indicator D* 0 = The file is not an MQT. D* 1 = The file is an MQT. D* QDBFSQPT 1 BIT D* SQL Partitioned Table D* Indicator D* 0 = The file is not an SQL D* Partitioned Table. D* 1 = The file is an SQL D* Partitioned Table. D* QDBRSV31 1 BIT D* Reserved. D**************************************************************** D* D*Physical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset QDBPFOF, which is D*located in the FDT header section. D**************************************************************** DQDBQ26 DS D* Physical File Attributes D QDBFPALC 1 2 D* Allocate/Contiguous Storage D* (ALLOCATE and CONTIG) D* 'DN' = New members added to D* the file allow the D* system to determine D* storage space that is D* allocated for the D* member (ALLOCATE(*NO)). D* 'IC' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is D* attempted to be D* allocated contiguously D* (CONTIG(*YES)). D* 'IN' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is NOT D* attempted to be D* allocated contiguously D* (CONTIG(*NO)). D QDBFCMPS 3 3 D* Maximum Percentage Of Deleted D* Records Allowed (DLTPCT) D* X'00' = The number of deleted D* records in the file's D* member is NOT checked D* when the member is D* closed (*NONE). D* X'01'-X'64' = The largest D* percentage of D* deleted records D* that the file's D* member should D* have (deleted- D* records- D* threshold- D* percentage). D QDBFS00 4 7U 0 D* For SQL Partitioned Tables D* offset from the start D* of the FDT header, Qdbfh, to D* the SQL Partitioned Area. D QDBRSV29 8 11 D* Reserved. CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBPRNUM 12 15I 0 D* Initial Number Of Records D* (SIZE) D* 0 = The number of records D* that can be inserted into D* each member of the file D* is NOT limited by the D* user. The maximum size D* of each member is D* determined by the system D* (*NOMAX). D* 1-2,147,483,646 = The number D* of records that can be D* inserted before an D* automatic extension D* occurs (number-of- D* records). CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBFPRI 16 17I 0 D* Increment Number Of Records D* (SIZE) D* 0-32,767 = The maximum number D* of additional D* records that can D* be inserted into D* the member after D* an automatic D* extension occurs D* (increment-value). CN01 * CAMBIATO TIPO DATO DA "B" a "I" CN01 D QDBRINUM 18 19I 0 D* Maximum Number Of Increments D* (SIZE) D* 0-32,767 = The maximum number D* of increments D* that can be D* automatically D* added to the D* member (number-of- D* increments). D QDBFORID 20 23B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Record ID Codes for program D* described physical files, D* Qdbforid. D*QDBFLAGS 1 D QDBBITS33 24 24 D* QDBFRDEL00 1 BIT D* QDBRSV3000 3 BITS D* QDBFSQLT00 1 BIT D* QDBFMQT00 1 BIT D* QDBFSQPT00 1 BIT D* QDBRSV3100 1 BIT D* Flags D QDBFOTRG 25 28B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg D QDBFTRGN 29 30B 0 D* Number of triggers D QDBFOFCS 31 34B 0 D* This is the offset from the D* start of the FDT header, D* Qdbfh, to the Constraint D* Definition Area, D* Qdb_Qdbf_constraint D QDBFCSTN 35 38B 0 D* Number of constraint for the D* File D QDBFODL 39 42B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* datalinks area, D* Qdb_Qdbfdtalnk. D QDBFM 43 46U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL Area. D QDBRSV32 47 48 D* Reserved. D******************************************************************** D* TRIGGER DECLARATIONS D******************************************************************** D** Trigger Flags ******************************************** DQDBFTRGF DS D* Trigger Flags D QDBBITS68 1 1 D* QDBFALRC 1 BIT D* Allow Repeated Change Indicator D* 0 = *NO (not allowed) D* 1 = *YES (allows change) D* QDBFTTHS 2 BITS D* Threadsafe Indicator D* B'00' = *UNKNOWN (Threadsafe D* status is not known) D* B'10' = *NO (Not threadsafe) D* B'11' = *YES (Threadsafe) D* QDBFTMTA 2 BITS D* Multithreaded Job Action D* Indicator D* B'01' = *MSG (Run, diagnostic) D* B'10' = *NORUN (Escape) D* B'11' = *RUN (Run, no message) D* QDBFTQMT 1 BIT D* QMLTTHDACN system value usage D* 0 = Not used D* 1 = Used D* QDBFMTI 1 BIT D* Qdbf more trg info D* Indicates more trigger D* information is available if D* format FILD0400 is requested. D* 0 = No more info available D* 1 = More information available D* @ADA D* QDBR202 1 BIT D* Reserved. @ADC D**************************************************************** D* D*Trigger Description Area D* D*The Trigger information for this file. D* D**************************************************************** D*This section can be located with the offset Qdbfotrg, D*located in the Physical File Specific Attributes section, D*or with the offset Qdbflotrg, located in the Logical File D*Specific Attributes section. D*This is repeated by the number of triggers Qdbftrgn or D*Qdbfltrgn. D**************************************************************** DQDBQ27 DS D* Trigger Section D QDBFTRGT 1 1 D* Trigger Time D* '1' = Run a trigger AFTER the D* change operation. D* '2' = Run a trigger BEFORE the D* change operation. D* '3' = Run a trigger INSTEAD OF D* the operaton D QDBFTRGE 2 2 D* Trigger Event D* '1' = INSERT operation. D* '2' = DELETE operation. D* '3' = UPDATE operation. D* '4' = READ operation D QDBFTPGM 3 12 D* Trigger Program Name D QDBFTPLB 13 22 D* Trigger Program Library D QDBFTUPD 23 23 D* Trigger update condition. This D* field is only valid for UPDATE D* event. This field will be D* ignored for INSERT or DELETE D* event. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. D*QDBFTRGF00 1 D QDBBITS69 24 24 D* QDBFALRC00 1 BIT D* QDBFTTHS00 2 BITS D* QDBFTMTA00 2 BITS D* QDBFTQMT00 1 BIT D* QDBFMTI00 1 BIT D* QDBR20200 1 BIT D* Trigger Flags D QDBR201 25 48 D* Reserved. D**************************************************************** D* D*Constraint Definition Area D* D*The constraint definition area information about D*constraints for this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfofcs, which D*is located in the Physical File Specific Attributes section. D**************************************************************** D******************************************************************* D*Constraint Definition Header D* D******************************************************************* DQDBQC DS D* File Constraint Definition D* Area. D QDBFC 1 4B 0 D* Offset from D* Qdb_Qdbf_Constraint D* to the next section for D* this constraint D QDBFH 5 8B 0 D* Constraint Entry Header D* Length in Bytes. D QDBFT00 9 9 D* Constraint Type D* (TYPE) D* 'P' = Primary Unique D* Constraint D* 'F' = Referential Constraint D* 'U' = Unique Constraint. D* 'C' = Check Constraint D QDBFC00 10 10 D* Check Pending Attribute D* 'N' = The constraint is not D* in check pending. D* 'Y' = The constraint is in D* check pending. D QDBFS 11 11 D* Constraint State D* 'D' = The constraint is D* defined. D* 'E' = The constraint is D* established. D QDBFA 12 12 D* Constraint State D* (STATE) D* 'D' = The constraint is D* disabled. D* 'E' = The constraint is D* enabled. D QDBFAT 13 25 D* Constraint Date D* The Constraint Date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBFCL 26 35 D* Constraint library name D QDBFCL2 36 39B 0 D* Constraint Name (delimited) D* Length. D QDBFCC 40 40 D* Enable Constraint Type D* (CHECK) D* 'U' = The constraint is D* enabled without checking. D* ' ' = The constraint is D* enabled with checking or D* is disabled. @ASA D QDBR2 41 64 D* Reserved. @ASC D QDBFCN 65 322 D* Constraint name (CST) D******************************************************************* D*Constraint Definition Body which follows the Constraint Header D* D* ------------------------------------ D* ||| --Constraint Definition ||| D* ||| Body, variable length. ||| D* ||| - 'F' = Referential ||| D* ||| constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| 2) Qdb_Qdbf_Keyn ||| D* ||| 3) Qdb_Qdbf_Riafk_Afkd||| D* ||| ||| D* ||| - 'U' = Unique ||| D* ||| Constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| ||| D* ||| - 'P' = Primary Unique ||| D* ||| Constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| ||| D* ||| - 'C' = Check Constraint ||| D* ||| 1) Qdb_Qdbf_Chk_Cst ||| D* ||| ||| D* ------------------------------------ D* D******************************************************************* D******************************************************************* D*Structure for the Constraint Keys. D******************************************************************* D*This section can be located with the offset Qdbf_Hlen, which is D*located in the Constraint Definition Header section, or with the D*with the offset Qdbf_Kslen when this is a Referential Constraint. D******************************************************************* DQDBQN DS D* Key Name Array D QDBFK 1 10 D* KEY Name (PRNKEY KEY) D QDBR6 11 32 D* Reserved DQDBQK DS D* Constraint Key Structure D QDBFK00 1 4B 0 D* Constraint Key Structure D* Length. The length, in bytes, D* of this Constraint Key D* Structure. This is also the D* offset from Qdb_Qdbf_Keyn D* to the next structure for D* this constraint. D* D QDBFN01 5 8B 0 D* Number of Keys. D* 1-120 = The count of the D* number of key fields for the D* Constraints key. D* D QDBFK01 9 12B 0 D* Constraint Key Length. D* D QDBR7 13 64 D* Reserved D*QDBFN02 32 D QDBFK02 65 74 D QDBR600 75 96 D* Key Name Array D******************************************************************* D*Structure for Referential Constraint D******************************************************************* D*This section can be located with the offset Qdbf_Kslen when this D*is a Referential Constraint. D******************************************************************* DQDBQRA DS D* Referential Constraint D* Definition D* D QDBFRP 1 10 D* Parent File Name (PRNFILE) D* D QDBFRP00 11 20 D* Parent File Library Name. D* D QDBR3 21 64 D* Reserved D* D QDBFRF 65 65 D* Delete Rule D* (DLTRULE) D* 'C' = *CASCADE D* 'D' = *SETDFT D* 'L' = *SETNULL D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D QDBR4 66 66 D* Reserved. D* D QDBFRF00 67 67 D* Update Rule. D* (UPDRULE) D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D* D QDBR5 68 128 D* Reserved. D* ************************************************************ D* Structure for a Check Constraint expression D* ************************************************************ DQDBQCC DS D* Qdb Qdbf Chk Cst D QDBFCL00 1 4B 0 D* Structure Length D QDBFCL01 5 8B 0 D* Expression Length D QDBFCDR 9 9 D* Decimal floating point D* rounding mode. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFCDW 10 10 D* Qdbf chk dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBR8 11 32 D* .. reserved D*QDBQC00 33 33 D* D* First character of D* expression D* (varying length) D* ************************************************************ D* Structure for datalink header information. D* ************************************************************ DQDBTALNK DS D* Qdb Qdbfdtalnk D QDBLCOLN 1 4B 0 D* Number of datalink D* columns with links to D* servers. D QDBOCOLE 5 8B 0 D* Offset fromQdb_Qdbfdtalnk D* to the Qdb_dbfdlcole D* area. D QDBLINKP 9 9 D* Link pending staus. D* 'N' The file is not in D* link pending. D* 'Y' The file is in D* link pending. D QDBR127 10 32 D* .. reserved D* ************************************************************ D* Structure for datalink column information. D* ************************************************************ DQDBLCOLE DS D* Qdb Qdbfdlcole D QDBCELEN 1 4B 0 D* Length of this entry. D* Use this length to get D* to the next entry. D QDBLSEVN 5 8B 0 D* Number of servers linked D* for this column. D QDBCOLNM 9 18 D* Column name. D QDBR02 19 32 D* .. reserved D QDBSEVNM 33 286 D* Array of server names. D**************************************************************** D*Record ID Code Array Entry D**************************************************************** DQDBFDRAE DS D* Record ID Code Array D QDBRSV3400 1 4 D* Reserved. D QDBFDRNM00 5 14 D* External Name D QDBFDRRP00 15 16B 0 D* Relative Field Position D* 1-8000 = The relative D* position of the D* field in the record D* format. D QDBFDRCO00 17 18 D* Comparison Operator D* 'EQ' = Compare equal. D* 'NE' = Compare NOT equal. D* 'ZN' = Compare zone. D* 'NZ' = Compare NOT zone. D* 'DG' = Compare digit. D* 'ND' = Compare NOT digit. D QDBFDRLN00 19 20B 0 D* Length Of Test Value D* 1 = Test value length must be D* 1. D QDBFDRTV00 21 21 D* Test Value D QDBFDRAO00 22 22 D* AND/OR/Last Operator D* '0' = Last array entry. D* '1' = AND with next array D* entry. D* '2' = OR with next array D* entry. D QDBRSV3500 23 32 D* Reserved. D**************************************************************** D* D*Record ID Codes D* D*The Record ID Codes for program described physical D*files. The Record ID Code information is an array with D*variable length entries. D* D**************************************************************** D*This section can be located with the offset Qdbforid, which D*is located in the Physical File Specific Attributes section. D**************************************************************** DQDBQ28 DS D* Record ID Codes D* Record ID Code Header D QDBDRNUM 1 2B 0 D* The Number Of Record ID Code D* Array Entries D* 0-70 = The number of elements D* in the Record ID Code D* array. D QDBFDRTL 3 6B 0 D* Size Of This Record ID Code D* Table D* 0-2256 = The Record ID Code D* table size in bytes. D QDBRSV33 7 16 D* Reserved. D*QDBFDRAE00 32 D QDBRSV3401 17 20 D QDBFDRNM01 21 30 D QDBFDRRP01 31 32B 0 D QDBFDRCO01 33 34 D QDBFDRLN01 35 36B 0 D QDBFDRTV01 37 37 D QDBFDRAO01 38 38 D QDBRSV3501 39 48 D* Record ID Code Array Entry D******************************************************************** D* LOGICAL FILE DECLARATIONS FOR SQL INDEX D******************************************************************** DQDBQS DS D* SQL Index Attributes @APA D QDBBITS82 1 1 D* QDBFSI 1 BIT D* SQL Index with a derived key D* indicator: D* 0 = The file is NOT an SQL D* Index with a derived Key. D* 1 = The file is an SQL Index D* with a derived key. D* @APA D* QDBFSIU 1 BIT D* SQL Index with a derived key D* with a user defined UDF D* indicator: D* 0 = The file does NOT use a D* user defined UDF. D* 1 = The file does use a user D* defined UDF. D* @APA D* QDBFSW 1 BIT D* SQL Index with a Where D* clause indicator: D* 0 = The file does NOT have a D* Where clause. D* 1 = The file has a Where clause. D* @APA D* QDBFSWU 1 BIT D* SQL Index with a Where D* clause uses a user defined UDF D* indicator: D* 0 = The file does NOT use a user D* defined UDF. D* 1 = The file does use a user D* defined UDF. D* @APA D* QDBR501 4 BITS D* Reserved. @APA D******************************************************************** D* LOGICAL FILE DECLARATIONS D******************************************************************** D** Logical File Attributes *********************************** DQDBQLFA DS D* Logical File Attributes D QDBBITS07 1 1 D* QDBRSV36 2 BITS D* Reserved. D* QDBFJOIN 1 BIT D* Join Logical File Indicator D* (JFILE) D* 0 = The file is NOT a join D* logical file. D* 1 = The file is a join D* logical file. D* QDBFDYNS 1 BIT D* Dynamic Selection Indicator D* (DYNSLT) D* 0 = The selection and D* omission tests specified D* for the file are done D* when the access path is D* updated. D* 1 = The selection and D* omission tests specified D* for the file are done D* when the record is read D* (retrieved). D* QDBFSQLV 1 BIT D* SQL View Indicator D* 0 = The file is NOT an SQL D* view. D* 1 = The file is an SQL view. D* QDBFSQLI 1 BIT D* SQL Index Indicator D* 0 = The file is NOT an SQL D* index. D* 1 = The file is an SQL index. D* QDBRSV37 2 BITS D* Reserved. D**************************************************************** D* D*Logical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset Qdblfof, which is D*located in the FDT header section. D**************************************************************** DQDBQ29 DS D* Logical File Attributes D QDBFOJ 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj. D QDBFSCSN 5 6B 0 D* Total Number Of Select/Omit D* Statements For All Record D* Formats D* 1-32767 = The number of D* Select/Omit D* statements for all D* of the files D* record formats. D QDBFLXP 7 16 D* Record Format Selector D* Program (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFLXL 17 26 D* Record Format Selector D* Program's Library (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFOVW 27 30B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Area, Qdbfv. D*QDBQLFA00 1 D QDBBITS34 31 31 D* QDBRSV3600 2 BITS D* QDBFJOIN00 1 BIT D* QDBFDYNS00 1 BIT D* QDBFSQLV00 1 BIT D* QDBFSQLI00 1 BIT D* QDBRSV3700 2 BITS D* Logical File Attributes D QDBFJTYP 32 32 D* Join File Type D* 'I' = Inner join. No default D* entries will be D* supplied if a join D* value does NOT exist. D* 'P' = Partial outer join. D* Default values D* (JDFTVAL) will be D* supplied if a join D* value does NOT exist. D QDBFSRCD 33 34U 0 D* Coded Character Set D* Identifier, CCSID, For D* Select/Omit Constants D* 0 = There are NO Select/Omit D* constants for the file. D* 1-65,535 = The CCSID for the D* file's Select/Omit D* constants. D QDBFWCHK 35 35 D* With Check Option D* 'C' = The With Check Option D* was specified with D* CASCADE. D* 'L' = The With Check Option D* was specified with D* Local. D* 'N' = No With Check Option D* was specified. D* This value will be set D* for all logical files. The D* values of 'C' and 'L' will D* only apply for SQL views. D QDBLOTRG 36 39B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg @0DA D QDBLTRGN 40 41B 0 D* Number of triggers @0DA D*QDBQS00 1 D QDBBITS83 42 42 D* QDBFSI00 1 BIT D* QDBFSIU00 1 BIT D* QDBFSW00 1 BIT D* QDBFSWU00 1 BIT D* QDBR50100 4 BITS D* Logical File Attributes for D* an SQL Index with derived keys, D* or a WHERE clause. @APA D QDBRSV38 43 48 D* Reserved. @0DC D******************************************************************** D* SQL AREA FLAG DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBVFLGS DS D* Flags D QDBBITS76 1 1 D* QDBFI 1 BIT D* SQL materialized query table D* initial data indicator: D* 0 = Deferred. Data is not D* inserted into the table as D* part of the Create Table D* statement. D* 1 = Immediate. Data is inserted D* initially. D* QDBFM00 1 BIT D* SQL materialized query table D* maintenance indicator: D* 0 = Reserved. D* 1 = User-maintained. D* QDBFR 1 BIT D* SQL materialized query table D* refresh indicator: D* 0 = Refresh-deferred. D* 1 = Reserved. D* QDBFO 1 BIT D* SQL materialized query table D* optimization indicator: D* 0 = Enabled for optimization. D* 1 = Disabled for optimization. D* QDBR123 1 BIT D* Reserved. D* QDBFR09 1 BIT D* SQL materialized query table D* restore deferred indicator: D* 0 = MQT is not deferred. D* 1 = MQT is deferred because D* it was restored without D* its based-on files, and D* the based-on files have D* not yet been resolved. D* QDBRSV8800 2 BITS D* Reserved. D**************************************************************** D* D*SQL Area D* D*The SQL Area contains the SQL select statement. D* D**************************************************************** D*For SQL views, or indexes D*this section can be located with the offset D*Qdbfovw, which is located in the Logical file specific D*attributes section. For SQL materialized query tables, this D*section can be located with the offset Qdbfovw_mqt, in the D*Physical file specific attributes section. D**************************************************************** DQDBQ30 DS D* SQL Area D QDBRSV39 1 16 D* Reserved. D QDBFS01 17 20U 0 D* Starting offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFE 21 24U 0 D* Ending offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFC03 25 26U 0 D* Coded Character Set D* Identifier, CCSID, for the D* Select Statement D QDBFO00 27 30U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL materialized query D* table dependency area. D QDBFC02 31 32 D* For SQL materialized query D* tables, the isolation level D* in effect for the table: D* 'NC' - *NONE no commit D* 'UR' - *CHG uncommitted read D* 'CS' - *CS cursor stability D* 'CL' - *CS with keep locks D* 'RS' - *ALL read stability D* 'RR' - *RR repeatable read D* Null if not an MQT. D*QDBFVLGS 1 D QDBBITS77 33 33 D* QDBFI00 1 BIT D* QDBFM01 1 BIT D* QDBFR00 1 BIT D* QDBFO01 1 BIT D* QDBR12300 1 BIT D* QDBFR10 1 BIT D* QDBRSV8801 2 BITS D* Flags D QDBFSWS 34 37U 0 D* Qdbfvs sqli wh start D* Starting offset of the WHERE D* condition within CREATE INDEX D* statement. D QDBFSWL 38 41U 0 D* Qdbfvs sqli wh len D* Length of the WHERE D* condition within CREATE INDEX D* statement. D QDBRSV8901 42 56 D* Reserved D* SQL Select Statement, or D* SQL Create Index D* Structure D QDBFVSSL 57 60B 0 D* Select, or Create Index D* Length D*QDBFVSST 61 61 D* Qdbfvsst D* D* SQL Select, or Create Index D* (varying length) D******************************************************************** D* JOIN SPECIFICATION DECLARATIONS D******************************************************************** D** Join Specifications Header ******************************** DQDBQ06 DS D* Join Specifications Header D QDBFJNHO 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj, D* for the next join to-file. D QDBRSV40 5 8 D* Reserved. D QDBJKNUM 9 10B 0 D* Number Of Join Field D* Specifications (JFLD) D* 1-32767 = The number of join D* field statements D* that identify the D* from and to fields D* used to join the D* from-file and D* to-file. D QDBJDNUM 11 12B 0 D* Number Of Join Duplicate D* Sequence Specifications D* (JDUPSEQ) D* 1-32767 = The number of join D* duplicate sequence D* statements that D* specify the order D* in which records D* with duplicate join D* fields are returned D* to your program. D QDBFFNUM 13 14B 0 D* Join From-File Number (JOIN) D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical file to D* join the to-file from. D QDBTFNUM 15 16B 0 D* Join To-File Number (JOIN) D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical to-file D* this Join Specification D* relates to. D QDBRSV41 17 40 D* Reserved. D QDBFJSAO 41 44B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specification Array, D* Qdbfjfld, for this join D* to-file. D QDBFJDAO 45 48B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Duplicate Sequence D* Array, Qdbfjdup, for this D* join to-file. D**************************************************************** D* D*Join Specifications D* D*The Join Specifications are a linked list. There is one D*entry in the linked list for each join to-file. Each D*entry defines the join logical file's based on physical D*files, and the fields in the from-file and the to-file that D*are used to join the based on physical files. D* D**************************************************************** D*This section can be located with the offset Qdbfoj, which is D*located in the FDT header section. D**************************************************************** DQDBQ31 DS D* Join Specifications D*QDBFJHDR 48 D QDBFJNHO00 1 4B 0 D QDBRSV4000 5 8 D QDBJKNUM00 9 10B 0 D QDBJDNUM00 11 12B 0 D QDBFFNUM00 13 14B 0 D QDBTFNUM00 15 16B 0 D QDBRSV4100 17 40 D QDBFJSAO00 41 44B 0 D QDBFJDAO00 45 48B 0 D* Join Specifications Header D**************************************************************** D* D*Join Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjsao, which D*is located in the Join header section. D**************************************************************** DQDBQ32 DS D* Join Specification Array D QDBFJFNM 1 10 D* Join From-Field-Name (JFLD) D QDBJFNUM 11 12B 0 D* Join From-Field Reference D* Number D* 0 = The join from-field is D* a field in the join D* logical file's record D* format. D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement D* that this join D* from-field is D* contained in. D QDBRSV42 13 14 D* Reserved. D QDBFJOP 15 16 D* Join Operation D* 'EQ' = The join operation is D* always equal. D QDBFJTNM 17 26 D* Join To-Field-Name (JFLD) D QDBJTNUM 27 28B 0 D* Join To-Field Reference D* Number D* 0 = The join to-field is a D* field in the join logical D* file's record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* to-field is contained D* in. D QDBRSV43 29 48 D* Reserved. D**************************************************************** D*Join Duplicate Sequence Specification D**************************************************************** D** Join Sequencing-Field-Name Attributes ********************* DQDBQ07 DS D* Join Sequencing-Field-Name D* Attributes D QDBBITS08 1 1 D* QDBFJDD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The join sequencing- D* field-name is an D* ascending sequence field. D* 1 = The join sequencing- D* field-name is a D* descending sequence field D* (*DESCEND). D* QDBRSV44 7 BITS D* Reserved. D**************************************************************** D* D*Join Duplicate Sequence Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjdao, which D*is located in the Join header section. D**************************************************************** DQDBQ33 DS D* Join Duplicate Sequence D* Specifications Array D QDBFJDNM 1 10 D* Join Sequencing-Field-Name D* (JDUPSEQ) D QDBDJNUM 11 12B 0 D* Join Sequencing-Field-Name D* Reference Number D* 0 = The join sequencing- D* field-name is a field in D* the join logical file's D* record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* sequencing-field-name D* is contained in. D*QDBJSFNA 1 D QDBBITS35 13 13 D* QDBFJDD00 1 BIT D* QDBRSV4400 7 BITS D* Join Sequencing-Field-Name D QDBRSV45 14 32 D* Reserved. D******************************************************************** D* SORT SEQUENCE TABLE DECLARATIONS D******************************************************************** D** Sort Sequence Table Fields ******************************** DQDBFSRTS00 DS D* Sort Sequence Table Fields D QDBFTBLN00 1 10 D* Sort Sequence Table Name. D QDBFTBLL00 11 20 D* Sort Sequence Table's. D* Library Name D** Sort Sequence Table Flag ********************************** DQDBQ08 DS D* Sort Sequence Table Flag D QDBBITS09 1 1 D* QDBFWGHT 1 BIT D* Weight Indicator for Single- D* byte Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBFSUBC 1 BIT D* Substitution Character D* Indicator for Single-byte D* Sort Sequence Table D* 0 = The sort sequence D* table for the file does D* not have substitution D* characters. D* 1 = The sort sequence D* table for the file has D* substitution characters. D* QDBUCS2W 1 BIT D* Weight Indicator for UCS-2 D* Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBR104 5 BITS D* Reserved D**************************************************************** D* D*Alternative Collating Sequence Table or Sort Sequence Table. D* D**************************************************************** D*This section can be located with the offset Qdbfocs, which is D*located in the FDT header section. D**************************************************************** DQDBQ34 DS D* Qdb Qdbfacs D QDBFACST 1 256 D* Alternative Collating D* Sequence Table (ALTSEQ), or D* Sort Sequence Table (SRTSEQ) D* Information. Single-byte. D QDBFCCSD 257 258U 0 D* Coded Charactor Set D* Identifier, CCSID, for the D* Single-byte Table. D*QDBFSRTS 20 D QDBFTBLN01 259 268 D QDBFTBLL01 269 278 D* Sort Sequence Table Fields D*QDBFSRTF 1 D QDBBITS36 279 279 D* QDBFWGHT00 1 BIT D* QDBFSUBC00 1 BIT D* QDBUCS2W00 1 BIT D* QDBR10400 5 BITS D* Sort Sequence Table Flag D QDBCS2SL 280 283B 0 D* Length of UCS-2 Sort Sequence D* table, Qdbf_UCS2_Srtseq. D QDBUCS2C 284 285U 0 D* Qdbf UCS2 Ccsd D* Coded Character Set ID, CCSID, D* of UCS-2 sort sequence table. D QDBR101 286 304 D* Reserved D*QDBUCS2S 305 305 D* D* UCS-2 Sort Sequence Table. D* (Varying length.) D**************************************************************** D* D*IDDU/SQL Data Dictionary Area D* D*The IDDU/SQL data dictionary area is present for all Database D*files. D* D**************************************************************** D*This section can be located with the offset Qdbfodic, which D*is located in the FDT header section. D**************************************************************** DQDBFDIC DS D* IDDU/SQL Data Dictionary D* Area D QDBFDILK 1 1 D* Data Dictionary Link Status D* 'L' = The file is linked to D* a Data Dictionary. D* 'U' = The file is NOT linked D* to a Data Dictionary. D QDBFDINM 2 11 D* Data Dictionary/Library Name D QDBFDIFD 12 21 D* Data Dictionary File D* Definition Name D QDBFDIID 22 32 D* Data Dictionary Internal File D* Definition Identifier D QDBRSV46 33 36 D* Reserved. D QDBFDICL 37 40B 0 D* Data Dictionary File D* Definition Comment Length D QDBFDICC 41 42U 0 D* Data Dictionary File D* Definition Comment Coded D* Character Set Identifier D* (CCSID) D* 0 = There is NO file D* definition comment for D* the file. D* 1-65,535 = The CCSID for the D* file's definition D* comment. D QDBFOLNG 43 46B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Long/Alias File Names D* Area, Qdbflngn. D QDBLNNUM 47 48B 0 D* Number of Long/Alias File D* Names for the file D QDBRSV47 49 64 D* Reserved. D*QDBFDICT 65 65 D* D* Data Dictionary File D* Definition Comment Text D* (varying length) D******************************************************************** D* SQL LONG ALIAS FILE NAME DECLARATIONS D******************************************************************** D** Long/Alias File Name Flag Byte **************************** DQDBQ09 DS D* Long/Alias File Name Flag D* Byte D QDBBITS10 1 1 D* QDBFLNDL 1 BIT D* Long/Alias File Name D* Input Delimited Indicator D* 0 = Long/Alias File Name was D* NOT delimited when D* supplied as input. D* 1 = Long/Alias File Name was D* delimited when supplied D* as input. D* QDBR111 7 BITS D* Reserved D**************************************************************** D* D*SQL Long/Alias File Names Area D* D*The SQL Long/Alias File Names Area contains the files D*alternate names that can be used to access the file when D*using the systems SQL interfaces. D**************************************************************** D*This section can be located with the offset Qdbfolng, which D*is located in the IDDU/SQL Data Dictionary Area section. D**************************************************************** DQDBQ35 DS D* SQL Long/Alias File Names D* Area D* Long/Alias File Names Entry D QDBFLNEL 1 2B 0 D* Long/Alias File Name Entry D* Length. The length, in bytes, D* of this Long/Alias File Name D* Entry. This also is the D* offset from Qdb_Qdbflngn to D* the next Long/Alias File Name D* Entry. D*QDBFLNFL 1 D QDBBITS37 3 3 D* QDBFLNDL00 1 BIT D* QDBR11100 7 BITS D* Long/Alias File Name Flag D QDBFLNLG 4 5B 0 D* Long/Alias File Name D* (non-delimited) Length D QDBR112 6 16 D* Reserved D*QDBFLNAM 17 17 D* D* The Long/Alias File Name D* (non-delimited) D* (varying length) D**************************************************************** D* D*File Scope Array D* D*The file scope array is present for all Database files. D*The number of data members, Qdbflb£, contains the number of D*file scope array entries. Each entry contains a based on D*physical file name, and optionally a record format name. D* D*Externally Described Physical Files: D* There is only one entry. The entry names the physical D* file record format. The file name portion of the entry D* is NOT used. D* D*Program Described Physical Files: D* There is one entry for each Data Dictionary record format. D* The entry names the Data Dictionary record format. The D* file name portion of the entry is NOT used. D* D*Non-Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file and describes the D* logical file record format to use with the based on file. D* D*Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file. Only the first D* entry describes the logical file record format to use with D* the join logical file. D* D*SQL View Logical Files: D* There is one entry for each based on physical file. Each D* entry names the base on file which will be either an D* externally described physical file, or another view D* logical file. Only the first entry describes the logical D* file record format to use with the view logical file. D* D**************************************************************** D*This section can be located with the offset Qdbfos, which is D*located in the FDT header section. D**************************************************************** DQDBQ36 DS D* Qdb Qdbfb D QDBRSV48 1 48 D* Reserved. D QDBFBF 49 58 D* Based On Physical File Name D QDBFBFL 59 68 D* Based On Physical File's D* Library Name D QDBFT01 69 78 D* Record Format Name D* The name of this particular D* record format for the file. D QDBRSV49 79 115 D* Reserved. D QDBFBGKY 116 117B 0 D* Record Format Generic Key D* Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV50 118 119 D* Reserved. D QDBFBLKY 120 121B 0 D* Record Format Maximum Key D* Length D* 1-32768 = Maximum length of D* the key for the D* record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV51 122 123 D* Reserved. D QDBFFOGL 124 125B 0 D* Record Format Generic Key D* Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV52 126 128 D* Reserved. D QDBFSOON 129 130B 0 D* Number Of Select/Omit D* Statements D* 1-32767 = The number of D* Select/Omit D* statements for this D* record format. D QDBFSOOF 131 134B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Specification D* Array, Qdbfss. D QDBFKSOF 135 138B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Key Specification Array, D* Qdbfk. D QDBFKYCT 139 140B 0 D* Record Format Full Key Field D* Count D* 0-120 = The count of the D* total number of key D* fields for the record D* format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFGENF 141 142B 0 D* Generic Key Field Count For D* All Record Formats With This D* Record Format Name D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* all the record D* formats with this D* record format's name. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFODIS 143 146B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Distributed File Definition D* Section Qdbf_dis, which D* contains the Partition Key D* Array, Qdbf_dis_pkeyarr. D QDBRSV53 147 160 D* Reserved. D******************************************************************** D* SELECT/OMIT STATEMENT DECLARATIONS D******************************************************************** D** Select/Omit Statement Attribute Flags ********************* DQDBQ10 DS D* Select/Omit Statement D* Attribute Flags D QDBBITS11 1 1 D* QDBRSV55 7 BITS D* Reserved. D* QDBFSSFI 1 BIT D* Select/Omit Statement D* External Or Internal Name D* Indicator D* 0 = The Select/Omit statement D* field name is an internal D* record format name. D* 1 = The Select/Omit statement D* field name is an external D* record format name. D**************************************************************** D* D*Select/Omit Specification Array D* D*The Select/Omit specification array entries describe the D*record format's fields that the Select/Omit statements D*refer to. D* D*Non-Join Logical Files: D* There can be one Select/Omit specification array for D* each file scope array entry. D* D*Join Logical Files: D* There can only be one Select/Omit specification array D* for the join logical file. The first scope array entry D* for the join logical file will contain the offset to the D* file's Select/Omit specification array. D* D*All Select/Omit specification arrays will end with an D*'AL' operation. D* D*Select/Omit constant operands have the following form: D* D* Character - Quoted character string (imbedded quotes D* must be double quoted 'ISN''T'). D* Blank padding will be done if the character D* constant passed is shorter than the field. D* D* Hexadecimal - X followed by a quoted string of valid D* hexadecimal values (X'F1F2F3'). D* No padding will be done for a hexadecimal D* constant. The length of a hexadecimal D* constant must exactly match the field D* length. D* D* Floating - External form of floating point D* Point (1.234 E+10). D* D* Packed or - String of 0 through 9 without decimal point. D* Zoned or The decimal point is assumed at the D* Binary appropriate precision. The string must be D* Preceded by a - if negative and may be D* preceded by a + if positive (+1234 or D* -1234 would be +1.234 or -1.234 if the field D* was defined to have 3 decimal places). D* D**************************************************************** D*This section can be located with the offset Qdbfsoof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ37 DS D* Select/Omit Specification D* Array D QDBRSV54 1 2 D* Reserved. D QDBFSSSO 3 3 D* Select/Omit Statement Rule D* 'A' = Select/Omit ANDed D* statement D* 'O' = Select/Omit omit D* statement D* 'S' = Select/Omit select D* statement D QDBFSSOP 4 5 D* Select/Omit Statement D* Comparison (ALL COMP VALUES) D* 'AL' = The Select/Omit D* statement comparison D* is for all (ALL) D* 'EQ' = The Select/Omit D* statement comparison D* is for equal to D* (COMP EQ). D* 'GE' = The Select/Omit D* statement comparison D* is for greater than D* or equal to (COMP GE). D* 'GT' = The Select/Omit D* statement comparison D* is for greater than D* (COMP GT). D* 'LE' = The Select/Omit D* statement comparison D* is for less than or D* equal to (COMP LE). D* 'LT' = The Select/Omit D* statement comparison D* is for less than D* (COMP LT). D* 'NE' = The Select/Omit D* statement comparison D* is for NOT equal to D* (COMP NE). D* 'NG' = The Select/Omit D* statement comparison D* is for NOT greater D* than (COMP NG). D* 'NL' = The Select/Omit D* statement comparison D* is for NOT less than D* (COMP NL). D* 'VA' = The Select/Omit D* statement comparison D* is for values (VALUES) D QDBFSSFN 6 15 D* Select/Omit Statement Field D* Name D QDBSPNUM 16 17B 0 D* Number Of Select/Omit D* Statement Parameters D* 1-32767 = The number of D* Select/Omit D* parameters for this D* Select/Omit D* statement. D*QDBSOSAF 1 D QDBBITS38 18 18 D* QDBRSV5500 7 BITS D* QDBFSSFI00 1 BIT D* Select/Omit Statement D QDBFSSFJ 19 20B 0 D* Select/Omit Statement Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* statement field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. D QDBRSV56 21 28 D* Reserved. D QDBFSOSO 29 32B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Parameters, D* Qdbfsp, for this Select/Omit D* statement. D******************************************************************** D* SELECT/OMIT PARAMETER DECLARATIONS D******************************************************************** D** Additional Select/Omit Parameter Attribute Flags ********** DQDBQ11 DS D* Additional Select/Omit D* Parameter Attribute Flags D QDBBITS12 1 1 D* QDBFSIGC 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* Indicator D* 0 = The non-field compare D* value does NOT contain D* any DBCS or Graphic data. D* 1 = The non-field compare D* value does contain DBCS D* or Graphic data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSHEX 1 BIT D* Hexadecimal Data Indicator D* 0 = The non-field compare D* value is NOT hexadecimal D* data. D* 1 = The non-field compare D* value is hexadecimal D* data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSNUL 1 BIT D* Null Value Indicator D* 0 = The non-field compare D* value is NOT the null D* value. D* 1 = The non-field compare D* value is the null value. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBRSV57 5 BITS D* Reserved. D**************************************************************** D* D*Select/Omit Parameters D* D*This is a linked list of parameter descriptions. This D*section describes the parameter values for this particular D*Select/Omit statement. The Select/Omit parameters are D*either a compare value or another record format field. D* D**************************************************************** D*This section can be located with the offset Qdbfsoso, which D*is located in the Select omit array section. D**************************************************************** DQDBQ38 DS D* Select/Omit Parameter D QDBFSPNO 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* next Select/Omit Parameter, D* Qdbfsp, for this Select/Omit D* statement. D QDBFSPLN 5 6B 0 D* Select/Omit Parameter Length D* 1-32767 = The length of this D* Select/Omit D* parameter structure D* including the D* actual compare D* value. D QDBFSPIN 7 7 D* Select/Omit Parameter D* Attribute Indicator D* X'00' = The Select/Omit D* parameter is NOT D* another record format D* field. It is an D* actual compare value. D* X'01' = The Select/Omit D* parameter is another D* internal record D* format field. D* X'02' = The Select/Omit D* parameter is another D* external record D* format field. D*QDBSOPAF 1 D QDBBITS39 8 8 D* QDBFSIGC00 1 BIT D* QDBFSHEX00 1 BIT D* QDBFSNUL00 1 BIT D* QDBRSV5700 5 BITS D* Additional Select/Omit D QDBFSPPJ 9 10B 0 D* Select/Omit Parameter Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* parameter field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. Also, D* if this is a non-field D* compare value, then this D* field is NOT applicable. D QDBRSV58 11 20 D* Reserved. D*QDBFSPVL 21 21 D* D* Select/Omit Parameter Compare D*(varying length) Value Or Record Format Field D* Name D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is an actual D* compare value (X'00'), then D* this field is the parameter D* compare value. D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is a record format D* field (X'01' or X'02'), then D* this field is the CHAR(10) D* parameter record format field D* name. D******************************************************************** D* KEY SPECIFICATION ARRAY DECLARATIONS D******************************************************************** D** Key Statement Sequencing Attribute Flags ****************** DQDBQ12 DS D* Key Statement Sequencing D* Attribute Flags D QDBBITS13 1 1 D* QDBFKSAD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The key field is an D* ascending sequence key. D* 1 = The key field is a D* descending sequence key D* (*DESCEND). D* QDBFKSN 2 BITS D* Numeric Key Field Sequencing D* Indicators D* B'00' = The numeric key field D* will sequence as a D* string of unsigned D* binary data D* (UNSIGNED). D* B'01' = The numeric key field D* will ignore the sign D* of the field and D* sequence as absolute D* value data (ABSVAL). D* B'10' = The numeric key field D* will consider the D* signs of the field D* and sequence as D* signed value data D* (SIGNED). D* QDBRSV60 1 BIT D* Reserved. D* QDBFKSAC 1 BIT D* Alternative Collating D* Sequence Indicator (ALTSEQ) D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field D* (NOALTSEQ). D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating D* sequence table, then this D* field is NOT applicable. D* QDBFKSZF 1 BIT D* Force Zone Sequencing D* Indicators D* 0 = The zone portion of the D* key field will NOT be D* zeroed. D* 1 = The zone portion of the D* key field will be zeroed D* so that only the digit D* portions (farthest right D* 4 bits) of the key values D* will be used in the key D* sequencing (DIGIT). D* QDBFKSDF 1 BIT D* Force Digit Sequencing D* Indicators D* 0 = The digit portion of the D* key field will NOT be D* zeroed. D* 1 = The digit portion of the D* key field will be zeroed D* so that only the zone D* portions (farthest left D* 4 bits) of the key values D* will be used in the key D* sequencing (ZONE). D* QDBFKFT 1 BIT D* Key Statement External Or D* Internal Name Indicator D* 0 = The key statement field D* name is an internal D* record format name. D* 1 = The key statement field D* name is an external D* record format name. D**************************************************************** D* D*Key Specification Array D* D*The key specification array entries describe the record D*format's fields that are used in defining the access path D*for the file. D* D*Non-Join Logical Files: D* There can be one key specification array for each file D* scope array entry. D* D*Join Logical Files: D* There can only be one key specification array for the D* join logical file. The first scope array entry for the D* join logical file will contain the offset to the file's D* key specification array. D* D**************************************************************** D*This section can be located with the offset Qdbfksof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ39 DS D* Key Specification Array D QDBFKFLD 1 10 D* Key Statement Field Name D* X'40's = The key statement D* field is a *NONE key D* field. D QDBRSV59 11 13 D* Reserved. D*QDBFKSQ 1 D QDBBITS40 14 14 D* QDBFKSAD00 1 BIT D* QDBFKSN00 2 BITS D* QDBRSV6000 1 BIT D* QDBFKSAC00 1 BIT D* QDBFKSZF00 1 BIT D* QDBFKSDF00 1 BIT D* QDBFKFT00 1 BIT D* Key Statement Sequencing D QDBRSV61 15 32 D* Reserved. D******************************************************************* D* D*Distributed File Definition Section and Partition Key Array. D* D*The Distributed File Definition Section and Partition Key D*Array consists of 2 parts - the Distributed File Definition D*Section Header and the Partition Key Array. D******************************************************************* D*The section Qdb_Qdbf_dis is located by the offset Qdbfodis D*which is located in the File Scope Array Section. D******************************************************************* D**************************************************************** D*Partition Key Array D*This array is located in the structure below it, Qdb_Qdbf_dis. D* D**************************************************************** DQDBQDP DS D* Partition key names array D* D QDBFDK 1 10 D* Partition key name D QDBR125 11 32 D* Reserved D**************************************************************** D*Distributed File Definition Section Header D* D**************************************************************** DQDBQD DS D* Distributed File Definition D* Section for this scope D* entry D QDBFDN 1 10 D* Node group name D QDBFDN00 11 20 D* Node group library D QDBFDN01 21 24B 0 D* Number of partition keys D* D QDBR200 25 64 D* Reserved D*QDBFDP 32 D* Qdbf dis pkeyarr D QDBFDK00 65 74 D* Qdbf dis kname D QDBR126 75 96 D* Reserdis 1 D* Partition key names array D* D******************************************************************** D* JOURNAL SECTION DECLARATIONS D******************************************************************** D** Journaling Option Flags *********************************** DQDBQ13 DS D* Journaling Option Flags D QDBBITS14 1 1 D* QDBR106 1 BIT D* Reserved. D* QDBFJBIM 1 BIT D* Before Images Indicator. D* 0 = The before images are not D* being journaled. D* 1 = Before images are D* being journaled D* QDBFJAIM 1 BIT D* After Images Indicator. D* 0 = The after images are not D* being journaled. D* 1 = The after images are D* being journaled. D* QDBR107 1 BIT D* Reserved. D* QDBFJOMT 1 BIT D* Omit Journal Entries D* Indicator. D* 0 = All entries are being D* journaled. D* 1 = The open and close entries D* are being omitted from D* the journal. D* QDBR108 3 BITS D* Reserved. D**************************************************************** D* D*Journal Section D* D*The journal information of this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfjorn, which is D*located in the FDT header section. D**************************************************************** DQDBQ40 DS D* Journal Section D QDBFOJRN 1 10 D* Journal Name D QDBFOLIB 11 20 D* Journal Library Name D*QDBFOJPT 1 D QDBBITS41 21 21 D* QDBR10600 1 BIT D* QDBFJBIM00 1 BIT D* QDBFJAIM00 1 BIT D* QDBR10700 1 BIT D* QDBFJOMT00 1 BIT D* QDBR10800 3 BITS D* Journaling Option Flags D QDBFJACT 22 22 D* Journaling Options. D* '0' = The file is not being D* journaled. D* '1' = The file is being D* journaled. D QDBFLJRN 23 35 D* Last Journaling date D* Stamp-This is the date D* that corresponds to the most D* recent time that journaling D* was started for the file. D* The date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBR105 36 64 D* Reserved. D******************************************************************** D* QDBRTVFD FILD0200 FORMAT DECLARATIONS D******************************************************************** D** Record format DBCS flags ********************************** DQDBQ14 DS D* Record format DBCS flags D QDBBITS15 1 1 D* QDBFRITY 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The format does NOT D* contain DBCS or graphic D* data fields. D* 1 = The format does contain D* DBCS or graphic data D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRILT 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The format definition for D* the format does NOT D* contain DBCS or graphic D* literals. D* 1 = The format definition for D* the format does contain D* DBCS or graphic literals. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRITX 1 BIT D* Double-Byte Character Set D* (DBCS) Record Format Text D* Description D* 0 = The text description D* (TEXT) for the format D* does NOT contain DBCS D* data. D* 1 = The text description D* (TEXT) for the format D* does contain DBCS data. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRMEP 1 BIT D* Mapping Error Possible D* 0 = The format does NOT D* contain fields which may D* return data mapping D* errors. D* 1 = The format does contain D* fields which may return D* data mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRDRV 1 BIT D* Derived Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields derived D* from fields in the D* physical file the logical D* file is based on, or from D* fields in this logical D* file (CONCAT or SST). D* 1 = The format does contain D* fields derived from D* fields in the physical D* file the logical file is D* based on, or from fields D* in this logical file D* (CONCAT or SST). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBDFRNI 1 BIT D* Neither or Input-Only Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which can D* be used neither for input D* nor output operations, D* nor does it contain D* fields which can be used D* for input operations D* only. D* 1 = The format does contain D* fields which can be used D* neither for input nor D* output operations, or it D* does contain fields which D* can be used for input D* operations only. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFRDFI 1 BIT D* Default Values D* (Physical files only) D* 0 = The format does NOT D* contain fields with D* default values (DFT). D* 1 = The format does contain D* fields with default D* values (DFT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFCATO 1 BIT D* Concatenated Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* 1 = The format does contain D* fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D** Format Flags ********************************************** DQDBTFLGS DS D* Format Flags D QDBBITS64 1 1 D* QDBR11304 1 BIT D* Reserved D* QDBFUCSD 1 BIT D* UCS-2 fields D* 0 = The format does NOT D* contain fields which are D* UCS-2. D* 1 = The format does contain D* fields which are UCS-2. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLNK 1 BIT D* Datalink fields. D* 0 = The format does NOT D* contain fields which are D* datalinks. D* 1 = The format does contain D* fields which are D* datalinks. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDUDT 1 BIT D* User Defined Type fields. D* 0 = The format does NOT D* contain fields which are D* UDTs. D* 1 = The format does contain D* fields which are UDTs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLOB 1 BIT D* Large Object fields. D* 0 = The format does NOT D* contain fields which are D* LOBs. D* 1 = The format does contain D* fields which are LOBs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFUTFD 1 BIT D* UTF-8 or UTF-16 fields. D* 0 = The format does NOT D* contain fields which are D* UTF-8 or UTF-16. D* 1 = The format does contain D* fields which are UTF-8 D* or UTF-16. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBR114 2 BITS D* Reserved D** Flags ***************************************************** DQDBQ15 DS D* Flags D QDBBITS16 1 1 D* QDBRSV65 1 BIT D* Reserved D* QDBFRVAR 1 BIT D* Variable Length Fields D* 0 = The format does NOT D* contain fields which are D* variable length (VARLEN). D* 1 = The format does contain D* fields which are variable D* length (VARLEN). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRGPH 1 BIT D* Graphic Fields D* 0 = The format does NOT D* contain graphic data D* fields. D* 1 = The format does contain D* graphic data fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRDTT 1 BIT D* Date, Time or Timestamp D* Fields. D* 0 = The format does NOT D* contain date, time or D* timestamp fields. D* 1 = The format does contain D* date, time or timestamp D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRNUL 1 BIT D* Null Capable Fields D* 0 = The format does NOT D* contain fields which D* allow the null value D* (ALWNULL). D* 1 = The format does contain D* fields which allow the D* null value (ALWNULL). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRSID 1 BIT D* Common Coded Character Set D* Identifier Flag D* 0 = NOT all character fields D* in the format use the D* same coded character set D* identifier (CCSID). D* 1 = All character fields in D* the format use the same D* coded character set D* identifier (CCSID). The D* actual CCSID can be found D* in variable Qddfrcid. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFESID 1 BIT D* Explicit Coded Character Set D* Identifier Flag D* 0 = NO coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, nor for any D* fields within the format. D* 1 = A coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, or for one or D* more fields within the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBYIMRT 1 BIT D* Use for QCPIMPRT. @AVA D**************************************************************** D* Record Structure for QDBRTVFD FILD0200 format D**************************************************************** D**************************************************************** D* D* FMTD HEADER D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ41 DS D* Header information D* The FMTD starts here. D QDBBYRTN00 1 4B 0 D* Bytes Returned D* The length, in bytes, of the D* data returned. D QDBBYAVA00 5 8B 0 D* Bytes Available D* The total length, in bytes, D* of the format. D QDBRSV62 9 32 D* Reserved D* Record status flags D*QDBFFMTF 1 D QDBBITS42 33 33 D* QDBFRITY00 1 BIT D* QDBFRILT00 1 BIT D* QDBFRITX00 1 BIT D* QDBFRMEP00 1 BIT D* QDBFRDRV00 1 BIT D* QDBDFRNI00 1 BIT D* QDBFRDFI00 1 BIT D* QDBFCATO00 1 BIT D* Record format DBCS flags D QDBFXLTO 34 37B 0 D* Offset from start of FMTD D* header to the translate table D* specifications (Qddfxl). D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCAO 38 41B 0 D* OFFSET to the SELECTION D* specifications for CASE D* operators in this record D* format(Qddfcsl). This is only D* valid for query formats D* (DB) CREATE: N EXTRACT: N D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFDICO 42 45B 0 D* Offset from start of FMTD D* header to the IDDU/SQL D* dictionary format D* information (Qddfdic). D* (DB) CREATE : Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCID 46 47U 0 D* Common Coded Character Set D* Identifier. D* Note: Before using this D* field, you should check D* Qddfrsid, if it is zero, then D* NOT all character fields in D* the format use the same coded D* character set identifier D* (CCSID), and this field is D* not valid. D* 65535 = The format contains D* no character fields. D* nnnnn = All character fields D* in the format use D* this coded character D* set identifier D* (CCSID). D* (QQ) QUERY: Y D QDBFSRCD00 48 49U 0 D* Source File Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) specified for D* the character portion D* of the source file D* which contained the D* DDS used to create D* the format. (CCSID). D* This CCSID should be used for D* the Qddfdtxt field also. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRTCD 50 51U 0 D* Format Text Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the text D* description (TEXT) of D* the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRLCD 52 53U 0 D* Long Comment Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the D* information about the D* content and purpose D* of the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBRSV64 54 60 D* Reserved D*QDBTFLGS00 1 D QDBBITS65 61 61 D* QDBR11305 1 BIT D* QDBFUCSD00 1 BIT D* QDBFDLNK00 1 BIT D* QDBFDUDT00 1 BIT D* QDBFDLOB00 1 BIT D* QDBFUTFD00 1 BIT D* QDBR11400 2 BITS D* Format flags D*QDBDFLGS 1 D QDBBITS43 62 62 D* QDBRSV6500 1 BIT D* QDBFRVAR00 1 BIT D* QDBFRGPH00 1 BIT D* QDBFRDTT00 1 BIT D* QDBFRNUL00 1 BIT D* QDBFRSID00 1 BIT D* QDBFESID00 1 BIT D* QDBYIMRT00 1 BIT D* Flags D QDBRSV67 63 66 D* Reserved D QDBFRLEN 67 70B 0 D* Record Length D* The sum of the lengths of all D* fields the format contains, D* excluding neither fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFNAME 71 80 D* Record Format Name D* The name associated with the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBDFSEQ 81 93 D* Level Identifier D* The modification level D* identifier of the format. It D* is used to verify the format D* has not been changed since D* compile time, if LVLCHK(*YES) D* is requested. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFTEXT 94 143 D* Text Description (TEXT) D* The text description of the D* format. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBLDNUM 144 145B 0 D* Number of Fields D* The number of fields in the D* format. There is one field D* header for each field. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBQIO 146 149B 0 D* Offset from start of Format D* header to the Identity column D* information (Qdb_Qddfidcl). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBRSV68 150 256 D* Reserved D*QDBFFLDX 257 257 D* D* Start of Field Definitions D* (varying length) D******************************************************************** D* FIELD HEADER DECLARATIONS D******************************************************************** D** Field Status Byte 1 ************************************** DQDBQ1 DS D* Field Status Byte 1 D* Field DBCS Status D QDBBITS17 1 1 D* QDBFFIAT 1 BIT D* Double-Byte Character Set D* (DBCS) Alternate Type Field D* 0 = The alternate type for D* the field does NOT D* contain DBCS data. D* 1 = The alternate type for D* the field does contain D* DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFITX 1 BIT D* Double-Byte Character Set D* (DBCS) Field Text Description D* 0 = The text description D* (TEXT) for the field does D* NOT contain DBCS data. D* 1 = The text description D* (TEXT) for the field does D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFICH 1 BIT D* Double-Byte Character Set D* (DBCS) Column Headings D* 0 = The column headings D* (COLHDG) for the field do D* NOT contain DBCS data. D* 1 = The column headings D* (COLHDG) for the field do D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFIVC 1 BIT D* Double-Byte Character Set D* (DBCS) Validity Checking D* Literals D* 0 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do NOT contain DBCS D* data. D* 1 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do contain DBCS D* data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFRND 1 BIT D* Rounding D* Rounding method for the D* field. Currently not D* supported through DDS. D* 0 = Truncate D* Insignificant decimal D* digits will be truncated. D* 1 = Round D* Insignificant decimal D* digits will be rounded to D* the nearest decimal D* digit. D* (QQ) QUERY: Y D* QDBFFCID 1 BIT D* Character Identifier Flag D* 0 = A character identifier D* (CHRID) was NOT D* specified. D* 1 = A character identifier D* (CHRID) was specified. D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBRSV69 2 BITS D* Reserved D** Field Status Byte 2 ************************************** DQDBQ201 DS D* Field Status Byte 2 D* Field Default Value and Null D* Value Allowed Indicator D* 00 = Not NULL with default D* 01 = Not NULL D* 10 = NULL capable D* 11 = Invalid D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D QDBBITS18 1 1 D* QDBFFNUL 1 BIT D* Allow Null Value (ALWNULL) D* 0 = The null value is NOT D* allowed for this field. D* 1 = The null value is allowed D* for this field. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFFDFT 1 BIT D* Column Default Value D* 0 = The column has a default D* value. D* 1 = The column does NOT have D* a default value. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFFVAR 1 BIT D* Variable Field D* 0 = The field is NOT a D* variable field. D* 1 = The field is a variable D* field for a query format. D* Qddffvarx has meaning. D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBRSV70 1 BIT D* Reserved D* QDBFFVLN 1 BIT D* Variable Length Field D* 0 = The field is NOT a D* variable length field. D* 1 = The field is a variable D* length field. D* (DB) CREATE: X EXTRACT: A D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBRSV7001 3 BITS D* Reserved D** Flags **************************************************** DQDBQ202 DS D* Flags D QDBBITS19 1 1 D* QDBFCORR 1 BIT D* Correlated Field D* 0 = This is NOT a correlated D* field. D* 1 = This is a correlated D* field. D* (QQ) QUERY: Y D* QDBFFRRN 1 BIT D* File Relative Record Number D* field. D* 0 - This is NOT a relative D* record number field. D* 1 - This is a relative record D* number field. D* (QQ) QUERY: Y D* QDBRSV71 5 BITS D* Reserved D* QDBFFMEP 1 BIT D* Mapping Errors Possible D* 0 = The field can NOT return D* data mapping errors. D* 1 = The field may return data D* mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D** Flags **************************************************** DQDBFFLGS DS D* These flags indicate the user D* specified value for the field D* at the time the format was D* created. These flags only D* apply to date, time, and D* timestamp fields. D* CAUTION: If the format has D* ever been shared, these flags D* may not be applicable to the D* file for which the API was D* called. D QDBBITS78 1 1 D* QDBQD03 1 BIT D* If on, DATFMT was defaulted. D* D* QDBQJ 1 BIT D* If on, DATFMT(*JOB) was D* specified. D* QDBQD04 1 BIT D* If on, DATSEP was defaulted. D* D* QDBQJ00 1 BIT D* If on, DATSEP(*JOB) was D* specified. D* QDBQD05 1 BIT D* If on, TIMFMT was defaulted. D* D* QDBQD06 1 BIT D* If on, TIMSEP was defaulted. D* D* QDBQJ01 1 BIT D* If on, TIMSEP(*JOB) was D* specified. D* QDBQSAA 1 BIT D* If on, SAA format was D* specified. D******************************************************************** D* Complex Object Field Flags D******************************************************************** D** Default Attributes *************************************** DQDBLAGCO DS D* Complex Objects D QDBBITS72 1 1 D* QDBRSV6400 3 BITS D* Reserved. D* QDBDFUCS 1 BIT D* UCS-2 field. D* 0 = The field is not a D* UCS-2 field. D* 1 = The field is a UCS-2 field. D* D* QDBDFUDT 1 BIT D* User Defined Type field. D* 0 = The field is not a UDT field. D* 1 = The field is a UDT field. D* D* QDBQIC 1 BIT D* Identity Column field. D* 0 = The field is not an D* Identity column. D* 1 = The field is an Identity D* column. D* QDBQRC 1 BIT D* ROWID Column field. D* 0 = The field is not a D* ROWID column. D* 1 = The field is a ROWID D* column. D* QDBDFUTF 1 BIT D* UTF-8 or UTF-16 field. D* 0 = The field is not a D* UTF-8 or UTF-16 field. D* 1 = The field is a UTF-8 or D* UTF-16 field. D******************************************************************** D* UCS-2 Field Values D******************************************************************** DQDBQ208 DS D* UCS-2 fields values. @AMA D QDBFDSPL 1 2U 0 D* Field-display-length: D* Used with a UCS-2 field when D* the CCSID keyword modifies D* the display length. @AMA D QDBBITS80 3 3 D* QDBFUCSP 1 BIT D* UCS2_conversion_flag: D* When referenced by a printer D* file,indicates whether UCS-2 D* characters are to be D* converted before printing. D* 1 = do not convert. D* @AMA D* QDBFUCSM 1 BIT D* Minimum-display-length-flag: D* When referenced by a display D* file. D* 1 = Qddfdspl contains the D* number of display D* positions allowed equal D* to the field length D* defined in the DDS. D* Example: 5G CCSID(13488). D* The Qddfdspl value is 5.@AMA D* QDBFUCSL 1 BIT D* Length-of-display-field_flag D* When referenced by a display D* file. D* 1 = the DDS for the field D* provided the allowed number D* of display positions. D* This number is in Qddfdspl. D* @AMA D* QDBQRCT 1 BIT D* Row Change D* Timestamp. D* 0 = This field/column is Not D* a Row Change Timestamp. D* 1 = This field/column is a Row D* Change Timestamp. D* QDBQHC 1 BIT D* Hidden Column. D* 0 = This field/column is Not D* a Hidden Column. D* 1 = This field/column is a D* Hidden Column. D* QDBQSD 1 BIT D* Secure Data. D* Indicates that this column D* contains data of a secure D* nature (for example credit D* card number). D* If this bit is on for a column D* referenced in a statement, it D* will prevent ANY variable D* from being stored in a D* database monitor file or or D* returned from the plan cache D* unless it is the security D* officer starting the monitor D* looking at the plan cache. D* 0 = Not secure data. D* 1 = Secure data. @ASA D* QDBQXMLC 1 BIT D* XML Column. D* 0 = This field/column is NOT D* an XML Column. D* 1 = This field/column is an D* XML Column. D* QDBR130 1 BIT D* Reserved. D QDBNCODE 4 5 D* Encoding scheme for field's D* CCSID. D* '0000'X = No encoding scheme. D* @AMA D QDBQRCTG 6 6 D* Row Change D* Timestamp GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQFPP 7 16 D* Field Procedure D* program name. D QDBQFPL 17 26 D* Field Procedure D* library name. D**************************************************************** D* D* FIELD HEADER D* D**************************************************************** D*This section is located immediately after the FMTD header D**************************************************************** DQDBQ42 DS D* Field Definition D* The definition for a field in D* format. There is a linked D* list of these field D* definitions, one for each D* field. The number of fields D* is stored in the variable D* Qddffldnum. D QDBFDEFL 1 4B 0 D* Length of Field D* The length of the entire D* field structure, including D* all sub-sections. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDI 5 34 D* Internal Field Name D* The name of the field in the D* logical format, if this is a D* logical format. If this is a D* physical format, this name is D* a duplicate of Qddfflde. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDE 35 64 D* External Field Name D* The name of the field in the D* physical format, if this is a D* physical format. If this is D* a logical format, this name D* is the name of the field in D* a physical format, on which D* this field is based. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFTYP 65 66 D* Data Type D* The data type of the field. D* X'0000' = BINARY . . . . . . D* X'0001' = FLOAT . . . . . . D* X'0002' = ZONED DECIMAL . . D* X'0003' = PACKED DECIMAL . . D* X'0004' = CHARACTER . . . . D* X'8004' = VAR CHARACTER . . D* X'0005' = GRAPHIC . . . . D* X'0006' = DBCS-CAPABLE . . . D* X'8005' = VAR GRAPHIC . . . D* X'8006' = VAR DBCS-CAPABLE . D* X'000B' = DATE . . . . . . . D* X'000C' = TIME . . . . . . . D* X'000D' = TIMESTAMP . . . . D* X'4004' = BLOB/CLOB . . . . D* X'4005' = DBCLOB . . . . . . D* X'4006' = CLOB-OPEN . . . . D* X'8044' = DATALINK-CHAR . . D* X'8046' = DATALINK-OPEN . . D* X'FFFF' = NULL . . . . . . . D* NULL is only valid D* for data base query D* formats. If NULL is D* specified, query D* will determine the D* type and attributes D* of the field from D* the based on fields D* if Qddffvar is off. D* If Qddffvar is on D* then the attributes D* are set from the D* variable's operand. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFIOB 67 67 D* Usage D* X'01' = Input-Only D* The field can be used D* for input operations D* only. D* X'02' = Output Only D* The field can be used D* for output operations D* only. D* X'03' = Both D* The field can be used D* for both input and D* output operations. D* X'04' = Neither D* The field can be used D* for neither input nor D* output operations. D* X'FF' = Unknown D* The usage is set D* appropriately during D* query processing. D* This value is only D* valid for query. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFOBO 68 71B 0 D* Output Buffer Offset D* The offset from the start of D* the output buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFIBO 72 75B 0 D* Input Buffer Offset D* The offset from the start of D* the input buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFLDB 76 77B 0 D* Length D* The length of the field. D* - For character fields, this D* is the number of D* characters. D* - For float fields: D* 4 = Single D* 8 = Double D* - For variable length fields, D* this is the maximum length D* the field can be, plus two D* for the length. D* - For date/time/timestamp D* fields, this is the length D* of the formatted data. So D* this may vary, depending on D* the format specified. D* - For graphic data fields, D* this is the number of D* bytes. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is X'FFFF'. D QDBFFLDD 78 79B 0 D* Number of Digits D* The number of digits in the D* field. D* - For numeric fields, this D* is the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFLDP 80 81B 0 D* Decimal Positions D* The number of decimal D* positions to the right of the D* decimal point. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFKBS 82 82 D* Keyboard Shift (REFSHIFT) D* The keyboard shift attribute D* of the field. D* 'X' = Alphabetic only D* 'A' = Alphameric shift D* 'N' = Numeric shift D* 'S' = Signed numeric D* 'Y' = Numeric only D* 'D' = Digits only D* 'M' = Numeric only character D* 'W' = Katakana D* 'H' = Hexadecimal D* 'I' = Inhibit keyboard entry D* 'J' = DBCS only D* 'E' = DBCS either D* 'O' = DBCS open D* 'B' = Binary character D* X'00' = No shift specified D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D*QDBQ100 1 D QDBBITS44 83 83 D* QDBFFIAT00 1 BIT D* QDBFFITX00 1 BIT D* QDBFFICH00 1 BIT D* QDBFFIVC00 1 BIT D* QDBFFRND00 1 BIT D* QDBFFCID00 1 BIT D* QDBRSV6900 2 BITS D* Field Status Byte 1 D QDBFJREF 84 85B 0 D* Join Reference (JREF) D* (Logical files only) D* For fields whose names are D* specified in more than one D* physical file, this value D* identifies which physical D* file contains the field. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file D* format, an error is D* signalled. This value is D* only allowed on a query D* format. D* n = The external field name D* is to be found in the D* file format referenced D* by using this value as a D* join reference index into D* the file list. D* (DB) CREATE: R EXTRACT: Y D* (DF) N D* (QQ) QUERY: R D*QDBQ203 1 D QDBBITS45 86 86 D* QDBFFNUL00 1 BIT D* QDBFFDFT00 1 BIT D* QDBFFVAR00 1 BIT D* QDBRSV7000 1 BIT D* QDBFFVLN00 1 BIT D* QDBRSV7002 3 BITS D* Field Status Byte 2 D*QDBQ204 1 D QDBBITS46 87 87 D* QDBFCORR00 1 BIT D* QDBFFRRN00 1 BIT D* QDBRSV7100 5 BITS D* QDBFFMEP00 1 BIT D* Flags D QDBFVARX 88 89B 0 D* Variable Field Index D* Index into the list of all D* variable field values for the D* query. D* (QQ) QUERY: Y D QDBRSV72 90 91 D* Reserved D QDBFLALC 92 93B 0 D* Allocated Length D* The number of bytes allocated D* for the field in the fixed D* portion of the file. D* or... D* Date/Time/Timestamp Length D* The number of bytes the D* based-on field for the date/ D* time/timestamp occupies. D* (QQ) QUERY: R, unless field D* type (Qddffldt) is x'FFFF' D QDBFDTTF 94 94 D* Date Format (DATFMT) D* The format of the date field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Format (TIMFMT) D* The format of the time field. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D* (QQ) QUERY: Y D QDBFDTTS 95 95 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D* (QQ) QUERY: Y D QDBFCSID 96 97U 0 D* Common Coded Character Set D* Identifier (CCSID) D* 00000 = The CCSID associated D* with the job is to be D* used for data D* translation. D* 65535 = No data translation D* is to be done. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for data translation. D* (QQ) QUERY: Y D QDBFTSID 98 99U 0 D* Text Description Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the text description. D* 65535 = The text description D* is not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* text description. D* (QQ) QUERY: Y D QDBFHSID 100 101U 0 D* Column Heading Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the column headings. D* 65535 = The column headings D* are not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* column headings. D* (QQ) QUERY: Y D QDBFLSID 102 103U 0 D* Long Comment Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the long comment. D* 65535 = The long comment is D* not to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* long comment. D* (QQ) QUERY: Y D QDBFLDUR 104 104 D* Labeled Duration D* The type of labeled duration D* this field defines. D* '00'X = The field is not a D* labeled duration. D* '0D'X = Year/Years. D* '0E'X = Month/Months. D* '0F'X = Day/Days. D* '10'X = Hour/Hours. D* '11'X = Minute/Minutes. D* '12'X = Second/Seconds. D* '13'X = Microsecond/ D* Microseconds. D* (QQ) QUERY: Y D*QDBFFLGS00 1 D QDBBITS79 105 105 D* QDBQD07 1 BIT D* QDBQJ02 1 BIT D* QDBQD08 1 BIT D* QDBQJ03 1 BIT D* QDBQD09 1 BIT D* QDBQD10 1 BIT D* QDBQJ04 1 BIT D* QDBQSAA00 1 BIT D* Flags. D QDBFWSID 106 107U 0 D* Edit Word Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the edit word. D* 65535 = The edit word is not D* to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* edot word. D* (QQ) QUERY: Y D QDBRSV6100 108 108 D* Reserved D QDBRSV6200 109 109 D* Reserved D QDBRSV6300 110 111U 0 D* Reserved. D*QDBLAGCO00 1 D QDBBITS73 112 112 D* QDBRSV6401 3 BITS D* QDBDFUCS00 1 BIT D* QDBDFUDT00 1 BIT D* QDBQIC00 1 BIT D* QDBQRC00 1 BIT D* QDBDFUTF00 1 BIT D* Complex Object flags. D*QDBQ209 26 D QDBFDSPL00 113 114U 0 D QDBBITS81 115 115 D* QDBFUCSP00 1 BIT D* QDBFUCSM00 1 BIT D* QDBFUCSL00 1 BIT D* QDBQRCT00 1 BIT D* QDBQHC00 1 BIT D* QDBQSD00 1 BIT D* QDBQXMLC00 1 BIT D* QDBR13000 1 BIT D QDBNCODE00 116 117 D QDBQRCTG00 118 118 D QDBQFPP00 119 128 D QDBQFPL00 129 138 D* UCS-2 field values. @AMA D QDBRSV74 139 180 D* Reserved @AMA D QDBFCPLX 181 184B 0 D* Offset from start of Field D* header to the Complex Object D* field information D* (Qdb_Qddffcpli). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBMAXL 185 188B 0 D* Maximum length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBPADL 189 190U 0 D* Pad length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFDICD 191 194B 0 D* Offset from start of Field D* header to IDDU/SQL dictionary D* field information (Qddfdicf) D* (QQ) QUERY: Y D QDBFDFTD 195 198B 0 D* Offset from start of Field D* header to default value D* description (Qddfdft) D* (QQ) QUERY: Y D QDBFDERD 199 202B 0 D* Offset from start of Field D* header to derived field D* description (or to the D* concatenated field description D* if its file is externally D* described) (Qddfderv) D* (QQ) QUERY: Y D QDBRSV75 203 208 D* Reserved D QDBFTXTD 209 212B 0 D* Offset from start of Field D* header to field text D* description (Qddfftxt) D* (QQ) QUERY: N D QDBR102 213 214 D* Reserved D QDBFREFD 215 218B 0 D* Offset from start of Field D* header to field reference D* information (Qddfrefi) D* (QQ) QUERY: N D QDBFEDTL 219 220B 0 D* Length of the edit code / D* edit word information for the D* field D* (QQ) QUERY: N D QDBFEDTD 221 224B 0 D* Offset from start of Field D* header to the edit code / D* edit word information D* (Qddfedcw) D* (QQ) QUERY: N D QDBRSV76 225 226 D* Reserved D QDBDFCHD 227 230B 0 D* Offset from start of Field D* header to the column heading D* information (Qddfcolh) D* (QQ) QUERY: N D QDBFVCKL 231 232B 0 D* Length of the validity D* checking data present for the D* field. D* (QQ) QUERY: N D QDBFVCKD 233 236B 0 D* Offset from start of Field D* header to the validity D* checking data (Qddfvchk) D* (QQ) QUERY: N D QDBFXALS 237 240B 0 D* Offset from start of Field D* header to alias name entry D* (QQ) QUERY: N D QDBFFPND 241 244B 0 D* Offset from start of Field D* header to the the field D* prompted numeric editing D* information (Qddfdfne) D* (QQ) QUERY: N D QDBRSV77 245 252 D* Reserved D*QDBDFVPX 253 253 D* D* START OF THE VARIABLE PORTION D* OF THE FIELD DESCRIPTION D* (varying length) D**************************************************************** D* D* Complex Object Field Type Information D* D**************************************************************** D*This section can be located with the offset Qddfcplx, which D*is located in the Field header section. D**************************************************************** DQDBFCPLI DS D* Field text D QDBFLENU 1 4B 0 D* If the field is a UDT, D* this length is the length D* of the UDT name. D QDBFNUDT 5 132 D* UDT name. D QDBFLUDT 133 142 D* UDT library name. D QDBDLINK 143 143 D* If the field is a datalink, D* this is the link control: D* N = No link control. D* Y = Link control. D QDBDINTE 144 144 D* If the field is a datalink, D* this is the link integrity: D* A = All under control. D* S = Selective control. D* This value is not D* supported yet. D QDBDRPER 145 146 D* If the field is a datalink, D* this is the read permisssion: D* FS = File system. D* DB = Database. D QDBDWPER 147 148 D* If the field is a datalink, D* this is the write D* permission: D* FS = File system. D* BL = Blocked. D QDBDRECO 149 149 D* If the field is a datalink, D* the database manager will D* recover the file: D* Y = Yes. This value is not D* supported yet. D* N = No. D QDBDUNLK 150 150 D* If the field is a datalink, D* the database manager will D* restore the file owner on D* an unlink, or delete the file D* when unlinking the file. D* R = Restore the owner. D* D = Delete the file. D QDBQ150 151 160 D* Reserved. D**************************************************************** D* D* IDENTITY Column/ROWID Field Information D* D**************************************************************** D*This section can be located with the offset Qddf_Identity_Off D*which is located in the Field header section. D**************************************************************** DQDBFIDCL DS D* IDENTITY column/ROWID info D* NOTE: Only D* Qddf_ROWID_Generate D* applies to ROWID columns. D QDBQIL 1 2B 0 D* Length of identity column/ D* ROWID information. D QDBQIOSW 3 18P 0 D* Qddf Id Orig Start With D* Identity Original START WITH D* value D QDBQICSW 19 34P 0 D* Qddf Id Curr Start With D* Identity Current START WITH D* value. (Changed using ALTER D* TABLE RESTART WITH.) D QDBQIIB 35 38B 0 D* Identity INCREMENT BY value. D QDBQIM 39 54P 0 D* Qddf Id Minimum D* Identity MINIMUM value. D QDBQIM00 55 70P 0 D* Qddf Id Maximum D* Identity MAXIMUM value. D QDBQIC01 71 71 D* Identity CYCLE indicator. D* 1 = Cycling will occur. D* 0 = Cycling will not occur. D QDBQIO00 72 72 D* Identity ORDER mode. D* 1 = Values are generated in D* order of request. D* 0 = Values do not need to be D* generated in order of D* request. D QDBQIG 73 73 D* Identity GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQICC 74 77U 0 D* Identity CACHE value D QDBQRG 78 78 D* ROWID GENERATE indicator D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQIR1 79 131 D* Reserved. D**************************************************************** D* D* FIELD TEXT D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddftxtd, which D*is located in the Field header section. D**************************************************************** DQDBQ43 DS D* Field text D QDBFFTXT 1 50 D* Text (TEXT) D* Text description of the D* field. D******************************************************************** D* REFERENCE INFORMATION DECLARATIONS D******************************************************************** D** Modification Flags *************************************** DQDBQ16 DS D* Modification Flags D QDBBITS20 1 1 D* QDBFDUPE 1 BIT D* Modifications D* 0 = The field has NOT been D* modified. D* 1 = The field has been D* modified. D* QDBFNMEC 1 BIT D* Name Modification D* 0 = The name of the field has D* NOT been modified. D* 1 = The name of the field has D* been modified. D* QDBFTYPC 1 BIT D* Data Type Modification D* 0 = The data type of the D* field has NOT been D* modified. D* 1 = The data type of the D* field has been modified. D* QDBFLENC 1 BIT D* Field Length Modification D* 0 = The length of the field D* has NOT been modified. D* 1 = The length of the field D* has been modified. D* QDBFDECC 1 BIT D* Precision Modification D* 0 = The precision of the D* field has NOT been D* modified. D* 1 = The precision of the D* field has been modified. D* QDBFEDTC 1 BIT D* Edit Information Modification D* 0 = The edit information of D* the field has NOT been D* modified. D* 1 = The edit information of D* the field has been D* modified. D* QDBDDFVC 1 BIT D* Validity Checking Information D* Modification D* 0 = The validity checking D* information of the field D* has NOT been modified. D* 1 = The validity checking D* information of the field D* has been modified. D* QDBFOTHR 1 BIT D* Other Modification D* 0 = Other information of the D* field has NOT been D* modified. D* 1 = Other information of the D* field has been modified. D**************************************************************** D* D* REFERENCE INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfrefd, which D*is located in the Field header section. D**************************************************************** DQDBQ44 DS D* Reference Information D*QDBFRCDE 1 D QDBBITS47 1 1 D* QDBFDUPE00 1 BIT D* QDBFNMEC00 1 BIT D* QDBFTYPC00 1 BIT D* QDBFLENC00 1 BIT D* QDBFDECC00 1 BIT D* QDBFEDTC00 1 BIT D* QDBDDFVC00 1 BIT D* QDBFOTHR00 1 BIT D* Modification Flags D QDBFRFIL 2 11 D* Referenced File Name D* The name of the file the D* field references. D QDBFRLIB 12 21 D* Referenced File Library D* The name of the library D* containing the file the field D* references. D QDBFRFMT 22 31 D* Referenced Record Format D* The name of the record format D* containing the field D* referenced. D QDBFRFLD 32 61 D* Referenced Field D* The name of the field D* referenced. D QDBRSV78 62 80 D* Reserved D******************************************************************** D* EDIT CODE DECLARATIONS D******************************************************************** D** Edit Code Information ************************************ DQDBQ17 DS D* Edit Code Information D QDBFECDE 1 1 D* Edit Code (EDTCDE) D* Edit code for the field when D* it is referred to later D* during display or printer D* file creation. D QDBFECDX 2 2 D* Floating Currency Symbol D* '*' = Asterisk Protection D* Asterisks are displayed D* to the left of D* significant digits. D* floating currency symbol = D* The symbol specified D* appears to the left of D* the first significant D* digit. D**************************************************************** D* D* EDIT CODE / EDIT WORD INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfedtd, which D*is located in the Field header section. D**************************************************************** DQDBQ45 DS D* Edit Information D*QDBFECDI 2 D QDBFECDE00 1 1 D QDBFECDX00 2 2 D* Edit Code Information D QDBRSV79 3 16 D* Reserved D*QDBDFEWD 17 17 D* D* Edit Word (EDTWRD) D* (varying length) The form in which the field D* values are to be displayed. D* Note: Before using this D* field, you should D* check Qddfecde, if it D* is not blank, then D* this field is not D* valid. The length of D* this field, if D* present, is included D* in Qddfedtl. D******************************************************************** D* NUMERIC EDIT DECLARATIONS D******************************************************************** D** Negative Sign Information ******************************** DQDBQNSI DS D* Negative Sign Information D QDBFDNSC 1 1 D* Display Negative Sign D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The negative sign D* character will be D* displayed for negative D* values. D* '2' = The negative sign D* character will NOT be D* displayed for negative D* values. D QDBFDNSL 2 7 D* Left Negative Sign Value D* The symbol to be displayed D* to the left of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDNSR 8 13 D* Right Negative Sign Value D* The symbol to be displayed D* to the right of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Currency Symbol Information ***************************** DQDBQCSI DS D* Currency Symbol Information D QDBFDCSY 1 1 D* Display Currency Symbol D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The currency symbol D* will be displayed. D* '2' = The currency symbol D* will NOT be displayed. D QDBFDCSL 2 7 D* Left Currency Symbol Value D* The symbol to be displayed D* to the left of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDCSR 8 13 D* Right Currency Symbol Value D* The symbol to be displayed D* to the right of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Leading Zero Information ********************************* DQDBQLZI DS D* Leading Zero Information D QDBFDRLZ 1 1 D* Replace Leading Zeros D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced. D* '2' = Leading zeros are NOT D* replaced. D QDBFDRLV 2 2 D* Leading Zero Replacement D* Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced with blanks. D* '2' = Leading zeros are D* replaced with asterisks. D* '3' = Leading zeros are D* replaced with blanks, D* and left currency D* symbol is shifted to D* the right. D QDBFDLZO 3 3 D* Single Leading Zero D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero is displayed to D* the left of the decimal D* point when there are no D* significant digits to D* the left of the decimal D* point. D* '2' = A zero is NOT displayed D* to the left of the D* decimal point when D* there are no D* significant digits to D* the left of the decimal D* point. D**************************************************************** D* D* FIELD PROMPTED NUMERIC EDITING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddffpnd, which D*is located in the Field header section. D**************************************************************** DQDBQ46 DS D* IDDU/SQL Dictionary Field D* Prompted Numeric Editing D* Information. D QDBRSV80 1 2 D* Reserved D QDBFDDTS 3 3 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* '00'X = This is not a date D* or time field. The D* numeric editing D* information should be D* used. D* '1' = The period separator D* is to be used. "." D* '2' = The slash separator D* is to be used. "/" D* '3' = The colon separator D* is to be used. ":" D* '4' = The dash separator D* is to be used. "-" D* '5' = The comma separator D* is to be used. "," D QDBFDDPC 4 4 D* Decimal Point Character D* The character to be used to D* separate decimal digits. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period decimal D* is to be used. "." D* '2' = The comma decimal D* is to be used. "," D* '3' = The colon decimal D* is to be used. ":" D* '4' = The dollar decimal D* is to be used. "$" D* '5' = No decimal is to be D* used. D QDBFDTSC 5 5 D* Thousands Separator Character D* The character to be used to D* group digits by threes. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period thousands D* is to be used. "." D* '2' = The comma thousands D* is to be used. "," D* '3' = The apostrophe D* thousands is to be D* used. "'" D* '4' = The blank thousands D* is to be used. " " D* '5' = No thousands is to be D* used. D*QDBQNSI00 13 D QDBFDNSC00 6 6 D QDBFDNSL00 7 12 D QDBFDNSR00 13 18 D* Negative Sign Information D*QDBQCSI00 13 D QDBFDCSY00 19 19 D QDBFDCSL00 20 25 D QDBFDCSR00 26 31 D* Currency Symbol Information D QDBFDPZV 32 32 D* Print Zero Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero value is D* displayed. D* '2' = A zero value is NOT D* displayed. D*QDBQLZI00 3 D QDBFDRLZ00 33 33 D QDBFDRLV00 34 34 D QDBFDLZO00 35 35 D* Leading Zero Information D QDBRSV81 36 64 D* Reserved D**************************************************************** D* D* COLUMN HEADING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfchd, which D*is located in the Field header section. D**************************************************************** DQDBQ47 DS D* Column Heading (COLHDG) D* Column headings used for this D* field when it is displayed D QDBQ101 1 20 D* Column Heading £1 D* The first column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ205 21 40 D* Column Heading £2 D* The second column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ3 41 60 D* Column Heading £3 D* The third column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D**************************************************************** D* D* VALIDITY CHECKING INFORMATION D* D**************************************************************** D*This section can be located with the offset Qddfvckd, which D*is located in the Field header section. D**************************************************************** DQDBQ48 DS D* Validity Checking Information D* (CHECK), (COMP), (RANGE), and D* (VALUES) D QDBCNUME 1 2B 0 D* Number of Validity Check D* Entries D QDBRSV82 3 16 D* Reserved D*QDBFVCEN 17 17 D* D* Validity Checking Entry Array D* (varying length) DQDBQ49 DS D* Validity Checking Entry D QDBFVCCD 1 1 D* DDSI Keyword Identifier D* '63'X = CHKMSGID D* '64'X = CHECK(ME) D* '66'X = CHECK(FE) D* '67'X = CHECK(MF) D* '71'X = RANGE D* '72'X = VALUES D* '73'X = COMP(GT) D* '74'X = COMP(GE) D* '75'X = COMP(EQ) D* '76'X = COMP(NE) D* '77'X = COMP(LE) D* '78'X = COMP(LT) D* '79'X = COMP(NL) D* '7A'X = COMP(NG) D* 'A0'X = CHECK(M10) D* 'A1'X = CHECK(M11) D* 'A2'X = CHECK(VN) D* 'A3'X = CHECK(AB) D* 'A5'X = CHECK(VNE) D* 'A6'X = CHECK(M10F) D* 'A7'X = CHECK(M11F) D QDBCNUMP 2 3B 0 D* Number of Parameters D QDBFVCEL00 4 5B 0 D* Length of This Validity Check D* Entry D QDBRSV83 6 16 D* Reserved. D*QDBFVCPM 17 17 D* D* Validity Checking Parameter D* Array (varying length) DQDBQ50 DS D* Validity Checking Parameter D QDBFVCPL 1 2B 0 D* Length of the Validity D* Checking Parameter Qddfvcpv D QDBRSV84 3 16 D* Reserved. D*QDBFVCPV 17 17 D* D* Validity Checking Parameter D* Value (varying length) D**************************************************************** D* D* ALIAS NAME STRUCTURE D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfxals, which D*is located in the Field header section. D**************************************************************** DQDBQ51 DS D* Alternative Name Information D* (ALIAS) D QDBFALSL 1 2B 0 D* Length of Alternative Name D* Qddfalsn D QDBRSV85 3 16 D* Reserved D*QDBFALSN 17 17 D* D* Alternative Name (ALIAS) D* An alternative name for the D* field. (varying length) D******************************************************************** D* DEFAULT VALUE DESCRIPTION DECLARATIONS D******************************************************************** D** Default Attributes *************************************** DQDBQ18 DS D* Default Attributes D QDBBITS21 1 1 D* QDBFDFIG 1 BIT D* DBCS or Graphic Default D* 0 = The default is NOT a DBCS D* or graphic literal. D* 1 = The default is a DBCS or D* graphic literal. D* QDBFDFHX 1 BIT D* Hex Default D* 0 = The default is NOT a D* hex literal. D* 1 = The default is a hex D* literal. D* QDBFNDFT 1 BIT D* Null Default D* 0 = The default is NOT null. D* 1 = The default is null. D* QDBRSV86 2 BITS D* Reserved D* QDBFDCUR 1 BIT D* Default is CURRENT_DATE, D* CURRENT_TIME or D* CURRENT_TIMESTAMP D* 0 = The default is NOT CURRENT D* 1 = The default is CURRENT. D* QDBR109 1 BIT D* Reserved D* QDBFDFTK 1 BIT D* DFT or DFTVAL Keyword D* 0 = The DFT keyword was D* specified. D* 1 = The DFTVAL keyword was D* specified. D**************************************************************** D* D* DEFAULT VALUE DESCRIPTION INFORMATION D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdftd, which D*is located in the Field header section. D**************************************************************** DQDBQ52 DS D* Default Information (DFT) or D* (DFTVAL) D QDBFDFTL 1 2B 0 D* Length of Default Information D* Qddfdft D*QDBFDFTA 1 D QDBBITS48 3 3 D* QDBFDFIG00 1 BIT D* QDBFDFHX00 1 BIT D* QDBFNDFT00 1 BIT D* QDBRSV8600 2 BITS D* QDBFDCUR00 1 BIT D* QDBR10900 1 BIT D* QDBFDFTK00 1 BIT D* Default Attributes D QDBRSV87 4 16 D* Reserved D*QDBFDFTV 17 17 D* D* Default (DFT) or (DFTVAL) D* The default value of the D* field. (varying length) D******************************************************************** D* IDDU/SQL DICTIONARY ADDITIONAL DECLARATIONS D******************************************************************** D** Field Definition Long Comment **************************** DQDBQ19 DS D* Field Definition Long Comment D QDBFDFCL 1 2B 0 D* Length of Field Definition D* Long Comment Qddfdfco D*QDBFDFCT 3 3 D* D* Field Definition Comment Text D* (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY ADDITIONAL FIELD INFORMATION. D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdicd, which D*is located in the Field header section. D**************************************************************** DQDBQ53 DS D* IDDU/SQL Dictionary D* Additional Field Information D QDBFDFCH 1 16 D* Reserved D*QDBFDFCO 3 D QDBFDFCL00 17 18B 0 D QDBFDFCT00 19 19 D* Field Definition Long Comment D******************************************************************** D* FORMAT FIELD FLAGS D******************************************************************** D** Field Attributes ************************************** DQDBQFLDF DS D* Field flags D QDBBITS84 1 1 D* QDBR504 2 BITS D* Reserved D* QDBFSIU01 1 BIT D* Derived field D* uses a user defined UDF D* indicator: D* 0 = The field does NOT use a D* user defined UDF. D* 1 = The field does use a D* user defined UDF. D* @APA D* QDBR505 5 BITS D* Reserved @APA D******************************************************************* D* D*These are type definitions which are needed for a UNION in the D*Header Section D* D******************************************************************* DQDBQ54 DS D* Field Operand Entry D QDBFDVON 1 30 D* Field Name D* The external name of the D* field. D QDBFDVJR 31 32B 0 D* Join Reference (JREF) D* Relative file number of the D* physical file containing the D* external field referenced. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file format, D* an error is signalled. D* n = The external field name D* is located in the file D* format referenced by D* using this value as a D* join reference index into D* the file list. D QDBQ102 33 34B 0 D* Starting Position D* The starting position in the D* external field, of the D* substring (SST) specified. D QDBQ206 35 36B 0 D* Ending Position D* The ending position in the D* external field, of the D* substring (SST) specified. D QDBDTNUM 37 38B 0 D* QDT from which this D* Only applicable for SQL D QDBR502 39 39 D* Reserved @APA D QDBR503 40 40 D* Reserved @APA D*QDBFLDF 1 D QDBBITS85 41 41 D* QDBR50400 2 BITS D* QDBFSIU02 1 BIT D* QDBR50500 5 BITS D* Field flags. @APA D QDBRSV89 42 58 D* Reserved @APC D******************************************************************** D* CONSTANT OPERAND DECLARATIONS D******************************************************************** D** Constant Attributes ************************************** DQDBQCA DS D* Constant Attributes D QDBBITS22 1 1 D* QDBFDVCI 1 BIT D* DBCS Constant D* 0 = This constant is NOT a D* DBCS - OPEN literal. D* 1 = This constant is a DBCS - D* OPEN literal. D* QDBRSV90 1 BIT D* Reserved D* QDBFDVCC 1 BIT D* Character Constant Type D* 0 = The constant is a quoted D* character string, D* bracketed by single D* quotes. Imbedded quotes D* are represented with two D* single quotes. D* 1 = The constant is an D* unquoted D* character string, NOT D* bracketed by single D* quotes. Imbedded quotes D* are represented with a D* single quote. D* QDBFDVAC 1 BIT D* Assume Character Constant D* 0 = The system will NOT D* assume this is a D* character constant. D* 1 = The system will assume D* this is a character D* constant. D* QDBFDVCO 1 BIT D* DBCS - ONLY Literal D* Note: Before using this D* field, you should D* check Qddfdvci, if it D* is not on, then this D* field is not valid. D* 0 = This constant is a DBCS - D* OPEN literal. D* 1 = This constant is a DBCS - D* ONLY literal. D* QDBFDVSR 1 BIT D* Special register D* 0 = This constant operand is D* not a special register. D* 1 = This constant operand is D* a special register, D* defined by Qddfdvrc D* QDBFDVNL 1 BIT D* Null Indicator D* 0 = This constant is NOT a D* null literal. D* 1 = This constant is a null D* literal. D* QDBRSV91 1 BIT D* Reserved D** Constant Flags ******************************************* DQDBQ20 DS D* Constant Flags D QDBBITS23 1 1 D* QDBRSV93 2 BITS D* Reserved D* QDBFGLIT 1 BIT D* If on, this indicates that D* this is a graphics literal. D* QDBRSV94 5 BITS D* Reserved D** Constant Operand Header ********************************** DQDBQ21 DS D* Constant Operand Header D QDBFDVOL 1 4B 0 D* Length of Constant Qddfdvov D*QDBQCA00 1 D QDBBITS24 5 5 D* QDBFDVCI00 1 BIT D* QDBRSV9000 1 BIT D* QDBFDVCC00 1 BIT D* QDBFDVAC00 1 BIT D* QDBFDVCO00 1 BIT D* QDBFDVSR00 1 BIT D* QDBFDVNL00 1 BIT D* QDBRSV9100 1 BIT D* Constant Attributes D QDBFDVRC 6 6 D* Special register constant D* Defined by special register D* constants, can only be D* specified if Qddfdvsr is on. D QDBFDVFT 7 7 D* Date Constant Format (DATFMT) D* The format of the date D* constant. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Constant Format (TIMFMT) D* The format of the time D* constant. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSP 8 8 D* Date Constant Separator D* (DATSEP) D* The separator character to be D* used with the date constant. D* or... D* Time Constant Separator D* (TIMSEP) D* The separator character to be D* used with the time constant. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBRSV92 9 10 D* Reserved D QDBFDVCD 11 12U 0 D* Constant Coded Character Set D* Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* constant. D*QDBFCFLG 1 D QDBBITS25 13 13 D* QDBRSV9300 2 BITS D* QDBFGLIT00 1 BIT D* QDBRSV9400 5 BITS D* Constant Flags D QDBRSV95 14 42 D* Reserved DQDBQ55 DS D* Constant Operand Entry D*QDBFDVOH 42 D QDBFDVOL00 1 4B 0 D* QDBQCA01 1 D QDBBITS49 5 5 D* QDBFDVCI03 1 BIT D* QDBRSV9003 1 BIT D* QDBFDVCC03 1 BIT D* QDBFDVAC03 1 BIT D* QDBFDVCO03 1 BIT D* QDBFDVSR03 1 BIT D* QDBFDVNL03 1 BIT D* QDBRSV9103 1 BIT D QDBFDVRC00 6 6 D QDBFDVFT00 7 7 D QDBFDVSP00 8 8 D QDBRSV9200 9 10 D QDBFDVCD00 11 12U 0 D* QDBFCFLG00 1 D QDBBITS50 13 13 D* QDBRSV9303 2 BITS D* QDBFGLIT03 1 BIT D* QDBRSV9403 5 BITS D QDBRSV9500 14 42 D* Constant Operand Header D*QDBFDVOV 43 43 D* D* Derived Constant D* The external form of the D* constant. (varying length) D******************************************************************** D* OPERATOR ENTRY DECLARATIONS D******************************************************************** D** Translation Table Index ********************************** DQDBQ22 DS D* Translation Table Index D* Index into the translation D* table. D* or D* Index into the case selection D* specification D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '0B'X or '3E'X, D* then this field is not D* valid. D QDBDTFMT 1 1 D* Operator Date Format Index D QDBDTSEP 2 2 D* Operator Date Separator Index D** Operator attributes ************************************** DQDBQOA DS D* Operator attributes D QDBBITS26 1 1 D* QDBRSV96 1 BIT D* Reserved D* QDBVDTTM 1 BIT D* Operator Date Format and D* Separator Source D* 1 = Qddfdvdtfmt & Qddfdvdtsep D* are to be used as the D* date format & separator D* for the CHAR operator. D* Similarly, Qddfdvfm & D* Qddfdvsa are to be used D* as the time format & D* separator for the CHAR D* operator. D* 0 = Process only Qddfdvfm & D* Qddfdvsa as the format & D* separator for the CHAR D* operator. D* QDBR113 1 BIT D* Reserved D* QDBFDVDF 1 BIT D* May only be set for D* group by operators. D* 1 = Do not include duplicate D* field values in group by D* operation. D* 0 = Include duplicate field D* values in group by D* operation. D* QDBRSV97 1 BIT D* Reserved D* QDBQC01 1 BIT D* Number of characters D* operator option. D* 0 = Result is computed for D* this operator based on D* number of bytes. D* 1 = Result is computed for D* this operator based on D* number of characters. D* Applicable only when Qddfdvop D* is POSSTR '41'X, LENGTH '23'X D* or SUBSTRING '27'X and either D* of the arguments is IGC. D* QDBR115 2 BITS D* Reserved DQDBQ56 DS D* Operator Entry D QDBFDVOP 1 1 D* Derived Operator D* The type of operation to be D* performed on the operand/s. D* D* Associciated with each value, D* is a list of what operand D* attributes are valid with D* that value. D* N = ALL NUMERIC OPERANDS AR D* C = CHARACTER OPERANDS ARE D* Z = ZONED OPERANDS ARE VAL D* L = DATE OPERANDS ARE VALI D* T = TIME OPERANDS ARE VALI D* S = TIMESTAMP OPERANDS ARE D* LD = DATE DURATION OPERAND D* TD = TIME DURATION OPERAND D* SD = TIMESTAMP DURATION OP D* A = ANY OPERANDS ARE VALID D* G = GRAPHIC OPERANDS ARE VALID D* D* - Operators that require D* three operands: D* '27'X = SUBSTRING (C) D* - Operators that require D* two operands: D* '01'X = CONCATENATION (C) D* '04'X = ADDITION (N,L,LD,T, D* TD,S,SD) D* '05'X = SUBTRACTION (N,L,LD, D* T,TD,S,SD) D* '06'X = MULTIPLICATION (N) D* '07'X = DIVISION (N) D* '08'X = MINIMUM (A) D* '09'X = MAXIMUM (A) D* '1A'X = X TO THE Y POWER (N) D* '1B'X = BINARY OR (C) D* '1C'X = BINARY XOR (C) D* '1D'X = BINARY AND (C) D* '24'X = STRIP LEADING (C) D* '25'X = STRIP TRAILING(C) D* '26'X = STRIP BOTH (C) D* '35'X = COMPUTE (N,L,LD, D* T,TD,S,SD) D* '80'X = REMAINDER (N) D* '41'X = POSSTR(C,G) D* - Operators that require D* one operand: D* '02'X = MAP (A) D* '03'X = DIRECT MAP D* '0A'X = ABSOLUTE VALUE (N) D* '0B'X = TRANSLATE (C) D* '0C'X = NATURAL LOGARITHM (N) D* '0D'X = EXPONENTIAL (N) D* '0E'X = SINE (N) D* '0F'X = COSINE (N) D* '10'X = TANGENT (N) D* '11'X = COTANGENT (N) D* '12'X = ARC SINE (N) D* '13'X = ARC COSINE (N) D* '14'X = ARC TANGENT (N) D* '15'X = HYPERBOLIC SINE (N) D* '16'X = HYPERBOLIC COSINE (N) D* '17'X = HYPERBOLIC TANGENT(N) D* '18'X = HYPERBOLIC ARCTAN (N) D* '19'X = SQUARE ROOT (N) D* '1E'X = BINARY NOT (C) D* '1F'X = NEGATION (N) D* '23'X = LENGTH (A) D* '29'X = YEAR (L,S,LD,SD) D* '2A'X = MONTH (L,S,LD,SD) D* '2B'X = DAY (L,S,LD,SD) D* '2C'X = DAYS (S,L,N,C) D* '2D'X = HOUR (T,S,TD,SD) D* '2E'X = MINUTE (T,S,TD,SD) D* '2F'X = SECOND (T,S,TD,SD) D* '30'X = MICROSECOND (S,SD) D* '31'X = DATE (S,N) D* '32'X = TIME (S,T,C) D* '34'X = HEX (A) D* '36'X = Test-translate CSID D* '37'X = TRANSLATE (Monocase) D* '3C'X = NODENUMBER D* '3D'X = CAST (A) D* '47'X = PARTITION D* '48'X = NODENAME D* '83'X = LOG (BASE 10) (N) D* '84'X = ANTI LOG (BASE 10)(N) D* '85'X = DIGITS (N) D* '86'X = CHAR (L,T,S) D* '8F'X = VARGRAPHIC (C,G) D* '90'X = VARCHAR (C,G) D* '91'X = FLOOR (N) D* - Label duration operators: D* '87'X = Year D* '88'X = Month D* '89'X = Day D* '8A'X = Hour D* '8B'X = Minute D* '8C'X = Second D* '8D'X = Microsecond D* - Operators that require D* two to many operands: D* '28'X = NULL VALUES (A) D* Returns the first D* non-null value. D* '3E'X = CASE Expression (A) D* - Operators that require D* one to many operands: D* '3A'X = HASH D* - Operators that require D* one, or two, operands: D* '33'X = TIMESTAMP D* - Group by operators: D* All require one operand, D* except COUNT, which D* requires no operands. D* 'A1'X = COUNT D* 'A3'X = SUM (N) D* 'A4'X = MINIMUM (A) D* 'A5'X = MAXIMUM (A) D* 'B0'X = AVERAGE (N) D* 'B1'X = STANDARD DEVIATION(N) D* 'B2'X = VARIANCE (N) D*QDBVXNUM 2 D QDBDTFMT00 2 2 D QDBDTSEP00 3 3 D* Translation Table Index D QDBFDVFM 4 4 D* Operator Date Format (DATFMT) D* The format of the date D* operator. D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '31'X, then D* this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Operator Time Format (TIMFMT) D* The format of the time D* operator. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSA 5 5 D* Operator Date Separator D* (DATSEP) D* The separator character to be D* used with the date operator. D* or... D* Operator Time Separator D* (TIMSEP) D* The separator character to be D* used with the time operator. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBFDVNO 6 7B 0 D* Number of Operands D*QDBQOA00 1 D QDBBITS51 8 8 D* QDBRSV9600 1 BIT D* QDBVDTTM00 1 BIT D* QDBR11302 1 BIT D* QDBFDVDF02 1 BIT D* QDBRSV9700 1 BIT D* QDBQC02 1 BIT D* QDBR11500 2 BITS D* Operator attributes D QDBVED98 9 10 D* Reserved D QDBQD00 11 11 D* Specifies the character to use D* for the decimal point, D* if the operation is a CAST and D* one of the operands is numeric D* and the other is character. D* Also used for CHAR operator D* when the first operand is D* a decimal expression. Only D* used for these two operator D* types. D QDBQFD 12 15U 0 D* Offset to function referenced D* information. D* 0 - Reference information not D* given. Use derived operator D* specified above. D* <>0 - function reference section D* is provided. It is located at D* this offset from the beginning D* of this derived entry. D QDBR10100 16 26 D* Reserved D**************************************************************** D* D*This is the function reference information. If the derived D*operator section specifies that a function reference is D*specified, this structure defines that reference. D* D**************************************************************** DQDBQD02 DS D* Defines the structure of a D* function reference. D QDBR120 1 20 D* Reserved D QDBQL 21 30 D* Library name of function D* - x'40's D* Use path to determine D* function. D* - name D* search only specified D* library for function D QDBQN00 31 32U 0 D* Length of function name D QDBQF 33 160 D* Function name D**************************************************************** D* D* DERIVED FIELD DESCRIPTION INFORMATION D* D*The derived field structure is a stack of operators and D*operands in Reverse Polish Notation. For example: D* D* A + B would be: D* D* A B + D* D* ((A * B) + 14)/(X - Y) would be: D* D* A B * 14 + X Y - / D* D*NOTE: Numeric operands and character operands can not be D*mixed in one derived field description. If numeric operands D*are specified, the resulting field attributes must be D*numeric. If character operands are specified, the resulting D*field attributes must be character or DBCS. Character and D*DBCS only fields cannot be mixed in one derived field D*description. D* D*Substringing DBCS fields will be allowed, although the data D*will be treated as character data, i.e. there is no true D*Double-Byte substring support. This applies to query formats D*only. D* D* (QQ) QUERY: Y D**************************************************************** D*This section can be located with the offset Qddfderd, which D*is located in the Field header section. D**************************************************************** DQDBQ57 DS D* Derived Field Information D QDBFDVTL 1 4B 0 D* Length of Derived Field D* Information Qddfderv D QDBVNUME 5 6B 0 D* Number of Derived Field D* Entries. Zero indicates it is D* a concatenated field. D QDBFDVOT 7 10B 0 D* Offset from start of Derived D* field header to derived field D* text description (or to the D* concatenated field text D* description) (Qddfdvtx). D QDBRSV88 11 16 D* Reserved D*QDBFDVEN 17 17 D* D* Derived Field Entry Array D* (varying length) DQDBQ58 DS D* Derived Field Entry D QDBFDVLN 1 4B 0 D* Length of Derived Field Entry D* Qddfdvst D QDBFDTYP 5 6B 0 D* Derived Field Entry Type D* 0 = Field Operand D* 1 = Constant Operand D* 2 = Operator D QDBDFDVT 7 64 D* Field Operand, Constant D* Operand, or Operator Entry D* QDDFDVOFU REDEFINES QDDFDV D QDBFDVON00 7 36 D QDBFDVJR00 37 38B 0 D QDBQ103 39 40B 0 D QDBQ207 41 42B 0 D QDBDTNUM00 43 44B 0 D QDBR50200 45 45 D QDBR50300 46 46 D* QDBFLDF00 1 D QDBBITS86 47 47 D* QDBR50401 2 BITS D* QDBFSIU03 1 BIT D* QDBR50501 5 BITS D QDBRSV8900 48 64 D* Field Operand Entry D* QDDFDVOCU REDEFINES QDDFDV D* QDBFDVOH00 42 D QDBFDVOL01 7 10B 0 D* QDBQCA02 1 D QDBBITS61 11 11 D* QDBFDVCI04 1 BIT D* QDBRSV9004 1 BIT D* QDBFDVCC04 1 BIT D* QDBFDVAC04 1 BIT D* QDBFDVCO04 1 BIT D* QDBFDVSR04 1 BIT D* QDBFDVNL04 1 BIT D* QDBRSV9104 1 BIT D QDBFDVRC01 12 12 D QDBFDVFT01 13 13 D QDBFDVSP01 14 14 D QDBRSV9201 15 16 D QDBFDVCD01 17 18U 0 D* QDBFCFLG01 1 D QDBBITS62 19 19 D* QDBRSV9304 2 BITS D* QDBFGLIT04 1 BIT D* QDBRSV9404 5 BITS D QDBRSV9501 20 48 D QDBFDVOV00 49 49 D* Constant Operand Entry D* QDDFDVOU REDEFINES QDDFDV D QDBFDVOP00 7 7 D* QDBVXNUM00 2 D QDBDTFMT01 8 8 D QDBDTSEP01 9 9 D QDBFDVFM00 10 10 D QDBFDVSA00 11 11 D QDBFDVNO00 12 13B 0 D* QDBQOA01 1 D QDBBITS54 14 14 D* QDBRSV9604 1 BIT D* QDBVDTTM04 1 BIT D* QDBR11303 1 BIT D* QDBFDVDF03 1 BIT D* QDBRSV9704 1 BIT D* QDBQC03 1 BIT D* QDBR11501 2 BITS D QDBVED9800 15 16 D QDBQD01 17 17 D QDBQFD00 18 21U 0 D QDBR10101 22 32 D* Operator Entry D**************************************************************** D* D* DERIVED FIELD TEXT DESCRIPTION D* D**************************************************************** D*This section can be located with the offset Qddfdvot, which D*is located in the Derived field header section. D**************************************************************** DQDBQ59 DS D* Derived Field Text D* Information D* Text description of the D* derived field. D QDBFDVLT 1 2B 0 D* Length of Derived Field Text D* information or concatenated D* field text information. D* (Qddfdvtx) D*QDBFDTXT 3 3 D* D* Derived Field Text D* Description (varying length) D* or concatenated field text D* description. D******************************************************************** D* TRANSLATION TABLE DECLARATIONS D******************************************************************** D** Translation Table Array ********************************** DQDBQ23 DS D* Translation Table Array D QDBFXTNM 1 10 D* Translation Table Name D QDBFXTLN 11 20 D* Translation Table Library D QDBFXCID 21 22U 0 D* Translation Table Constant D* Coded Character Set D* Identifier D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* translation table. D QDBRSV99 23 32 D* Reserved D QDBFXTBL 33 288 D* Translation Table D**************************************************************** D* D* TRANSLATE TABLE SPECIFICATION. D* D**************************************************************** D*This section can be located with the offset Qddfxlto, which D*is located in the FMTD header section. D**************************************************************** DQDBQ60 DS D* Translation Table Information D QDBXLNUM 1 2B 0 D* Number of Elements In The D* Translation Table Array D*QDBFXARR 288 D QDBFXTNM00 3 12 D QDBFXTLN00 13 22 D QDBFXCID00 23 24U 0 D QDBRSV9900 25 34 D QDBFXTBL00 35 290 D* Translation Table Array D************************************************************** D* D*This is the CASE Selection specification table. If this D*specification exists it will be found after all the field D*definitions using offset Qddfrcao. D* D************************************************************** DQDBDFCSL DS D* This structure contains the D* CASE Selection specification D* table information D QDBCSNUM 1 2B 0 D* Number of selection D* specifications. D QDBDFCLN 3 6B 0 D* Length of this table plus the D* the length of all selection D* specifications D QDBERVED06 7 16 D* Reserved D QDBDFCAO 17 412B 0 DIM(00099) D* Offset to the selection D* specifications. Offset is from D* the beginning of Qdb_Qddfcsl. D* For the selection specs D* see QDBQS_T in QQQQRY D******************************************************************** D* IDDU DICTIONARY DECLARATIONS D******************************************************************** D** Format Definition Long *********************************** DQDBQ24 DS D* Format Definition Long D* Comment Information D QDBFDILT 1 2B 0 D* Length of Format Definition D* Long Comment Information D* Qddfdilt D*QDBFDITX 3 3 D* D* Format Definition Long D* Comment (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY FORMAT INFORMATION. D* D**************************************************************** D*This section can be located with the offset Qddfdico, which D*is located in the FMTD header section. D**************************************************************** DQDBQ61 DS D* IDDU/SQL Dictionary Record D* Format Information D QDBR100 1 32 D* Reserved D*QDBFDICM 3 D QDBFDILT00 33 34B 0 D QDBFDITX00 35 35 D* Format Definition Long D******************************************************************** D* Record Structure for QDBRTVFD FILD0300 format D******************************************************************** D******************************************************************** D* D*Note: Each file may contain multiple record format and each D* format may contain multiple key fields D******************************************************************** D******************************************************************** D*The following structure contains record format information and D*can appears multiple times depending on the number of record D*formats specified for the request file D******************************************************************** DQDBQ62 DS D* Record Key Information D QDBRN 1 10 D* Record Name D QDBRSV101 11 12 D* Reserved D QDBNBROK 13 14B 0 D* Number of Keys D QDBRSV201 15 28 D* Reserved D QDBKIO 29 32B 0 D* Key Information Offset D******************************************************************** D*The following structure provides file level information for the D*request file D******************************************************************** DQDBQ63 DS D* File level information D QDBBR 1 4B 0 D* Bytes Returned D QDBBA 5 8B 0 D* Bytes Available D QDBMKL 9 10B 0 D* Maximum Key Length D QDBKC 11 12B 0 D* Key Count D QDBERVED01 13 22 D* Reserved D QDBFC01 23 24B 0 D* Formats Counts D QDBRKI 32 DIM(00032) D QDBRN00 10 OVERLAY(QDBRKI:00001) D QDBRSV102 2 OVERLAY(QDBRKI:00011) D QDBNBROK00 4B 0 OVERLAY(QDBRKI:00013) D QDBRSV202 14 OVERLAY(QDBRKI:00015) D QDBKIO00 9B 0 OVERLAY(QDBRKI:00029) D* Record Key Information D******************************************************************** D*The following structure maps to the returned key_attr data to D*provide field attributes information D******************************************************************** DQDBQ64 DS D* Qdb Qdbwhkattr D QDBBITS55 1 1 D* QDBNDING 1 BIT D* 0 = the key field is an D* ascending sequence key D* 1 = The key field is a D* decending sequence key D* QDBMERIC 2 BITS D* B'00' = The numberic key field D* will sequence as a D* string of unsigned D* binary data. D* B'01' = The numeric key field D* will ignore the sign of D* the field and sequence D* as absolute value data D* B'10' = The numeric key field D* will consider the signs D* of the field and D* sequence as signed D* value data. D* QDBERVED02 1 BIT D* Reserved D* QDBAC 1 BIT D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field. D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating sequence D* table, then this field is NOT D* applicable. D* QDBFZ 1 BIT D* 0 = The zone portion of the key D* field will NOT be zeroed. D* 1 = The zone portion of the key D* field will be zeroed so D* that only the digit portions D* (farthest right 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBFD 1 BIT D* 0 = The digit portion of the key D* field will NOT be zeroed. D* 1 = The digit portion of the key D* field will be zeroed so D* that only the zone portions D* (farthest left 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBSF 1 BIT D* 0 = The key statement field name D* is an internal record format D* name. D* 1 = The key statement field name D* is an external record format D* name. D******************************************************************** D*The following structure maps to the additional key field D*attributes. D******************************************************************** DQDBQ104 DS D* Qdb Qdbwhkatt1 D QDBBITS66 1 1 D* QDBNV00 1 BIT D* Allow Null Value (ALWNULL) D* 0 = the null value is NOT D* allowed for this field. D* 1 = the null value is allowed D* for this field. D* QDBANE 1 BIT D* Alternative Name Indicator D* 0 = the key field does not have D* an alternative name. D* 1 = the key field has an D* alternative name. This D* will be 1 even if the length D* of the alternative name is D* greater than 30. @AHA D* QDBERVED04 6 BITS D* Reserved. @AHC D******************************************************************** D*The following structure provides key field information for each D*key field in a record format. This structure can appear multiple D*times depending on the number of key fields defined in the D*associated record format D******************************************************************** DQDBQ65 DS D* Qdb Qdbwhkey D QDBIFN 1 10 D* Internal Field Name D QDBEFN 11 20 D* External Field Name D QDBDT01 21 22B 0 D* The data type of the field D* X'0000' = BINARY D* X'0001' = FLOAT D* X'0002' = ZONED DECIMAL D* X'0003' = PACKED DECIMAL D* X'0004' = CHARACTER D* X'8004' = VAR CHARACTER D* X'0005' = GRAPHIC D* X'8005' = VAR GRAPHIC D* X'0006' = DBCS CAPABLE D* X'8006' = VAR DBCS-CAPABLE D* X'000B' = DATE D* X'000C' = TIME D* X'000D' = TIMESTAMP D QDBFL 23 24B 0 D* Field Length D QDBNBROD 25 26B 0 D* Number of Digits D* - For numeric fields, this is D* the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (This field is applicable only D* to numeric and graphic fields) D* D QDBDP 27 28B 0 D* Decimal Position D*QDBKA 1 D QDBBITS56 29 29 D* QDBNDING00 1 BIT D* QDBMERIC00 2 BITS D* QDBERVED03 1 BIT D* QDBAC00 1 BIT D* QDBFZ00 1 BIT D* QDBFD00 1 BIT D* QDBSF00 1 BIT D* Key Attributes D QDBANL 30 31B 0 D* Alternate Name Length D QDBAN 32 61 D* Alternate Name D QDBRSV103 62 62 D* Reserved D*QDBW1 1 D QDBBITS67 63 63 D* QDBNV01 1 BIT D* QDBANE00 1 BIT D* QDBERVED05 6 BITS D* Additional Key Attributes D QDBRSV203 64 64 D* Reserved D******************************************************************** D* Record Structure for QDBRTVFD FILD0400 format D******************************************************************** D* ----------------------------------------------- D* | | D* | TRIGGER SPACE HEADER | D* | fixed length | D* | | D* | Total £ of trigger entries | D* | | D* +---| Offset to first trigger entry | D* | | | D* | | £ of SQL Trigger entries | D* | | £ of System entries | D* | | £ of INSERT/BEFORE Trigger entries | D* | | £ of INSERT/AFTER Trigger entries | D* | | £ of DELETE/BEFORE Trigger entries | D* | | £ of DELETE/AFTER Trigger entries | D* | | £ of UPDATE/BEFORE Trigger entries | D* | | £ of UPDATE/AFTER Trigger entries | D* | | £ of READ/AFTER Trigger entries | D* | | £ of INSERT/INSTEADOF Trigger entries | D* | | £ of DELETE/INSTEADOF Trigger entries | D* | | £ of UPDATE/INSTEADOF Trigger entries | D* | | | D* +-->|---------------------------------------------| D* | Trigger Entry £ 1 | D* |---------------------------------------------| D* | Trigger Entry £ 2 | D* |---------------------------------------------| D* | . | D* | . | D* | . | D* |---------------------------------------------| D* | Trigger Entry £ n | D* ----------------------------------------------- D******************************************************************* DQDBQH DS D* Qdb Qdbftrg Head D* Trigger Header Structure @ADA D QDBQBRTN 1 4U 0 D* Qdb Qdbftrg Bytes Returned D* Bytes Returned @ADA D QDBQBA 5 8U 0 D* Qdb Qdbftrg Bytes Avail D* Bytes Available @ADA D QDBQRSV1 9 60 D* Qdb Qdbftrg Reserved1 D* Reserved. @ADA D QDBQNBRT 61 64U 0 D* Qdb Qdbftrg Num Trgs D* Number of trigger definitions. D* @ADA D QDBQRSV2 65 72 D* Qdb Qdbftrg Reserved2 D* Reserved. @ADA D QDBQOEN1 73 76U 0 D* Qdb Qdbftrg Off Ent Num1 D* Offset to first entry. @ADA D QDBQOIG 77 80U 0 D* Qdb Qdbftrg Off Ins Grp D* Offset to the beginning of D* the insert group. D* 0 => Either no INSERT D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQOUG 81 84U 0 D* Qdb Qdbftrg Off Upd Grp D* Offset to the beginning of D* the update group. D* 0 => Either no UPDATE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQODG 85 88U 0 D* Qdb Qdbftrg Off Del Grp D* Offset to the beginning of D* the delete group. D* 0 => Either no DELETE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQORG 89 92U 0 D* Qdb Qdbftrg Off Read Grp D* Offset to the beginning of D* the read group. D* 0 => Either no READ D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. @ADA D* D QDBQR36 93 120 D* Qdb Qdbftrg Reserved36 D* Reserved. @ADA D QDBQNST 121 124U 0 D* Qdb Qdbftrg Num Sql Trgs D* Number of SQL Triggers @ADA D QDBQNNT 125 128U 0 D* Qdb Qdbftrg Num Ntv Trgs D* Number of system Triggers @ADA D QDBQNIT 129 132U 0 D* Qdb Qdbftrg Num Insb Trg D* Number of Insert/Before D* triggers @ADA D QDBQNIT00 133 136U 0 D* Qdb Qdbftrg Num Insa Trg D* Number of Insert/After D* triggers @ADA D QDBQNDT 137 140U 0 D* Qdb Qdbftrg Num Delb Trg D* Number of Delete/Before D* triggers @ADA D QDBQNDT00 141 144U 0 D* Qdb Qdbftrg Num Dela Trg D* Number of Delete/After D* triggers @ADA D QDBQNUT 145 148U 0 D* Qdb Qdbftrg Num Updb Trg D* Number of Update/Before D* triggers @ADA D QDBQNUT00 149 152U 0 D* Qdb Qdbftrg Num Upda Trg D* Number of Update/After D* triggers @ADA D QDBQNRT 153 156U 0 D* Qdb Qdbftrg Num Reada Trg D* Number of Read/After D* triggers @ADA D QDBQNIT01 157 160U 0 D* Qdb Qdbftrg Num Insi Trg D* Number of Insert/Instead OF D* triggers @0DA D QDBQNDT01 161 164U 0 D* Qdb Qdbftrg Num Deli Trg D* Number of Delete/Instead OF D* triggers @0DA D QDBQNUT01 165 168U 0 D* Qdb Qdbftrg Num Updi Trg D* Number of Update/Instead OF D* triggers @0DA D QDBQRSV3 169 704 D* Qdb Qdbftrg Reserved3 D* Reserved @0DC D******************************************************************** D*The following structure provides header information for the D*trigger definition. It can appear multiple times depending on D*the number of triggers defined for the file D******************************************************************** D* Trigger Entry - Variable Length D* ----------------------------------------------- D* | | D* | TRIGGER DEFINITION HEADER - Fixed Length | D* | | D* | Total length of this trigger definition. | D* | This length plus the offset to this | D* | trigger definition header will get | D* | addressability to the next trigger | D* | definition. | D* | | D* | Length of the trigger definition header. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Trigger attributes | D* | - TYPE - System or SQL | D* | - ORIENTATION - Column, Row, Statement | D* | - TIME - Before/After | D* | - EVENT - Insert/Update/Delete/Read | D* | - STATE - Enabled/Disabled | D* | | D* | Trigger program name and library | D* | | D* | Offsets to appended trigger areas for | D* | this trigger definition. These offsets | D* | are relative to the beginning of this | D* | trigger definition header. | D* | - Trigger name area | D* | - SQL Path area | D* | - List of Update Columns | D* | - List of WHEN Referenced Columns | D* | - List of BODY Referenced Columns | D* | - List of Dependent Objects area | D* | - Transition area | D* | - SQL Trigger STMT area | D* | - Trigger Text | D* | | D* | NOTE: A SYSTEM TRIGGER will have a | D* | trigger header and a | D* | trigger name area. The text section | D* | can only be added via the COMMENT | D* | ON SQL statement and is therefore | D* | optional. All other sections are | D* | not applicable to a system trigger. | D* | | D* | An SQL TRIGGER may have all of the | D* | above structures with the following | D* | restrictions/dependencies: | D* | 1 - The trigger definition header, | D* | the trigger name area, the SQL | D* | path, and the SQL trigger STMT | D* | are all required. | D* | 2 - Only an SQL trigger with an | D* | Update event will have a list of | D* | update columns. | D* | 3 - The list of WHEN columns, the | D* | list of BODY columns, the list | D* | of dependent objects, and the | D* | transition area are optional. | D* | More correctly, they are | D* | dependent on if there is any | D* | of that type of information to | D* | be included in the trigger | D* | definition entry. | D* | 4 - The text section can only be | D* | added via the COMMENT ON SQL | D* | statement and is therefore | D* | optional. | D* | | D* |---------------------------------------------| D* | | D* | TRIGGER NAME AREA - Fixed Length | D* | | D* | Length of the TRIGGER NAME AREA. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Library name | D* | Trigger name - fixed length | D* | | D* |---------------------------------------------| D* | | D* | SQL PATH AREA - Variable Length | D* | | D* | Length of the SQL PATH Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* |---------------------------------------------| D* | | D* | LIST OF UPDATE COLUMNS AREA - Var Length | D* | This is the list of the columns specified | D* | for an Update event trigger. | D* | | D* | Length of the LIST OF UPDATE COLUMNS Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in List | D* | Array of Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF WHEN COLUMNS AREA | D* | Variable length. | D* | This is the list of the columns in the | D* | WHEN portion of the CREATE TRIGGER | D* | statement. | D* | | D* | Length of the LIST OF WHEN COLUMNS area | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in WHEN List | D* | Array of WHEN Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF BODY COLUMNS AREA | D* | Variable length. | D* | This is the list of the columns in the | D* | BODY portion of the CREATE TRIGGER | D* | statement. | D* | | D* | Length of the LIST OF BODY COLUMNS area | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in BODY List | D* | Array of BODY Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF DEPENDENT OBJECTS AREA - Var Length | D* | | D* | NOTE: This is not the actual list but a | D* | set of offsets into the SQL CREATE | D* | TRIGGER STMT that will position one | D* | to a dependent object. | D* | | D* | Length of the LIST of DEP OBJs Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of objects in List | D* | Array of Object information | D* | - Offsets to dependent object | D* | - Type of object (table, UDT, UDF, etc) | D* | - Attributes (eg library qualified) | D* | | D* | NOTE: All offsets are relative to the | D* | beginning of the CREATE TRIGGER | D* | string located in the TRIGGER SQL | D* | STMT AREA. | D* | | D* |---------------------------------------------| D* | | D* | TRANSITION AREA - Variable Length | D* | | D* | This area contains the old/new correlation | D* | names and the old/new transition | D* | table names that can be used by the action | D* | to reference the affected rows. | D* | | D* | Length of the TRANSITION Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Old Correlation variable name | D* | New Correlation variable name | D* | Old Transition Table name | D* | New Transition Table name | D* | | D* |---------------------------------------------| D* | | D* | SQL TRIGGER STMT AREA - Variable Length | D* | | D* | Length of the SQL TRIGGER STMT Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Length of the SQL CREATE TRIGGER STMT | D* | Length of the SQL WHEN CLAUSE | D* | Offset to the SQL WHEN CLAUSE relative to | D* | the start of the SQL CREATE TRIGGER STMT | D* | Length of the SQL TRIGGER BODY | D* | Offset to the SQL TRIGGER BODY relative to | D* | the start of the SQL CREATE TRIGGER STMT | D* | SQL CREATE TRIGGER STMT | D* | | D* |---------------------------------------------| D* | | D* | SQL TRIGGER TEXT AREA - Variable Length | D* | | D* | Length of the SQL TRIGGER TEXT Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Length of the SQL TEXT | D* | SQL TRIGGER TEXT | D* | | D* | NOTE: The text for a trigger can only be | D* | added via the COMMENT ON Statement. | D* | | D* ----------------------------------------------- D* D* D******************************************************************* D******************************************************************** D*This section can be located using offset Qdb_qdbftrg_off_ent_£1 D******************************************************************** DQDBQDH DS D* Qdb Qdbftrg Def Head D* Trigger definition header D* @ADA D QDBQRSV4 1 20 D* Qdb Qdbftrg Reserved4 D* Reserved. @ADA D QDBQDL 21 24U 0 D* Qdb Qdbftrg Def Len D* Length of the trigger D* definition entry. D* This includes all structures. D* NOTE: This length will also D* include any padding needed D* to get a length divisable by D* 16. This is done in order to D* get the next trigger D* definition entry on a 16 byte D* boundary. D* D* @ADA D QDBQHL 25 28U 0 D* Qdb Qdbftrg Head Len D* Length of the trigger D* definition header - D* Qdb_qdbftrg_def_head @ADA D QDBQRSV5 29 80 D* Qdb Qdbftrg Reserved5 D* Reserved @ADA D QDBQDP00 81 90 D* Qdb Qdbftrg Def Pgm D* Trigger program name @ADA D QDBQDL00 91 100 D* Qdb Qdbftrg Def Lib D* Trigger program library @ADA D QDBQRSV6 101 104 D* Qdb Qdbftrg Reserved6 D* Reserved @ADA D QDBQDON 105 108U 0 D* Qdb Qdbftrg Def Ord Num D* Trigger ordinal number. @ADA D QDBQDS 109 109 D* Qdb Qdbftrg Def State D* Trigger state. @ADA D* 'E' = Enabled D* 'D' = Disabled D* Value restricted to enabled. D* Disabled is not yet supported. D* D QDBQDO 110 110 D* Qdb Qdbftrg Def Operative D* Trigger is operative. @ADA D* 'O' = Operative Trigger. D* 'I' = Inoperative Trigger. D* D* An Operative trigger indicates D* the trigger can be fired. D* An Inoperative trigger cannot D* be fired. D* D QDBQDT 111 111 D* Qdb Qdbftrg Def Type D* Trigger type D* 'N' = Native/System (added D* using ADDPFTRG) D* 'S' = SQL (added using CREATE D* TRIGGER) @ADA D QDBQDM 112 112 D* Qdb Qdbftrg Def Mode D* Trigger mode. @ADA D* Used only when the trigger D* type QDBFTRG_DEF_TYPE is set D* to an SQL trigger. D* The mode is used to determine D* the I/O model used during D* the trigger program D* execution. D* '00'X = Not applicable. D* '01'X = DB2 SQL. D* '02'X = DB2 Row. D QDBQDO00 113 113 D* Qdb Qdbftrg Def Orient D* Trigger orientation D* 'R' = Row trigger D* 'C' = Column trigger @ADA D QDBQDT00 114 114 D* Qdb Qdbftrg Def Time D* Trigger time D* '1' = After D* '2' = Before @ADA D* '3' = Instead Of D QDBQDE 115 115 D* Qdb Qdbftrg Def Event D* Trigger event D* '1' = Insert D* '2' = Delete D* '3' = Update D* '4' = Read @ADA D QDBQRSV7 116 160 D* Qdb Qdbftrg Reserved7 D* Reserved @ADA D QDBQDOTN 161 164U 0 D* Qdb Qdbftrg Def Off Trg Name D* Offset to the trigger name D* structure. @ADA D QDBQRSV8 165 168U 0 D* Qdb Qdbftrg Reserved8 D* Reserved. @ADA D QDBQDOSP 169 172U 0 D* Qdb Qdbftrg Def Off Sql Path D* Offset to the SQL path. @ADA D QDBQDOUC 173 176U 0 D* Qdb Qdbftrg Def Off Upd Cols D* Offset to the update columns D* structure. @ADA D QDBQDOWC 177 180U 0 D* Qdb Qdbftrg Def Off When Col D* Offset to the structure D* containing the list of D* columns referenced in the D* WHEN condition. @ADA D QDBQDOBC 181 184U 0 D* Qdb Qdbftrg Def Off Body Col D* Offset to the structure D* containing the list of D* columns referenced in the D* trigger body. @ADA D QDBQDODO 185 188U 0 D* Qdb Qdbftrg Def Off Dep Objs D* Offset to the structure D* containing the list of D* dependent objects referenced D* in the trigger body. @ADA D QDBQDOT 189 192U 0 D* Qdb Qdbftrg Def Off Transiti D* Offset to the structure D* containing the transition D* tables. @ADA D QDBQDOTS 193 196U 0 D* Qdb Qdbftrg Def Off Trg Stmt D* Offset to the structure D* containing the CREATE TRIGGER D* statement. @ADA D QDBQDOTL 197 200U 0 D* Qdb Qdbftrg Def Off Trg Long D* Offset to the structure D* containing the trigger long D* comment area. The long D* comment can only be added D* via the COMMENT ON statement. D* 0 => No Trigger Long Comment. D* @ADA D QDBQRSV9 201 264 D* Qdb Qdbftrg Reserved9 D* Reserved @ADA D QDBQDU 265 265 D* Qdb Qdbftrg Def Updcond D* Trigger update condition. For D* system/native triggers only. D* This field is only valid for D* UPDATE event. This field will D* be ignored for INSERT or D* DELETE or READ events. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. @ADA D QDBQDAR 266 266 D* Qdb Qdbftrg Def Allow Repchg D* Allow repeated change. D* '00'X = *NO (not allowed) D* '01'X = *YES (allows change) D* @ADA D QDBQDT01 267 267 D* Qdb Qdbftrg Def Threadsafe D* Threadsafe indicator. D* X'00' = *UNKNOWN (Threadsafe D* status is not known) D* X'01' = *NO (Not threadsafe) D* X'10' = *YES (Threadsafe) D* @ADA D QDBQDM00 268 268 D* Qdb Qdbftrg Def Multijob D* Multithreaded Job Action D* Indicator D* X'00' = *SYSVAL (default) D* X'01' = *MSG (Run, diagnostic) D* X'10' = *NORUN (Escape) D* X'11' = *RUN (Run, no message) D* @ADA D QDBQDOT00 269 269 D* Qdb Qdbftrg Def Old Tvar D* Old transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDNT 270 270 D* Qdb Qdbftrg Def New Tvar D* New transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDOT01 271 271 D* Qdb Qdbftrg Def Old Ttable D* Old transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDNT00 272 272 D* Qdb Qdbftrg Def New Ttable D* New transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDSR 273 273 D* Qdb Qdbftrg Def Self Ref D* Indicates if this trigger is D* self-referencing. That is, D* did the user explicitly D* specify this file's name in D* the trigger body. D* X'00' => Not self-referencing D* X'01' => Self-referencing D* @ADA D QDBQDCT 274 286 D* Qdb Qdbftrg Def Crt Ts D* Trigger creation timestamp D* @ADA D QDBQDCU 287 296 D* Qdb Qdbftrg Def Crt User D* User profile that created the D* trigger @ADA D QDBQDPO 297 306 D* Qdb Qdbftrg Def Pgm Owner D* User profile that owns the D* trigger program @ADA D* For SQL triggers only D QDBQDTC 307 310U 0 D* Qdb Qdbftrg Def Trg Ccsid D* CCSID that the trigger D* statement was created with. D* @ADA D QDBQR34 311 311 D* Qdb Qdbftrg Reserved34 D* Reserved. @ADA D QDBQDMT 312 312 D* Qdb Qdbftrg Def Mod Tvar D* Indicates if the trigger D* contains a SET statement that D* modifies the new correlation D* variable. D* X'00' = No D* X'01' = Yes D* For SQL Before Update triggers D* only. @ADA D QDBQR10 313 464 D* Qdb Qdbftrg Reserved10 D* Reserved @ADA D******************************************************************** D*The following structure maps the trigger name area D******************************************************************** DQDBQNA DS D* Qdb Qdbftrg name area D QDBQR11 1 20 D* Qdb Qdbftrg Reserved11 D* Reserved. @ADA D QDBQNATL 21 24U 0 D* Qdb Qdbftrg Name Area Tot Le D* Total length of the trigger D* name area. @ADA D QDBQNLL 25 28U 0 D* Qdb Qdbftrg Name Lib Len D* Length of the trigger library D* name. @ADA D QDBQNL 29 32U 0 D* Qdb Qdbftrg Name Len D* Length of the trigger @ADA D* name. D QDBQNS 33 33 D* Qdb Qdbftrg Name Sysgen D* Trigger name generated by D* the system. D* X'00' => User GENed name. D* X'01' => Originally, user D* GENed name but D* collision occured D* and system Re-GENed D* the name. D* X'02' => System GENed name. D* @ADA D QDBQND 34 34 D* Qdb Qdbftrg Name Delim D* Trigger name is a delimited D* name. If a delimited name, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* @ADA D QDBQLD 35 35 D* Qdb Qdbftrg Lib Delim D* Trigger library is a delimited D* name. If delimited, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* @ADA D QDBQNT 36 36 D* Qdb Qdbftrg Name Type D* Trigger naming convention. D* X'00' => System naming. D* X'01' => SQL naming. @ADA D QDBQR12 37 94 D* Qdb Qdbftrg Reserved12 D* Reserved @ADA D QDBQNQ 95 362 D* Qdb Qdbftrg Name Qual D* Qualified trigger name. D* The trigger name and library D* are in 2 parts. D* The first part contains the D* trigger library name (10 D* characters). D* The second part contains the D* trigger name (258 characters). D* Qdb_Qdbftrg_Name_Len contains D* the length of the trigger D* name. D* D* The trigger name may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Name_Delim D* indicates whether it is D* delimited. If it is D* delimited, the the name in D* this field does contain D* double quotes. D* D* The trigger library may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Lib_Delim D* indicates whether it is D* delimited. @ADA D******************************************************************** D*The following structure maps the SQL path structure D******************************************************************** DQDBQPA DS D* Qdb Qdbftrg Path Area D QDBQR13 1 20 D* Qdb Qdbftrg Reserved13 D* Reserved. @ADA D QDBQPTL 21 24U 0 D* Qdb Qdbftrg Path Tot Len D* Length of the trigger path D* area. @ADA D QDBQPL 25 28U 0 D* Qdb Qdbftrg Path Len D* Length of the path structure. D* @ADA D QDBQR14 29 64 D* Qdb Qdbftrg Reserved14 D* Reserved @ADA D*QDBQP 65 65 D* D* SQL Path (varying length). D* @ADA D******************************************************************* D* D*List of Update Columns D* D*This is the list of columns specified for an Update trigger. D*The columns in this list must be present in the file's record D*format. The list will contain both the short and long column D*names. D* D*A seperate structure will be used to reference the column D*names since the long name can be variable length. D* D*NOTE: Each column entry name is unique. There will not be any D* duplicate name entries. D* D******************************************************************* D******************************************************************* D*The following structure maps the UPDATE columns list entry D******************************************************************* DQDBFQULE DS D* Qdbf Qdbftrg Updc List Ent D QDBQULL 1 4U 0 D* Qdb Qdbftrg Updc Le Len D* List Entry Length. D* Addressability to this entry D* plus this length gets D* addressability to the next D* column list entry. @ADA D* D QDBQULSN 5 14 D* Qdb Qdbftrg Updc Le Short Na D* Short name of the column. D* @ADA D QDBQULSD 15 15 D* Qdb Qdbftrg Updc Le Short De D* Short name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQULLD 16 16 D* Qdb Qdbftrg Updc Le Long Del D* Long name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQULLS 17 17 D* Qdb Qdbftrg Updc Le Long Sam D* Short name and long name are D* the same. D* X'00' => Names are different. D* X'01' => Names are the same. D* @ADA D QDBQULLL 18 21U 0 D* Qdb Qdbftrg Updc Le Long Len D* Length of the long name - D* qdbfTRG_UPDC_LE_LONG_NAME D* @ADA D QDBQR17 22 48 D* Qdb Qdbftrg Reserved17 D* Reserved @ADA D*QDBQULLN 49 49 D* Qdb Qdbftrg Updc Le Long Nam D* D* Long name of the column D* (varying length). D* @ADA D* D******************************************************************** D*The following structure maps the UPDATE columns structure D******************************************************************** DQDBQUA DS D* Qdb Qdbftrg Updc Area D QDBQR15 1 20 D* Qdb Qdbftrg Reserved15 D* Reserved. @ADA D QDBQUTL 21 24U 0 D* Qdb Qdbftrg Updc Tot Len D* Length of the update columns D* area. @ADA D QDBQUNC 25 28U 0 D* Qdb Qdbftrg Updc Num Cols D* Number of columns in the list. D* @ADA D QDBQR16 29 80 D* Qdb Qdbftrg Reserved16 D* Reserved @ADA D*QDBQULS 81 81 D* Qdb Qdbftrg Updc List Struc D* D* Update column list structure D* (varying length). @ADA D******************************************************************** D*List of WHEN Reference Columns D* D*This is the list of the columns in the WHEN portion of the D*CREATE TRIGGER statement. Actually, the name is NOT part of the D*list. Rather, there is an offset to the column name in the WHEN D*statement of the expanded CREATE TRIGGER string. D* D*Each WHEN column entry consists of a set of offsets into the D*CREATE TRIGGER expanded string. The following is an example D*of the offsets. D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* SQL will generate correlation variables X and Y. D* D* If the user codes the following: D* D* CREATE TRIGGER ... D* AFTER INSERT ON T1 ... D* WHEN(COL1 = COL2) ... D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* AFTER INSERT ON LIB1.T1 X ... D* WHEN(X.COL1 = X.COL2) ... D* D* The correlation variable X is used to qualify the D* column names with the library and file. The table in D* the expanded string are qualified with the library D* name. D* D* The list entries will have offsets into the expanded D* CREATE TRIGGER string. D* D* --------------------- D* | WHEN entry 1 | D* | Offset to col ----|--------------+ D* | Offset to file ---|--------+ | D*+------| Offset to lib | | | D*| |-------------------| | | D*| | WHEN entry 2 | | | D*| | Offset to col ----|--------|-----|--------+ D*| | Offset to file ---|----+ | | | D*| +--| Offset to lib | | | | | D*| | --------------------- | | | | D*| | | | | | D*| | | | | | D*+-->+---------------+ +------+<--+ | | D* | | | | D*CREATE TRIGGER string V V V V D*---------------------------------------------------------------- D*| ... AFTER INSERT ON LIB1.T1 X ... WHEN(X.COL1 = X.COL2) ... | D*---------------------------------------------------------------- D* D*NOTE: The list of WHEN columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the WHEN columns array entry D******************************************************************** DQDBQWA DS D* Qdb Qdbftrg When Array D QDBQWCO 1 4U 0 D* Qdb Qdbftrg When Col Off D* WHEN column name offset into D* the WHEN portion of the CREATE D* TRIGGER statement. @ADA D QDBQWCL 5 8U 0 D* Qdb Qdbftrg When Col Len D* WHEN column name length. @ADA D QDBQWFO 9 12U 0 D* Qdb Qdbftrg When File Off D* Offset to the column's file D* name. @ADA D QDBQWFL 13 16U 0 D* Qdb Qdbftrg When File Len D* Length of the column's file D* name in the trigger string. D* @ADA D QDBQWLO 17 20U 0 D* Qdb Qdbftrg When Lib Off D* Offset to the column's file D* library name. @ADA D QDBQWLL 21 24U 0 D* Qdb Qdbftrg When Lib Len D* Length of the column's file D* library name. @ADA D QDBQW1E 25 25 D* Qdb Qdbftrg When 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. @ADA D QDBQWTF 26 26 D* Qdb Qdbftrg When This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* @ADA D QDBQWCL00 27 27 D* Qdb Qdbftrg When Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWCD 28 28 D* Qdb Qdbftrg When Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQWFL00 29 29 D* Qdb Qdbftrg When File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWFD 30 30 D* Qdb Qdbftrg When File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQWLL00 31 31 D* Qdb Qdbftrg When Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWLD 32 32 D* Qdb Qdbftrg When Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR20 33 64 D* Qdb Qdbftrg Reserved20 D* Reserved @ADA D******************************************************************** D*The following structure maps the WHEN columns structure D******************************************************************** DQDBQWA00 DS D* Qdb Qdbftrg When Area D QDBQR18 1 20 D* Qdb Qdbftrg Reserved18 D* Reserved. @ADA D QDBQWTL 21 24U 0 D* Qdb Qdbftrg When Tot Len D* Length of the WHEN D* referenced columns area. @ADA D QDBQWNC 25 28U 0 D* Qdb Qdbftrg When Num Cols D* Number of columns in the list. D* @ADA D QDBQWSR 29 29 D* Qdb Qdbftrg When Self Ref D* Indicates columns in the D* WHEN list belong to this file. D* That is, this is a self- D* referencing dependency. D* X'00' => All self-referencing. D* All columns belong D* to the ON table. D* X'01' => Self-referencing. D* Some of the columns D* belong to the ON D* table. D* X'02' => Not self-referencing. D* None of the columns D* belong to the ON D* table. D* D QDBQR19 30 80 D* Qdb Qdbftrg Reserved19 D* Reserved @ADA D*QDBQWA01 64 D* Qdb Qdbftrg When Array D QDBQWCO00 81 84U 0 D* Qdb Qdbftrg When Col Off D QDBQWCL01 85 88U 0 D* Qdb Qdbftrg When Col Len D QDBQWFO00 89 92U 0 D* Qdb Qdbftrg When File Off D QDBQWFL01 93 96U 0 D* Qdb Qdbftrg When File Len D QDBQWLO00 97 100U 0 D* Qdb Qdbftrg When Lib Off D QDBQWLL01 101 104U 0 D* Qdb Qdbftrg When Lib Len D QDBQW1E00 105 105 D* Qdb Qdbftrg When 1st Entry D QDBQWTF00 106 106 D* Qdb Qdbftrg When This File D QDBQWCL02 107 107 D* Qdb Qdbftrg When Col Long D QDBQWCD00 108 108 D* Qdb Qdbftrg When Col Del D QDBQWFL02 109 109 D* Qdb Qdbftrg When File Long D QDBQWFD00 110 110 D* Qdb Qdbftrg When File Del D QDBQWLL02 111 111 D* Qdb Qdbftrg When Lib Long D QDBQWLD00 112 112 D* Qdb Qdbftrg When Lib Del D QDBQR2000 113 144 D* Qdb Qdbftrg Reserved20 D* WHEN column list array. @ADA D******************************************************************** D*The following structure maps the BODY columns structure D* D*List of Columns referenced in the BODY D* D*This is the list of the columns in the BODY portion of the D*CREATE TRIGGER statement. D* D*The columns in this list may be in this file or another file. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* column name in the BODY. D* D* See the WHEN columns prologue for an example of how D* column entry offsets are tied to the CREATE TRIGGER string. D* D*NOTE: The list of BODY columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the BODY column array entry D******************************************************************** DQDBQBA00 DS D* Qdb Qdbftrg Body Array D* Individual BODY Column Entry. D* Note: This structure does D* not contain the name of a D* column in the trigger body, D* but an offest into the D* trigger body where the D* column is referenced. D* Each entry is 64 bytes long. D* @ADA D QDBQBCO 1 4U 0 D* Qdb Qdbftrg Body Col Off D* BODY Column Name offset into D* the BODY portion of the D* CREATE TRIGGER statement. @ADA D QDBQBCL 5 8U 0 D* Qdb Qdbftrg Body Col Len D* Length of the column name in D* the trigger string. @ADA D QDBQBFO 9 12U 0 D* Qdb Qdbftrg Body File Off D* Offset to the column's file D* name. @ADA D QDBQBFL 13 16U 0 D* Qdb Qdbftrg Body File Len D* Length of the column's file D* name in the trigger string. D* @ADA D QDBQBLO 17 20U 0 D* Qdb Qdbftrg Body Lib Off D* Offset to the column's library D* name. @ADA D QDBQBLL 21 24U 0 D* Qdb Qdbftrg Body Lib Len D* Length of the column's library D* name in the trigger string. D* @ADA D QDBQB1E 25 25 D* Qdb Qdbftrg Body 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. @ADA D QDBQBTF 26 26 D* Qdb Qdbftrg Body This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* @ADA D QDBQBCL00 27 27 D* Qdb Qdbftrg Body Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBCD 28 28 D* Qdb Qdbftrg Body Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQBFL00 29 29 D* Qdb Qdbftrg Body File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBFD 30 30 D* Qdb Qdbftrg Body File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQBLL00 31 31 D* Qdb Qdbftrg Body Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBLD 32 32 D* Qdb Qdbftrg Body Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR23 33 64 D* Qdb Qdbftrg Reserved23 D* Reserved area-future use. @ADA D******************************************************************** D*The following structure maps the BODY columns structure D******************************************************************** DQDBQBA01 DS D* Qdb Qdbftrg Body Area D QDBQR21 1 20 D* Qdb Qdbftrg Reserved21 D* Reserved. @ADA D QDBQBTL 21 24U 0 D* Qdb Qdbftrg Body Tot Len D* Total length of the list of D* WHEN reference columns D* substructure D* Qdb_qdbftrg_body_area. @ADA D QDBQBNC 25 28U 0 D* Qdb Qdbftrg Body Num Cols D* Number of columns in the list. D* 0 = No columns in the list. D* @ADA D QDBQBSR 29 29 D* Qdb Qdbftrg Body Self Ref D* Indicates columns in the D* BODY list belong to this file. D* That is, this is a self- D* referencing dependency. @ADA D* X'00' => All self-referencing. D* X'01' => Some self-referencing D* X'10' => Not self-referencing. D QDBQR22 30 80 D* Qdb Qdbftrg Reserved22 D* Reserved. @ADA D*QDBQBA02 64 D* Qdb Qdbftrg Body Array D QDBQBCO00 81 84U 0 D* Qdb Qdbftrg Body Col Off D QDBQBCL01 85 88U 0 D* Qdb Qdbftrg Body Col Len D QDBQBFO00 89 92U 0 D* Qdb Qdbftrg Body File Off D QDBQBFL01 93 96U 0 D* Qdb Qdbftrg Body File Len D QDBQBLO00 97 100U 0 D* Qdb Qdbftrg Body Lib Off D QDBQBLL01 101 104U 0 D* Qdb Qdbftrg Body Lib Len D QDBQB1E00 105 105 D* Qdb Qdbftrg Body 1st Entry D QDBQBTF00 106 106 D* Qdb Qdbftrg Body This File D QDBQBCL02 107 107 D* Qdb Qdbftrg Body Col Long D QDBQBCD00 108 108 D* Qdb Qdbftrg Body Col Del D QDBQBFL02 109 109 D* Qdb Qdbftrg Body File Long D QDBQBFD00 110 110 D* Qdb Qdbftrg Body File Del D QDBQBLL02 111 111 D* Qdb Qdbftrg Body Lib Long D QDBQBLD00 112 112 D* Qdb Qdbftrg Body Lib Del D QDBQR2300 113 144 D* Qdb Qdbftrg Reserved23 D* Array used to access the list D* of BODY referenced columns. D* @ADA D******************************************************************* D* D*List of Dependent Objects for the WHEN/BODY clauses. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* dependent object. D* D*NOTE: All offsets in this list are relative to the beginning of D* the CREATE TRIGGER string located in the TRIGGER SQL STMT D* variable Qdb_qdbftrg_stmt_crt_trg. D* D*NOTE: The list of dependent objects will identify all instances D* of an object in the list. That is, there may be multiple D* entries for the same object name. The first entry flag D* can be used to differentiate between the first occurrence D* of an object in the list and subsequent entries. D* D******************************************************************* D******************************************************************** D*The following structure maps the dependent objects array entry D******************************************************************** DQDBFQDA DS D* Qdbf Qdbftrg Depo Array D QDBQDT02 1 2 D* Qdb Qdbftrg Depo Type D* Type of dependent object. D* TB = Table D* PF = Physical File D* VW = View D* LF = Logical File D* IX = Index D* UF = UDF D* UT = UDT D* PR = Procedure D* AL = Alias @ADA D QDBQDO01 3 6U 0 D* Qdb Qdbftrg Depo Off D* Offset to the dependent D* object - relative to the D* beginning of the CREATE D* TRIGGER string D* Qdb_qdbftrg_stmt_crt_trg D* @ADA D QDBQDL01 7 10U 0 D* Qdb Qdbftrg Depo Len D* Length of the dependent D* object's name. @ADA D QDBQDLO 11 14U 0 D* Qdb Qdbftrg Depo Lib Off D* Offset to the qualifying D* library name of the dependent D* object. D* Offset relative from start of D* Qdb_qdbftrg_stmt_crt_trg D* 0 => No qualifying library. D* @ADA D QDBQDLL 15 18U 0 D* Qdb Qdbftrg Depo Lib Len D* Length of the qualifying D* library name of the dependent D* object. D* 0 => No qualifying library. D* @ADA D QDBQD1E 19 19 D* Qdb Qdbftrg Depo 1st Entry D* Indicates if the object name D* is the first in the list of D* entries. Criteria is based on D* object name, library name and D* object type. D* X'00' => Object is 2nd or D* greater occurance D* in the list. D* X'01' => Object is the first D* in the list. @ADA D QDBQDTF 20 20 D* Qdb Qdbftrg Depo This File D* Indicates if the object is D* this FILE. D* X'00' => Object Not THIS FILE. D* X'01' => Object is THIS FILE. D* @ADA D QDBQDOL 21 21 D* Qdb Qdbftrg Depo Obj Long D* Indicates if the object name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQDOD 22 22 D* Qdb Qdbftrg Depo Obj Del D* Indicates if the object name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQDLL00 23 23 D* Qdb Qdbftrg Depo Lib Long D* Indicates if the object's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQDLD 24 24 D* Qdb Qdbftrg Depo Lib Del D* Indicates if the object's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR26 25 64 D* Qdb Qdbftrg Reserved26 D* Reserved. @ADA D******************************************************************** D*The following structure maps the dependent objects area D******************************************************************** DQDBFQDA00 DS D* Qdbf Qdbftrg Depo Area D QDBQR24 1 20 D* Qdb Qdbftrg Reserved24 D* Reserved. @ADA D QDBQDTL 21 24U 0 D* Qdb Qdbftrg Depo Tot Len D* Total length of the list of D* dependent objects D* substructure D* Qdb_qdbftrg_depo_area. @ADA D QDBQDNO 25 28U 0 D* Qdb Qdbftrg Depo Num Off D* Number of dependent object D* offsets in the following D* array. @ADA D QDBQDSR00 29 29 D* Qdb Qdbftrg Depo Self Ref D* Indicates this file is D* referenced at least once D* somewhere in the WHEN or D* BODY. That is, this is a D* self-referencing dependency. D* X'00' => Not self-referencing. D* X'01' => Is self-referencing. D* @ADA D QDBQR25 30 80 D* Qdb Qdbftrg Reserved25 D* Reserved. @ADA D*QDBQDA 64 D* Qdb Qdbftrg Depo Array D QDBQDT03 81 82 D* Qdb Qdbftrg Depo Type D QDBQDO02 83 86U 0 D* Qdb Qdbftrg Depo Off D QDBQDL02 87 90U 0 D* Qdb Qdbftrg Depo Len D QDBQDLO00 91 94U 0 D* Qdb Qdbftrg Depo Lib Off D QDBQDLL01 95 98U 0 D* Qdb Qdbftrg Depo Lib Len D QDBQD1E00 99 99 D* Qdb Qdbftrg Depo 1st Entry D QDBQDTF00 100 100 D* Qdb Qdbftrg Depo This File D QDBQDOL00 101 101 D* Qdb Qdbftrg Depo Obj Long D QDBQDOD00 102 102 D* Qdb Qdbftrg Depo Obj Del D QDBQDLL02 103 103 D* Qdb Qdbftrg Depo Lib Long D QDBQDLD00 104 104 D* Qdb Qdbftrg Depo Lib Del D QDBQR2600 105 144 D* Qdb Qdbftrg Reserved26 D* Array used to access the list D* of dependent objects offsets. D* @ADA D******************************************************************* D* D*TRANSITION AREA for OLD/NEW Correlation Variable names and D* OLD/NEW Transistion Table names. D* D*This area contains the old/new correlation variable names and the D*old/new transition table names that can be used by the action to D*reference the affected rows. D* D******************************************************************* DQDBFQTA DS D* Qdbf Qdbftrg Trns Area D* Transition area. @ADA D QDBQR27 1 20 D* Qdb Qdbftrg Reserved27 D* Reserved. @ADA D QDBQTTL 21 24U 0 D* Qdb Qdbftrg Trns Tot Len D* Total length of the transition D* area substructure D* Qdb_qdbftrg_trns_area; @ADA D QDBQTOL 25 28U 0 D* Qdb Qdbftrg Trns Oldvar Len D* Old correlation variable name D* length. @ADA D* 0 => No old transition var. D QDBQTNL 29 32U 0 D* Qdb Qdbftrg Trns Newvar Len D* New correlation variable name D* length. D* 0 => No new correlation var. D* @ADA D QDBQTOL00 33 36U 0 D* Qdb Qdbftrg Trns Oldtbl Len D* Old transition table name D* length. D* 0 => No old transition table. D* @ADA D QDBQTNL00 37 40U 0 D* Qdb Qdbftrg Trns Newtbl Len D* New transition table name D* length. D* 0 => No new transition table. D* @ADA D QDBQTOO 41 44U 0 D* Qdb Qdbftrg Trns Oldvar Off D* Offset to the Old correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old correlation var. D* @ADA D QDBQTNO 45 48U 0 D* Qdb Qdbftrg Trns Newvar Off D* Offset to the New correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition var. D* @ADA D QDBQTOO00 49 52U 0 D* Qdb Qdbftrg Trns Oldtbl Off D* Offset to the Old transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old transition table. D* @ADA D QDBQTNO00 53 56U 0 D* Qdb Qdbftrg Trns Newtbl Off D* Offset to the New transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition table. D* @ADA D QDBQTOD 57 57 D* Qdb Qdbftrg Trns Oldvar Del D* Old correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTND 58 58 D* Qdb Qdbftrg Trns Newvar Del D* New correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTOD00 59 59 D* Qdb Qdbftrg Trns Oldtbl Del D* Old transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTND00 60 60 D* Qdb Qdbftrg Trns Newtbl Del D* New transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTNL01 61 64U 0 D* Qdb Qdbftrg Trns Names Len D* Total length of the transition D* names in the structure D* Qdb_Qdbftrg_Trns_Names. @ADA D QDBQR28 65 112 D* Qdb Qdbftrg Reserved28 D* Reserved. @ADA D*QDBQTN 113 113 D* Qdb Qdbftrg Trns Names D* D* Old/new transition @ADA D* variable/table names reside D* here. See offsets for D* substringing the names D* (varying length). @ADA D* @ADA D******************************************************************* D* D*SQL TRIGGER STMT AREA D* D*NOTE: This is the complete CREATE TRIGGER statement and expanded D* to include library information. D* D*NOTE: All offsets are relative to the beginning of the CREATE D* TRIGGER string. D* D*DESIGN NOTE: The expanded string for the CREATE TRIGGER will be D* library qualified for both SQL names and system names. D* That is, for those object names not library qualified, D* one will be added before the object name. All names D* (short, long, delimited, non-delimited) will be left as D* the user specified them. D* D* The design point will be to store the image of what the D* user defined but with all names library qualified. D* D* For column names, correlation variables will be used D* for each column to qualify the names. D* D* For example: D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* Given Table T2 in LIB2 with columns COL3 and COL4 D* SQL will generate correlation variables X and Y D* D* If the user codes the following: D* D* CREATE TRIGGER ... SELECT * FROM T1, T2 WHEN COL1 = 10 D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* SELECT X.COL1, X.COL2, Y.COL3, Y.COL4 D* FROM LIB1.T1 X, LIB2.T2 Y D* WHEN X.COL1 = 10 D* D* The correlation variables X and Y are used to qualify D* the column names with the library and file. The tables D* in the expanded string are qualified with the library D* name. D* D******************************************************************* DQDBQSA DS D* Qdb Qdbftrg Stmt Area D* SQL Trigger statement area. D* @ADA D QDBQR29 1 20 D* Qdb Qdbftrg Reserved29 D* Reserved. @ADA D QDBQSTL 21 24U 0 D* Qdb Qdbftrg Stmt Tot Len D* Total length of the SQL D* Trigger statement area - D* substructure D* Qdb_Qdbftrg_Stmt_Area. @ADA D QDBQSOO 25 28U 0 D* Qdb Qdbftrg Stmt Onfile Off D* Offset to the user specified D* file/table name in the D* CREATE TRIGGER STMT. D* This is the ON table-name D* that specifies the table D* the trigger is being added D* to. See the prologue of this D* structure for the layout of D* the data. @ADA D* D QDBQSOL 29 32U 0 D* Qdb Qdbftrg Stmt Onfile Len D* Length of the qualified D* library.file name of the D* ON file/table name. This is D* not the MAX length but the D* actual lenght of the name. D* This name also takes into D* accout the period seperator. D* @ADA D QDBQSOD 33 33 D* Qdb Qdbftrg Stmt Onfile Del D* The ON table/file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQSOD00 34 34 D* Qdb Qdbftrg Stmt Onlib Del D* The ON table-file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQSOL00 35 35 D* Qdb Qdbftrg Stmt Onfile Long D* The ON table-file name is D* a long name. D* X'00' => Name not long name. D* X'01' => Name is a long name. D* @ADA D QDBQR30 36 36 D* Qdb Qdbftrg Reserved30 D* Reserved. @ADA D QDBQSCTL 37 40U 0 D* Qdb Qdbftrg Stmt Crt Trg Len D* Length of the SQL CREATE D* TRIGGER string in variable D* Qdb_Qdbftrg_stmt_crt_trg @ADA D QDBQSWL 41 44U 0 D* Qdb Qdbftrg Stmt When Len D* Length of the WHEN clause D* for the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSWO 45 48U 0 D* Qdb Qdbftrg Stmt When Off D* Offset to the WHEN clause D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D* This offset is relative to D* the beginning of variable D* WDBFTRG_STMT_CRT_TRG D QDBQSBL 49 52U 0 D* Qdb Qdbftrg Stmt Body Len D* Length of the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSBO 53 56U 0 D* Qdb Qdbftrg Stmt Body Off D* Offset to the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg D* This offset is relative to D* the beginning of variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSR31 57 112 D* Qdb Qdbftrg Stmt Reserved31 D* Reserved. @ADA D*QDBQSCT 113 113 D* Qdb Qdbftrg Stmt Crt Trg D* D* SQL CREATE TRIGGER string D* (varying length). @ADA D******************************************************************* D* D*SQL TRIGGER LONG COMMENT AREA D* D*NOTE: The Trigger Long comment can only be added via the D* COMMENT ON SQL statement. D* D******************************************************************* DQDBQLA DS D* Qdb Qdbftrg Long Area D* SQL Trigger Long Comment area. D* @ADA D QDBQR32 1 20 D* Qdb Qdbftrg Reserved32 D* Reserved. @ADA D QDBQLTL 21 24U 0 D* Qdb Qdbftrg Long Tot Len D* Total length of the SQL D* Trigger long comment area D* substructure D* Qdb_qdbftrg_long_area @ADA D QDBQLL 25 28U 0 D* Qdb Qdbftrg Long Len D* Length of the Trigger Long D* comment area which is located D* in variable D* Qdb_qdbftrg_long_comment @ADA D QDBQLC 29 30U 0 D* Qdb Qdbftrg Long Ccsid D* Text CCSID. @ADA D QDBQR33 31 64 D* Qdb Qdbftrg Reserved33 D* Reserved. @ADA D*QDBQLC00 65 65 D* Qdb Qdbftrg Long Comment D* D* Trigger long comment (varying D* length). @ADA D******************************************************************* D* D*SQL Materialized Query Table Dependency Entry. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section repeats in the dependency array for the number D*of depended-on files (Qdbfmqtd_num_deps) defined in structure D*Qdb_Qdbfmqtd_Head. The first dependency entry follows the D*dependency header Qdb_Qdbfmqtd_Head. Use length Qdbfmqtd_len D*to get to the next dependency entry. D******************************************************************* DQDBFMQTD DS D* SQL Materialized Query Table D* Dependency Entry. D QDBR117 1 16 D* Reserved. D QDBFL00 17 20U 0 D* Length, in bytes, of this D* dependency entry. Use this D* length to get to the next D* entry. D QDBFFIL 21 30 D* Name of depended-on file. D QDBFL01 31 40 D* Name of depended-on file's D* library. D QDBR116 41 96 D* Reserved. D******************************************************************* D* D*SQL Materialized Query Table Dependency Header. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section can be located with the offset Qdbfmqtd_o, which D*is located in the SQL Area, Qdb_Qdbfv. This structure exists D*only if the file is a SQL materialized query table. D******************************************************************* DQDBQH00 DS D* SQL Materialized Query Table D* Dependency Header. D QDBFLS 1 4U 0 D* Qdbfmqt len sum D* Total length, in bytes, of D* the dependency area. This D* includes both the dependency D* header and the dependency D* array. D QDBFNBRD 5 8U 0 D* Qdbfmqt num deps D* Number of file entries in the D* dependency array. D QDBRSV1601 9 64 D* Reserved. D*QDBQA 65 65 D* D* Dependency array. D******************************************************************* D* D*SQL Partitioned Table Header Area. D* D*This section contains information about the files that D*are SQL Partitioned Tables. D* D* D******************************************************************* D*This section can be located with the offset Qdbfoff_sqpt D*This structure exists only if the file is a SQL Partitioned D*Table. D******************************************************************* DQDBQH01 DS D* SQL Partitoned Table D* Header. D QDBFLS00 1 4U 0 D* Qdbfsqpt Len Sum D* Total length, in bytes, of D* the partitioned table area. D* This includes all structures D* that follow. D QDBFSR4 5 8U 0 D* Reserved. D QDBFRH 9 9 D* 'R' = Range Partitioning. D* 'H' = Hash Partitioning. D QDBFL02 10 10 D* 'Y' = Field has long name. D* 'N' = No long name. D QDBFR230 11 240 D* Reserved. D QDBFNBRP 241 244U 0 D* Qdbfsqpt Num Parts D* Number of file partitions. D* This is the number of D* Qdb_Qdbfsqpt_Part structures D* that follow. D QDBFPO 245 248U 0 D* Qdbfsqpt Part Offset D* The offset to the first D* partition. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFHO 249 252U 0 D* Qdbfsqpt Hk Offset D* The offset to the partition D* key structure if hash D* partitioning is specified. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFSR400 253 256U 0 D* Reserved. D QDBFHR4 257 260U 0 D* Reserved. D QDBFFR4 261 264U 0 D* Reserved. D QDBFR88 265 352 D* Reserved. D*QDBQHHA 353 353 D* Qdb Qdbfsqpt head hash array D* D* Header Hash key array. D*QDBQPA00 354 354 D* D* Partition array. D******************************************************************* D* D*SQL Partition Area. D* D*This section contains information about the partitions D*of a Partitioned Table. D* D******************************************************************* D*This section repeats for the number of partitons. D*The next partition can be addressed by the total length of the D*partition. The total length of the partition includes all D*sub-structures that can be included. D* D******************************************************************* DQDBQP00 DS D* SQL Partitioned Table D* Partition Structure. D QDBFPL 1 4U 0 D* Qdbfsqpt Part Len D* Length, in bytes of this D* partition and all sub-structs. D* Use this length to get to the D* next partition. D QDBFPDSN 5 8U 0 D* The partition data D* space number. D QDBFPNBR 9 12U 0 D* The partition number. D QDBFPL00 13 16U 0 D* Qdbfsqpt Pname Len D* Length of the partition name. D QDBFP 17 144 D* Name of the partition. D QDBFMR80 145 224 D* Reserved. D QDBFNBRK 225 228U 0 D* Qdbfsqpt Num Keys D* Number of range keys. D* If the partitioning is range, D* this is the number of range D* key structures that will D* follow. If hash partitioning D* was being done, this value is D* 0. D QDBFRO 229 232U 0 D* Qdbfsqpt Range Offset D* Offset to the first range D* key structure. If hash D* partitioning was being done, D* this value will be 0. D QDBFRSV8 233 240 D* Reserved. D*QDBQRA00 241 241 D* D* Range array. D******************************************************************* D* D*SQL Range Key Area. D* D*This section contains information about the partitions D*range key(s). D* D******************************************************************* D*This section repeats for the number of range keys. D*The next range key structure can be addressed by the total length D*of the range key information. D* D******************************************************************* DQDBQR DS D* SQL Partitioned Table D* Range Key Structure. D QDBFRL 1 4U 0 D* Qdbfsqpt Range Len D* Length, in bytes of this D* structure and all sub-structs. D* Use this length to get to the D* next range key structure. D QDBFR12 5 16 D* Reserved. D QDBFRK 17 26 D* Range key name. D* ******************************* D QDBFRRSV 27 28U 0 D* Qdbfsqpt Range Reserved D* Element. D* ******************************* D QDBFR01 29 29 D* Range minimum value: D* Start value minimum: D* 'Y' = Yes. D* 'N' = No. D QDBFR02 30 30 D* Range maximum value: D* End value maximum: D* 'Y' = Yes. D* 'N' = No. D QDBFR03 31 31 D* Range start value inclusive: D* Start inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR04 32 32 D* Range end value inclusive: D* End inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR15 33 47 D* Reserved. D QDBFR05 48 48 D* Range null option: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR06 49 52U 0 D* Length in bytes of the D* starting range value string. D QDBFR07 53 56U 0 D* Length in bytes of the D* ending range value string. D QDBFRO00 57 60U 0 D* Qdbfsqpt Rstart Offset D* Offset to the D* starting range value string. D QDBFRO01 61 64U 0 D* Qdbfsqpt Rend Offset D* Offset to the D* ending range value string. D QDBFR14 65 78 D* Reserved. D QDBFR08 79 80U 0 D* Qdbfsqpt Rccsid D* Coded Character Set D* Identifier, CCSID, For D* the range start-end D* values string. D*QDBQRSA 81 81 D* D* Start value string. D*QDBQREA 82 82 D* D* End value string. D******************************************************************* D* D*SQL Head Hash Key Area. D* D*This section contains information about the partitions D*hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQHH DS D* Qdb Qdbfsqpt Head Hash D* SQL Partitioned Table D* Header Hash Key Structure. D QDBFHHL 1 4U 0 D* Qdbfsqpt Head Hash Len D* Total length of the header D* and all entries. D QDBFHNK 5 8B 0 D* Qdbfsqpt Head Num Keys D* Total number of keys, D* or entries that follow. D QDBHR56 9 64 D* Reserved. D*QDBQHA 65 65 D* D* Hash Partition Key Array. D******************************************************************* D* D*SQL Hash Key Area. D* D*This section contains the hash key information about the D*partitions hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQH02 DS D* Qdb Qdbfsqpt Hash D* SQL Partitioned Table D* Hash Key Structure. D QDBFHK 1 10 D* Hash key name. D QDBFHR22 11 32 D* Reserved. D******************************************************************* D* D*SQL Field Format Information D* D*This section contains the format information about each D*partition key field. The information is the same that is stored D*in the format for the file. D* D******************************************************************* DQDBQF00 DS D* Qdb Qdbfsqpt Fldinfo D* SQL Partitioned Field Format D* Information Structure. D QDBFFR400 1 4U 0 D* Reserved. D QDBFFN 5 14 D* Field name. D QDBFFNBR 15 16U 0 D* Field number. D QDBFFT 17 18B 0 D* Field type. D QDBFFB 19 20B 0 D* Field buffer offset. D QDBFFF 21 22U 0 D* Field length, bytes. D QDBFFF00 23 24U 0 D* Field digits. D QDBFFF01 25 26B 0 D* Field precision. D QDBFFK 27 27 D* Field KBS. D QDBFFV 28 28 D* Field varlen, Y/N. D QDBFFN00 29 29 D* Field null, Y/N. D QDBFFR 30 30 D* Field rowid, Y/N. D QDBFFI 31 31 D* Field ident, Y/N. D QDBTF816 32 32 D* Field UTF8/16 Y/N. D QDBDTFMT02 33 33 D* Field date format. D QDBDTSEP02 34 34 D* Field seperator. D QDBFFC 35 36U 0 D* Field Ccsid. D QDBFFL 37 38U 0 D* Long field length. D QDBFFL00 39 68 D* Long name. D QDBFFR76 69 144 D* Reserved. D*£ifndef __ILEC400__ è @RKR //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(QDBRTVFD71) FILETYPE(*SRC) ENDCHAR('//ENDSRC') D*begin_generated_IBM_copyright_prolog D*This is an automatically generated copyright prolog. D*After initializing, DO NOT MODIFY OR MOVE D*----------------------------------------------------------------- D* D*Product(s): D*5722-SS1 D*5770-SS1 D* D*(C)Copyright IBM Corp. 1994, 2009 D* D*All rights reserved. D*US Government Users Restricted Rights - D*Use, duplication or disclosure restricted D*by GSA ADP Schedule Contract with IBM Corp. D* D*Licensed Materials-Property of IBM D* D*--------------------------------------------------------------- D* D*end_generated_IBM_copyright_prolog D*** START HEADER FILE SPECIFICATIONS **************************** D* D*Header File Name: H/QDBRTVFD.h D* D*Descriptive Name: Retrieve file description API. D* D*Description: The Retrieve File Description (QDBRTVFD) API D* allows the user to get complete and specific D* information about a file on a local or remote D* system. D* D*Header Files Included: None D* D*Macros List: None D* D*Structure List: Qdb_Rfd_Input_Parms_t D* Qdb_Qdbfh_t D* Qdb_Qdbfphys_t D* Qdb_Qdbftrg_t D* Qdb_Qdbf_Constraint_t D* Qdb_Qdbf_Keyn_t D* Qdb_Qdbf_Riafk_Afkd_t D* Qdb_Qdbf_Chk_Cst_t D* Qdb_Qdbfdtalnk_t D* Qdb_Qdbfdlcole_t D* Qdb_Qdbfdrae_t D* Qdb_Qdbfdrtb_t D* Qdb_Qdbflogl_t D* Qdb_Qdbfv_t D* Qdb_Qdbfj_t D* Qdb_Qdbfjfld_t D* Qdb_Qdbfjdup_t D* Qdb_Qdbfacs_t D* Qdb_Qdbfdic_t D* Qdb_Qdbflngn_t D* Qdb_Qdbfb_t D* Qdb_Qdbfss_t D* Qdb_Qdbfsp_t D* Qdb_Qdbfk_t D* Qdb_Qdbf_dis_t D* Qdb_Qdbfjoal_t D* Qdb_Qddfmt_t D* Qdb_Qddffld_t D* Qdb_Qddfrefi_t D* Qdb_Qddfedcw_t D* Qdb_Qddfdfne_t D* Qdb_Qddfcolh_t D* Qdb_Qddfvchk_t D* Qdb_Qddfvcst_t D* Qdb_Qddfvcpr_t D* Qdb_Qddfcpli_t D* Qdb_Qddfftxt_t D* Qdb_Qddfalis_t D* Qdb_Qddfdft_t D* Qdb_Qddfdicf_t D* Qdb_Qddfdvof_t D* Qdb_Qddfdvoc_t D* Qdb_Qddfdvo_t D* Qdb_Qddfderv_t D* Qdb_Qddfdvst_t D* Qdb_Qddfdvtx_t D* Qdb_Qddfxl_t D* Qdb_qddfcsl_t D* Qdb_Qddfdic_t D* Qdb_Qdbwhrec_t D* Qdb_Qdbwh_t D* Qdb_Qdbwhkattr_t D* Qdb_Qdbwhkatt1_t D* Qdb_Qdbwhkey_t D* Qdb_Qbftrg_Head D* Qdb_Qdbftrg_Def_Head D* Qdb_Qdbftrg_Name_Area D* Qdb_Qdbftrg_Path_Area D* Qdb_Qdbftrg_Updc_Area D* Qdb_Qdbftrg_Updc_List_Ent D* Qdb_Qdbftrg_When_Area D* Qdb_Qdbftrg_When_Array D* Qdb_Qdbftrg_Body_Area D* Qdb_Qdbftrg_Body_Array D* Qdb_Qdbftrg_Depo_Area D* Qdb_Qdbftrg_Depo_Array D* Qdb_Qdbftrg_Trns_Area D* Qdb_Qdbftrg_Stmt_Area D* Qdb_Qdbftrg_Long_Area D* Qdb_Qdbfmqtd_Head D* Qdb_Qdbfmqtd D* Qdb_Qdbfvflgs D* Qdb_Qdbfsqpt_Head D* Qdb_Qdbfsqpt_Part D* Qdb_Qdbfsqpt_Range D* Qdb_Qdbfsqpt_Head_Hash D* Qdb_Qdbfsqpt_Hash D* D*Function Prototype List: QDBRTVFD D* D*Change Activity: D* D*CFD List: D* D*FLAG REASON LEVEL DATE DEPT/PGMR CHANGE DESCRIPTION D*---- ------------ ----- ------ --------- ---------------------- D*$A0= D2862000 3D10 940102 45H R P: New Include D*$01= PTH01678 3P10 940818 45H JRA: Correct ALWNULL flag D* definition. D*$A2= D9196200 3D60 941104 45H JRA: Large Access Path D* support. D*$A3= D2871000 3D60 941104 45H JRA: UCS-2 support. D*$02= P3979527 3P10 950119 45H JRA: Correct field text D* definition. D*$03= PSA42574 3P10 950411 45H JRA: Correct ACST/SST D* definition and D* separate Record ID D* Code array. D*$04= P 3D60 950630 45H PSN: Add Default for Date, D* Time, Timestamp of D* CURRENT_xxxx D*$A4= D9410100 3D70 950713 45H KRB: Distributed File D* support. D*$05= P3617238 3D70 960430 45H KRS: Add missing operands D* to derived operator D* comments. D*$06= P3629488 4D10 960930 45H KLW: Add missing comments D* for concatenated D* fields and number of D* digits. D*$A5= D28540 4D20 970127 45H randy: Add Check Constraint D* support D*$A6= D9495801 4D20 970215 45H KRS: UCS-2 sort sequence D*$07= P3640846 4D20 970227 45H KRS: Fix comment. D*$08= P3651248 4D20 970729 RAMLER : Add v4r2 QQ support D* CAST, CASE D*$09= P3652103 4D20 970811 45H KRS: Add "Allow Repeated D* Change" flag to D* trigger section. D*$A7= d9491500 4D30 971215 45H DMK: Add EVI support. D*$A8= P3663202 4D30 980302 SBURRICH: Add comment for V4R3 D* QQ FLOOR support. D*$A9= D9586707 4D40 980713 45H KRS: Add THDSAFE and D* MLTTHDACN support. D*$AA= D9703200 4D40 980713 45H MWT: Complex Objects. D*$AB= P3684590 4D40 981117 45H KRS: Add Qddfsqfd. D*$AC= P3684760 4D40 981209 Bestgen: UDF support. D*$AD= D9759300 5D10 990801 45H RKS: Triggers D*$AE= P9934931 5D10 001010 45H RKS: Teraspace State II D*$AF= P9938576 5D10 001129 45H RKS: Fix comment D*$AG= D9844202 5D20 010530 45H RKS: Identity Columns D*$AH= D9899500 5D20 010625 VPZ MJA: Longer alias names D*$AI= D9913201 5D30 020613 45H KRS: SQL materialized query D* tables. D*$AJ= D9923300 5D30 021010 45H MWT: SQL Partitioned Table D*$AK= D9922600 5D30 030107 45H RLN: Binary Character D* support. D*$AL= D9924906 5D30 030226 45H KRS: UTF8. D*$0A= P9A32647 5D30 030616 45H KRS: Return Qddfflgs in D* field header. D*$0B= P9A35914 5D30 030729 45H KRS: Fix values for ROWID D* and ID generate fields. D*$0C= P9A42662 5D30 031010 ISA MJA: Add info for SQL view D* text. D*$0D= D9977201 5D40 031206 45H BAC: Instead OF triggers D*$AM= D9307400 5D40 041206 45H MWT: Added for V5R4. D*$AN= D9342302 5D50 051214 45H KRS: LF/PF Restore Ordering D*$0D= PSE24623 5D50 060427 45H KRS: Add QDDFFVLN. D*$0E= P9B29769 5D50 060627 45H MWT: Change 2000 to 32768. D*$AP= D9995800 5D50 061010 45H MWT: SQL Index with a D* derived key, or a D* Where clause(SQLI). D*$AQ= D9354900 5D50 061122 45H JAV: DECFLOAT D*$AR= D9356200 5D50 070108 45H RLN: Row Change Timestamp D* and Hidden Column D* support. D*$AS= P9C30998 7D10 080908 GEY MJA: Enable constraint type D* and Secure Data D*$AT= D9230000 7D10 081119 47U RLN: Restricted XML Data D* Type. D*$AU= D9223900 7D10 081202 47U RLN: Database Encryption D* Via Field Procedures. D*$AV= P9C36148 7D10 081212 47U MWT: Added for QCPIMPRT. D*$0F= P9C42250 7D10 090603 HRG RLN: Keep in memory D* (KEEPINMEM) support. D*$0G= FW482528 7D10 090914 GEY MJA: Change UNIT comment D* D*End CFD List. D* D*Additional notes about the Change Activity D*End Change Activity. D***************************************************************** D******************************************************************** D*Prototypes for calling Retrieve File Description API QDBRTVFD D******************************************************************** D QDBRTVFD C 'QDBRTVFD' D****************************************************************** D*Input structure for QDBRTVFD API header section D****************************************************************** DQDBRIP DS D* Qdb Rfd Input Parms D*QDBRV 1 1 D* D* varying length D QDBLORV 2 5B 0 D* Length Of Receiver Var D QDBRFAL 6 25 D* Returned File And Library D QDBFN00 26 33 D* Format Name D QDBFALN 34 53 D* File And Library Name D QDBRFN00 54 63 D* Record Format Name D QDBFILOF 64 64 D* File Override Flag D QDBYSTEM 65 74 D* System D QDBFT 75 84 D* Format Type D*QDBEC 85 85 D* D* varying length D**************************************************************** D* Record Structure for QDBRTVFD FILD0100 format D**************************************************************** D******************************************************************** D* FDT HEADER DECLARATIONS D******************************************************************** D* The following typedef structs are pointed to by the header D* typedef struct. They are defined outside of the header for D* LAN/DE compatibility and to ensure alignment on a 16-byte D* boundary. D**************************************************************** D** Attribute Bytes ******************************************* DQDBQ DS D* Attribute Bytes D QDBBITS 1 2 D* QDBRSV1 2 BITS D* Reserved. D* QDBFHFPL 1 BIT D* Type Of File D* 0 = The file is a physical D* Database file. D* 1 = The file is a logical D* Database file. D* QDBRSV2 1 BIT D* Reserved. D* QDBFHFSU 1 BIT D* File Type (FILETYPE) D* 0 = The file is a data file D* (*DATA). D* 1 = The file is a source D* file (*SRC). D* QDBRSV3 1 BIT D* Reserved. D* QDBFHFKY 1 BIT D* Access Path D* 0 = The file has an arrival D* sequence access path D* 1 = The file has a keyed D* sequence access path D* QDBRSV4 1 BIT D* Reserved. D* QDBFHFLC 1 BIT D* Record Format Level Check D* (LVLCHK) D* 0 = The level identifiers of D* the record formats are D* NOT checked when the file D* is opened (*NO). D* 1 = The level identifiers of D* the record formats are D* checked when the file D* is opened (*YES). D* QDBFKFSO 1 BIT D* Select/Omit D* 0 = The file is NOT a D* select/omit logical file. D* 1 = The file is a select/omit D* logical file. D* QDBRSV5 1 BIT D* Reserved. D* QDBFHSHR 1 BIT D* Reserved. D* QDBRSV6 2 BITS D* Reserved. D* QDBFIGCD 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any DBCS or Graphic data D* fields. D* 1 = The record format(s) for D* the file does contain D* DBCS or Graphic data D* fields. D* QDBFIGCL 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The file definition for D* the file does NOT contain D* DBCS or Graphic literals. D* 1 = The file definition for D* the file does contain D* DBCS or Graphic literals. D** Keyed Sequence Access Path Attributes ********************* DQDBQ00 DS D* Keyed Sequence Access Path D* Attributes D QDBBITS00 1 1 D* QDBRSV8 1 BIT D* Reserved. D* QDBFKFCS 1 BIT D* Alternative Collating D* Sequence (ALTSEQ) D* 0 = No alternative collating D* sequence table for the D* file. D* 1 = An alternative collating D* sequence table was D* specified for the file. D* QDBRSV9 4 BITS D* Reserved. D* QDBFKFRC 1 BIT D* Force Keyed Access Path D* (FRCACCPTH) D* 0 = The access path and D* changed records are NOT D* forced to auxiliary D* storage when the access D* path is changed (*NO). D* 1 = The access path and D* changed records are D* forced to auxiliary D* storage when the access D* path is changed (*YES). D* QDBFKFLT 1 BIT D* Floating Point Key Indicator D* 0 = The access path for the D* file contains NO floating D* point keys. D* 1 = The access path for the D* file contains floating D* point keys. D** Keyed Sequence Access Path Description ******************** DQDBQ01 DS D* Keyed Sequence Access Path D* Description D* If this file has an arrival D* sequence access path, these D* fields are NOT applicable. D QDBFKNUM 1 2B 0 D* Number Of Key Fields D* 1-120 = Number of key fields D* for the file. D QDBFKMXL 3 4B 0 D* Maximum Key Length D* 1-32768 = Maximum length of D* the key for the file. D*QDBFKFLG 1 D QDBBITS01 5 5 D* QDBRSV800 1 BIT D* QDBFKFCS00 1 BIT D* QDBRSV900 4 BITS D* QDBFKFRC00 1 BIT D* QDBFKFLT00 1 BIT D* Keyed Sequence Access Path D QDBFKFDM 6 6 D* Access Path Maintenance D* (MAINT) D* 'I' = Immediate maintenance D* (*IMMED). D* 'D' = Delayed maintenance D* (*DLY). D* 'R' = Rebuild maintenance D* (*REBLD). D QDBRSV10 7 14 D* Reserved. D** Additional Attribute Flags ******************************** DQDBQAAF DS D* Additional Attribute Flags D QDBBITS02 1 1 D* QDBRSV12 7 BITS D* Reserved. D* QDBFPGMD 1 BIT D* Program Described File D* Indicator D* 0 = The file is an externally D* described file. D* 1 = The file is a program D* described file. D** Additional Attribute Flags ******************************** DQDBQ2 DS D* Additional Attribute Flags D QDBBITS03 1 2 D* QDBFJNAP 1 BIT D* Access Path Journaled D* 0 = The files access path(s) D* is NOT journaled. D* 1 = The files access path(s) D* is journaled. D* File Capability Attributes D* QDBRSV13 1 BIT D* Reserved. D* File Capability Flags D* QDBFRDCP 1 BIT D* Allow Read Operation D* 0 = Records are allowed to D* be read from the file. D* 1 = Records are NOT allowed D* to be read from the file. D* QDBFWTCP 1 BIT D* Allow Write Operation D* 0 = Records are allowed to D* be written to the file. D* 1 = Records are NOT allowed D* to be written to the D* file. D* QDBFUPCP 1 BIT D* Allow Update Operation D* (ALWUPD) D* 0 = Records are allowed to D* be updated in the file D* (*YES). D* 1 = Records are NOT allowed D* to be updated in the D* file (*NO). D* QDBFDLCP 1 BIT D* Allow Delete Operation D* (ALWDLT) D* 0 = Records are allowed to D* be deleted from the file D* (*YES). D* 1 = Records are NOT allowed D* to be deleted from the D* file (*NO). D* QDBRSV14 9 BITS D* Reserved. D* QDBFKFND 1 BIT D* Null Values Cause Duplicates D* Indicator (UNIQUE) D* 0 = Null values do cause D* duplicate keys in the D* files access path(s) D* (*INCNULL). D* 1 = Null values do NOT cause D* duplicate keys in the D* files access path(s) D* (*EXCNULL). D* Only valid if Qdbfpact is D* equal to 'KU'. D** Additional Attribute Flags ******************************** DQDBQ200 DS D* Additional Attribute Flags D QDBBITS04 1 2 D* QDBFHMCS 1 BIT D* Multiple Coded Character Set D* Identifier Indicator (CCSID). D* 0 = The file has only one D* CCSID for all of its D* input and output D* character type fields. D* 1 = The file has more than D* one CCSID for all of its D* input and output D* character type fields. D* If the file has NO character D* type fields in its record D* format(s), this bit will be D* off. D* QDBRSV15 1 BIT D* Reserved. D* QDBFKNLL 1 BIT D* Allow Null Value Key D* Indicator (ALWNULL) D* 0 = The access path for the D* file contains NO allow D* null value keys. D* 1 = The access path for the D* file contains allow null D* value keys. D* QDBFNFLD 1 BIT D* Allow Null Value Data D* (ALWNULL) D* 0 = The record format(s) for D* the file does NOT contain D* any allow null value D* fields. D* 1 = The record format(s) for D* the file does contain D* allow null value fields. D* QDBFVFLD 1 BIT D* Variable Length Data (VARLEN) D* 0 = The record format(s) for D* the file does NOT contain D* any variable length D* fields. D* 1 = The record format(s) for D* the file does contain D* variable length fields. D* QDBFTFLD 1 BIT D* Date/Time/Timestamp Data D* 0 = The record format(s) for D* the file does NOT contain D* any date, time, or D* timestamp fields. D* 1 = The record format(s) for D* the file does contain D* a date, time, or D* timestamp fields. D* QDBFGRPH 1 BIT D* Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any graphic fields. D* 1 = The record format(s) for D* the file does contain D* graphic fields. D* QDBFPKEY 1 BIT D* Primary Key D* 0 = The access path for the D* file is NOT a primary key. D* any graphic fields. D* 1 = The access path for the D* file is a primary key. D* D* QDBFUNQC 1 BIT D* Unique Constraint D* Indicator (ALWNULL) D* 0 = The access path for the D* file is NOT a unique D* constraint. D* 1 = The access path for the D* file is a unique D* constraint. D* QDBR118 2 BITS D* Reserved. D* QDBFAPSZ 1 BIT D* Access Path Size(ACCPTHSIZ). D* 0 = All access paths for the D* file will be allowed to D* occupy a maximum of 4GB D* of auxillary storage. D* 1 = All access paths for the D* file will be allowed to D* occupy a maximum of 1TB D* of auxillary storage. D* QDBFDISF 1 BIT D* File is distributed indicator. D* 0 = File is not a distributed D* file. D* 1 = File is a distributed file. D* D* QDBR119 3 BITS D* Reserved. D** Complex Object Flags. ******************************** DQDBFNBIT DS D* Additional Attribute Flags D QDBBITS70 1 1 D* QDBFHUDT 1 BIT D* User Defined Types in file. D* 0 = The file does not have D* any UDTs. D* 1 = The file has fields with D* UDTs. D* QDBFHLOB 1 BIT D* Large Objects fields in file. D* 0 = The file does not have D* any LOBs. D* 1 = The file has fields with D* LOBs. D* QDBFHDTL 1 BIT D* Datalink fields in file. D* 0 = The file does not have D* any datalinks. D* 1 = The file has fields with D* datalinks. D* QDBFHUDF 1 BIT D* User Defined Functions in file. D* 0 = The file does not have D* any UDFs. D* 1 = The file has UDFs. D* D* QDBFHLON 1 BIT D* Datalink fields in the file D* with FILE LINK CONTROL. D* 0 = The file does not have D* datalink fields with D* FILE LINK CONTROL. D* 1 = The file has datalink fields D* with FILE LINK CONTROL. D* QDBFHLOP 1 BIT D* Logical file without any LOB D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have LOB fields. D* 1 = The based on file has LOB D* fields. D* QDBFHDLL 1 BIT D* Logical file without any datalink D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have datalink fields. D* 1 = The based on file has D* datalink fields. D* QDBQLVOL 1 BIT D* SQL Volatile Table Indicator D* 0 = The file is NOT an SQL D* volatile table. D* 1 = The file is an SQL D* volatile table. @AMC D** File Text Description ************************************* DQDBQ02 DS D* File Text Description D QDBRSV18 1 2 D* Reserved. D QDBFHTXT 3 52 D* Text Description (TEXT) D** Source File Fields **************************************** DQDBQ03 DS D* Source File Fields D* Must be X'00's if there is D* NO source file information. D QDBFSRCF 1 10 D* Source File Name D QDBFSRCM 11 20 D* Source File Member Name D QDBFSRCL 21 30 D* Source File Library Name D** Sort Sequence Table Flags ********************************* DQDBQ04 DS D* Flags D QDBBITS05 1 1 D* QDBFSSCS 3 BITS D* Sort Sequence Table D* (SRTSEQ) Indicators D* B'000' = No sort sequence D* table for the file. D* However, an D* alternate collating D* sequence table was D* specified for the D* file. D* B'010' = No sort sequence D* table is used for the D* file, and the hexa- D* decimal values of the D* characters will be D* used to determine the D* sort sequence (*HEX). D* B'100' = A sort sequence D* table was specified D* for the file. D* QDBR103 5 BITS D* Reserved D** Sort Sequence Table *************************************** DQDBFSSFP DS D* Sort Sequence Table D*QDBFNLSB00 1 D QDBBITS57 1 1 D* QDBFSSCS01 3 BITS D* QDBR10301 5 BITS D* NLS Flags D QDBFLANG00 2 4 D* Language Identifier (LANGID) D QDBFCNTY00 5 6 D* Country Identifier (CNTRYID) D** Identity/Rowid Flags. ******************************** DQDBFIDFL DS D* Additional Attribute Flags D QDBBITS74 1 2 D* QDBR121 5 BITS D* Reserved. D* QDBFFHIC 1 BIT D* Qdbf File Has Identity Colum D* Identity Column in the file. D* 0 = The file does not have D* an Identity Column. D* 1 = The file has an Identity D* column. D* QDBFFHR 1 BIT D* Qdbf File Has Rowid D* Rowid in the file. D* 0 = The file does not have D* a Rowid Column. D* 1 = The file has a Rowid D* column. D* QDBFRCT 1 BIT D* Qdbfh Row Change Timestamp D* Row Change Timestamp in the D* file. D* 0 = The file does not have D* a Row Change Timestamp D* Column in its format(s). D* 1 = The file has a Row Change D* Timestamp field in its D* format(s). D* QDBR122 6 BITS D* Reserved. D* QDBFKIM 1 BIT D* Qdbf Keep In Memory D* Keep In Memory indicator. D* 0 = The File's Keep In Memory D* state has Not been changed D* to *YES. D* 1 = The File's Keep In Memory D* state has been changed to D* *YES. D* QDBR124 1 BIT D* Reserved. D**************************************************************** D* D*File Definition Template (FDT) Header D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ25 DS D* Header information - The D* FDT starts here D QDBFYRET 1 4B 0 D* Bytes returned - The length D* of the data returned D QDBFYAVL 5 8B 0 D* Bytes available - The number D* of bytes provided for the D* file definition template D* data D*QDBFHFLG 2 D QDBBITS27 9 10 D* QDBRSV100 2 BITS D* QDBFHFPL00 1 BIT D* QDBRSV200 1 BIT D* QDBFHFSU00 1 BIT D* QDBRSV300 1 BIT D* QDBFHFKY00 1 BIT D* QDBRSV400 1 BIT D* QDBFHFLC00 1 BIT D* QDBFKFSO00 1 BIT D* QDBRSV500 1 BIT D* QDBFHSHR00 1 BIT D* QDBRSV600 2 BITS D* QDBFIGCD00 1 BIT D* QDBFIGCL00 1 BIT D* Attribute Bytes D QDBRSV7 11 14 D* Reserved. D QDBLBNUM 15 16B 0 D* Number Of Data Members D* 1 = Externally described D* physical file, or program D* described physical file D* that is NOT linked to a D* Data Dictionary. D* 1-32 = Number of Data D* Dictionary record D* formats for a program D* described physical D* file that is linked to D* a Data Dictionary. D* 1-256= Number of based on D* physical files for D* a logical file. D*QDBFKDAT 14 D QDBFKNUM00 17 18B 0 D QDBFKMXL00 19 20B 0 D* QDBFKFLG00 1 D QDBBITS28 21 21 D* QDBRSV802 1 BIT D* QDBFKFCS02 1 BIT D* QDBRSV902 4 BITS D* QDBFKFRC02 1 BIT D* QDBFKFLT02 1 BIT D QDBFKFDM00 22 22 D QDBRSV1000 23 30 D* Keyed Sequence Access Path D QDBFHAUT 31 40 D* Public Authority (AUT) D* '*CHANGE ' = Public change D* authority. D* '*ALL ' = Public all D* authority. D* '*USE ' = Public use D* authority. D* '*EXCLUDE ' = Public exclude D* authority. D* 'authorization-list-name' D* = Name of the D* authorization D* list whose D* authority is D* used for the D* file. D* This is the original public D* authority that the file was D* created with, NOT the current D* public authority for the file. D QDBFHUPL 41 41 D* Preferred Storage Unit (UNIT) D* X'00'-X'FE' = No storage media D* is preferred. Storage D* will be allocated from D* any available storage D* media. D* X'FF' = Solid state disk storage D* media is preferred. D* Storage may be allocated D* from solid state disk D* storage media, if D* available. D QDBFHMXM 42 43B 0 D* Maximum Members (MAXMBRS) D* 0 = No maximum is specified D* for the number of members, D* the system maximum of D* 32,767 members is used D* (*NOMAX). D* 1-32,767 = The value for the D* maximum number of D* members that the D* file can have D* (maximum-members). D QDBFWTFI 44 45B 0 D* Maximum File Wait Time D* (WAITFILE) D* -1 = The default wait time D* specified in the class D* description is used as D* the wait time for the D* file (*CLS). D* 0 = A program does NOT wait D* for the file, an D* immediate allocation of D* the file is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the file (number- D* of-seconds). D QDBFHFRT 46 47B 0 D* Records To Force A Write D* (FRCRATIO) D* 0 = There is NO force write D* ratio, the system D* determines when the D* records are written to D* auxiliary storage (*NONE). D* 1-32,767 = The number of D* inserted, updated, D* or deleted records D* that are processed D* before they are D* explicitly forced D* to auxiliary D* storage (number- D* of-records-before- D* force). D QDBHMNUM 48 49B 0 D* Number Of Members D* 0-32,767 = The current number D* of members for the D* file. D QDBPSIZE 50 51B 0 D* Access path page size. @AMA D* -1 = NA, 4G Access path. D* 0 = Key length page size. D* 8,16,32,64,128,256,512=Ksize D QDBRSV11 52 58 D* Reserved. D QDBFBRWT 59 60B 0 D* Maximum Record Wait Time D* (WAITRCD) D* -2 = The wait time is the D* maximum allowed by the D* system, 32,767 seconds D* (*NOMAX). D* -1 = A program does NOT wait D* for the record, an D* immediate allocation of D* the record is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the record D* (number-of- D* seconds). D*QDBQAAF00 1 D QDBBITS29 61 61 D* QDBRSV1200 7 BITS D* QDBFPGMD00 1 BIT D* Additional Attribute Flags D QDBMTNUM 62 63B 0 D* Total Number Of Record D* Formats D* 1-32 = Number of record D* formats for the file. D*QDBFHFL2 2 D QDBBITS30 64 65 D* QDBFJNAP00 1 BIT D* QDBRSV1300 1 BIT D* QDBFRDCP00 1 BIT D* QDBFWTCP00 1 BIT D* QDBFUPCP00 1 BIT D* QDBFDLCP00 1 BIT D* QDBRSV1400 9 BITS D* QDBFKFND00 1 BIT D* Additional Attribute Flags D QDBFVRM 66 67B 0 D* First Supported D* Version Release Modification D* Level D* X'0000' = Pre-Version 2 D* Release 1 D* Modification 0 file. D* X'1500' = Version 2 Release 1 D* Modification 0, D* V2R1M0, file. D* X'1501' = Version 2 Release 1 D* Modification 1, D* V2R1M1, file. D* X'1600' = Version 2 Release 2 D* Modification 0, D* V2R2M0, file. D* X'1700' = Version 2 Release 3 D* Modification 0, D* V2R3M0, file. D* X'1F00' = Version 3 Release 1 D* Modification 0, D* V3R1M0, file. D* X'2000' = Version 3 Release 2 D* Modification 0, D* V3R2M0, file. D* X'2400' = Version 3 Release 6 D* Modification 0, D* V3R6M0, file. D* X'2500' = Version 3 Release 7 D* Modification 0, D* V3R7M0, file. D* X'2900' = Version 4 Release 1 D* Modification 0, D* V4R1M0, file. D* X'2A00' = Version 4 Release 2 D* Modification 0, D* V4R2M0, file. D* X'2B00' = Version 4 Release 3 D* Modification 0, D* V4R3M0, file. D* X'2C00' = Version 4 Release 4 D* Modification 0, D* V4R4M0, file. D* X'2D00' = Version 4 Release 5 D* Modification 0, D* V4R5M0, file. D* X'3300' = Version 5 Release 1 D* Modification 0, D* V5R1M0, file. D* X'3400' = Version 5 Release 2 D* Modification 0, D* V5R2M0, file. D* X'3500' = Version 5 Release 3 D* Modification 0, D* V5R3M0, file. D* X'3600' = Version 5 Release 4 D* Modification 0, D* V5R4M0, file. D* X'3700' = Version 5 Release 5 D* Modification 0, D* V5R5M0, file. D* New Database support is used D* in the file which will D* prevent it from being saved D* and restored to a prior D* Version Release and D* Modification level. D*QDBQAAF2 2 D QDBBITS31 68 69 D* QDBFHMCS00 1 BIT D* QDBRSV1500 1 BIT D* QDBFKNLL00 1 BIT D* QDBFNFLD00 1 BIT D* QDBFVFLD00 1 BIT D* QDBFTFLD00 1 BIT D* QDBFGRPH00 1 BIT D* QDBFPKEY00 1 BIT D* QDBFUNQC00 1 BIT D* QDBR11800 2 BITS D* QDBFAPSZ00 1 BIT D* QDBFDISF00 1 BIT D* QDBR11900 3 BITS D* Additional Attribute Flags D QDBFHCRT 70 82 D* File Level Identifier D* The date of the file in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D*QDBFHTX 52 D QDBRSV1800 83 84 D QDBFHTXT00 85 134 D* File Text Description D QDBRSV19 135 147 D* Reserved D*QDBFSRC 30 D QDBFSRCF00 148 157 D QDBFSRCM00 158 167 D QDBFSRCL00 168 177 D* Source File Fields D QDBFKRCV 178 178 D* Access Path Recovery D* (RECOVER) D* 'A' = The file has its access D* path built after the D* IPL has been completed D* (*AFTIPL). D* 'N' = The access path of the D* file is NOT built D* during or after an IPL D* (*NO). The file's D* access path is built D* when the file is next D* opened. D* 'S' = The file has its access D* path built during the D* IPL (*IPL). D QDBFDR 179 179 D* Qdbfh dfp round D* Decimal floating point D* rounding mode. Set for D* logical files and MQTs that D* reference decimal floating D* point fields. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFDW 180 180 D* Qdbfh dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBRSV20 181 201 D* Reserved. D QDBFTCID 202 203U 0 D* Coded Character Set D* Identifier, CCSID, For D* Text Description (TEXT) D* 0 = There is NO text D* description for the file. D* 1-65,535 = The CCSID for the D* file's text D* description. D QDBFASP 204 205 D* Auxiliary Storage Pool (ASP) D* X'0000' = The file is D* located on the D* system auxiliary D* storage pool. D* X'0002'-X'0010' = The user D* auxiliary storage D* pool the file is D* located on D* (asp-identifier). D*QDBFNBIT00 1 D QDBBITS71 206 206 D* QDBFHUDT00 1 BIT D* QDBFHLOB00 1 BIT D* QDBFHDTL00 1 BIT D* QDBFHUDF00 1 BIT D* QDBFHLON00 1 BIT D* QDBFHLOP00 1 BIT D* QDBFHDLL00 1 BIT D* QDBQLVOL00 1 BIT D* Complex Object flags. D QDBXFNUM 207 208B 0 D* Maximum Number Of Fields D* 1-8000 = The number of fields D* in the file's record D* format that contains D* the largest number D* of fields. D QDBRSV22 209 282 D* Reserved. D*QDBFIDFL00 2 D QDBBITS75 283 284 D* QDBR12100 5 BITS D* QDBFFHIC00 1 BIT D* QDBFFHR00 1 BIT D* QDBFRCT00 1 BIT D* QDBR12200 6 BITS D* QDBFKIM00 1 BIT D* QDBR12400 1 BIT D* Identity/Rowid flags. D QDBFODIC 285 288B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* IDDU/SQL Data Dictionary D* Area, Qdbfdic. D QDBRSV23 289 302 D* Reserved. D QDBFFIGL 303 304B 0 D* File Generic Key Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFMXRL 305 306B 0 D* Maximum Record Length D* 1-32766 = The length of the D* record in the D* file's record D* format that D* contains the D* largest number of D* bytes. D QDBRSV24 307 314 D* Reserved. D QDBFGKCT 315 316B 0 D* File Generic Key Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFOS 317 320B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* File Scope Array, Qdbfb. D QDBRSV25 321 328 D* Reserved. D QDBFOCS 329 332B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Alternative Collating D* Sequence Table section, D* Qdbfacs. D QDBRSV26 333 336 D* Reserved. D QDBFPACT 337 338 D* Access Path Type D* 'AR' = Arrival sequence D* access path. D* 'KC' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* changed-first-out D* (FCFO) order. D* 'KF' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* in-first-out D* (FIFO) order. D* 'KL' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in last- D* in-first-out D* (LIFO) order. D* 'KN' = Keyed sequence access D* path with duplicate D* keys allowed. D* No order is guaranteed D* when accessing D* duplicate keys. D* Duplicate keys are D* accessed in one of the D* following methods: D* (FCFO) (FIFO) (LIFO). D* 'KU' = Keyed sequence access D* path with NO duplicate D* keys allowed (UNIQUE). D* 'EV' = Encoded Vector with a D* 1, 2, or 4 byte vector D* D QDBFHRLS 339 344 D* File Version Release D* Modification Level D* 'VxRyMz' = Where x is the D* Version, y is the D* Release, and z is D* the Modification D* level D* example V2R1M1 D* Version 2 Release D* 1 Modification 1 D QDBRSV27 345 364 D* Reserved. D QDBPFOF 365 368B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Physical File Specific D* Attributes section, Qdbfphys. D QDBLFOF 369 372B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Logical File Specific D* Attributes section, Qdbflogl. D*QDBFSSFP00 6 D* QDBFNLSB01 1 D QDBBITS58 373 373 D* QDBFSSCS02 3 BITS D* QDBR10302 5 BITS D QDBFLANG01 374 376 D QDBFCNTY01 377 378 D* Sort Sequence Table D QDBFJORN 379 382B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Journal Section, Qdbfjoal. D QDBFEVID 383 386U 0 D* Initial number of distinct D* values an encoded vector D* access path was allowed at D* creation. Default will be set D* to hex zeros D QDBRSV28 387 400 D* Reserved. D**************************************************************** D* D*The FDT header ends here. D* D**************************************************************** D******************************************************************** D* PHYSICAL FILE DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBQ05 DS D* Flags D QDBBITS06 1 1 D* QDBFRDEL 1 BIT D* Reuse Deleted Records D* (REUSEDLT) D* 0 = The deleted record space D* in the file's members is D* NOT used again by the D* system on Write (Insert) D* requests to the file's D* members (*NO). D* 1 = The deleted record space D* in the file's members is D* used again by the system D* on Write (Insert) D* requests to the file's D* members (*YES). D* QDBRSV30 3 BITS D* Reserved. D* QDBFSQLT 1 BIT D* SQL Table Indicator D* 0 = The file is NOT an SQL D* table. D* 1 = The file is an SQL table. D* QDBFMQT 1 BIT D* SQL Materialized Query Table D* Indicator D* 0 = The file is not an MQT. D* 1 = The file is an MQT. D* QDBFSQPT 1 BIT D* SQL Partitioned Table D* Indicator D* 0 = The file is not an SQL D* Partitioned Table. D* 1 = The file is an SQL D* Partitioned Table. D* QDBRSV31 1 BIT D* Reserved. D**************************************************************** D* D*Physical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset QDBPFOF, which is D*located in the FDT header section. D**************************************************************** DQDBQ26 DS D* Physical File Attributes D QDBFPALC 1 2 D* Allocate/Contiguous Storage D* (ALLOCATE and CONTIG) D* 'DN' = New members added to D* the file allow the D* system to determine D* storage space that is D* allocated for the D* member (ALLOCATE(*NO)). D* 'IC' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is D* attempted to be D* allocated contiguously D* (CONTIG(*YES)). D* 'IN' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is NOT D* attempted to be D* allocated contiguously D* (CONTIG(*NO)). D QDBFCMPS 3 3 D* Maximum Percentage Of Deleted D* Records Allowed (DLTPCT) D* X'00' = The number of deleted D* records in the file's D* member is NOT checked D* when the member is D* closed (*NONE). D* X'01'-X'64' = The largest D* percentage of D* deleted records D* that the file's D* member should D* have (deleted- D* records- D* threshold- D* percentage). D QDBFS00 4 7U 0 D* For SQL Partitioned Tables D* offset from the start D* of the FDT header, Qdbfh, to D* the SQL Partitioned Area. D QDBRSV29 8 11 D* Reserved. D QDBPRNUM 12 15B 0 D* Initial Number Of Records D* (SIZE) D* 0 = The number of records D* that can be inserted into D* each member of the file D* is NOT limited by the D* user. The maximum size D* of each member is D* determined by the system D* (*NOMAX). D* 1-2,147,483,646 = The number D* of records that can be D* inserted before an D* automatic extension D* occurs (number-of- D* records). D QDBFPRI 16 17B 0 D* Increment Number Of Records D* (SIZE) D* 0-32,767 = The maximum number D* of additional D* records that can D* be inserted into D* the member after D* an automatic D* extension occurs D* (increment-value). D QDBRINUM 18 19B 0 D* Maximum Number Of Increments D* (SIZE) D* 0-32,767 = The maximum number D* of increments D* that can be D* automatically D* added to the D* member (number-of- D* increments). D QDBFORID 20 23B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Record ID Codes for program D* described physical files, D* Qdbforid. D*QDBFLAGS 1 D QDBBITS33 24 24 D* QDBFRDEL00 1 BIT D* QDBRSV3000 3 BITS D* QDBFSQLT00 1 BIT D* QDBFMQT00 1 BIT D* QDBFSQPT00 1 BIT D* QDBRSV3100 1 BIT D* Flags D QDBFOTRG 25 28B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg D QDBFTRGN 29 30B 0 D* Number of triggers D QDBFOFCS 31 34B 0 D* This is the offset from the D* start of the FDT header, D* Qdbfh, to the Constraint D* Definition Area, D* Qdb_Qdbf_constraint D QDBFCSTN 35 38B 0 D* Number of constraint for the D* File D QDBFODL 39 42B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* datalinks area, D* Qdb_Qdbfdtalnk. D QDBFM 43 46U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL Area. D QDBRSV32 47 48 D* Reserved. D******************************************************************** D* TRIGGER DECLARATIONS D******************************************************************** D** Trigger Flags ******************************************** DQDBFTRGF DS D* Trigger Flags D QDBBITS68 1 1 D* QDBFALRC 1 BIT D* Allow Repeated Change Indicator D* 0 = *NO (not allowed) D* 1 = *YES (allows change) D* QDBFTTHS 2 BITS D* Threadsafe Indicator D* B'00' = *UNKNOWN (Threadsafe D* status is not known) D* B'10' = *NO (Not threadsafe) D* B'11' = *YES (Threadsafe) D* QDBFTMTA 2 BITS D* Multithreaded Job Action D* Indicator D* B'01' = *MSG (Run, diagnostic) D* B'10' = *NORUN (Escape) D* B'11' = *RUN (Run, no message) D* QDBFTQMT 1 BIT D* QMLTTHDACN system value usage D* 0 = Not used D* 1 = Used D* QDBFMTI 1 BIT D* Qdbf more trg info D* Indicates more trigger D* information is available if D* format FILD0400 is requested. D* 0 = No more info available D* 1 = More information available D* @ADA D* QDBR202 1 BIT D* Reserved. @ADC D**************************************************************** D* D*Trigger Description Area D* D*The Trigger information for this file. D* D**************************************************************** D*This section can be located with the offset Qdbfotrg, D*located in the Physical File Specific Attributes section, D*or with the offset Qdbflotrg, located in the Logical File D*Specific Attributes section. D*This is repeated by the number of triggers Qdbftrgn or D*Qdbfltrgn. D**************************************************************** DQDBQ27 DS D* Trigger Section D QDBFTRGT 1 1 D* Trigger Time D* '1' = Run a trigger AFTER the D* change operation. D* '2' = Run a trigger BEFORE the D* change operation. D* '3' = Run a trigger INSTEAD OF D* the operaton D QDBFTRGE 2 2 D* Trigger Event D* '1' = INSERT operation. D* '2' = DELETE operation. D* '3' = UPDATE operation. D* '4' = READ operation D QDBFTPGM 3 12 D* Trigger Program Name D QDBFTPLB 13 22 D* Trigger Program Library D QDBFTUPD 23 23 D* Trigger update condition. This D* field is only valid for UPDATE D* event. This field will be D* ignored for INSERT or DELETE D* event. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. D*QDBFTRGF00 1 D QDBBITS69 24 24 D* QDBFALRC00 1 BIT D* QDBFTTHS00 2 BITS D* QDBFTMTA00 2 BITS D* QDBFTQMT00 1 BIT D* QDBFMTI00 1 BIT D* QDBR20200 1 BIT D* Trigger Flags D QDBR201 25 48 D* Reserved. D**************************************************************** D* D*Constraint Definition Area D* D*The constraint definition area information about D*constraints for this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfofcs, which D*is located in the Physical File Specific Attributes section. D**************************************************************** D******************************************************************* D*Constraint Definition Header D* D******************************************************************* DQDBQC DS D* File Constraint Definition D* Area. D QDBFC 1 4B 0 D* Offset from D* Qdb_Qdbf_Constraint D* to the next section for D* this constraint D QDBFH 5 8B 0 D* Constraint Entry Header D* Length in Bytes. D QDBFT00 9 9 D* Constraint Type D* (TYPE) D* 'P' = Primary Unique D* Constraint D* 'F' = Referential Constraint D* 'U' = Unique Constraint. D* 'C' = Check Constraint D QDBFC00 10 10 D* Check Pending Attribute D* 'N' = The constraint is not D* in check pending. D* 'Y' = The constraint is in D* check pending. D QDBFS 11 11 D* Constraint State D* 'D' = The constraint is D* defined. D* 'E' = The constraint is D* established. D QDBFA 12 12 D* Constraint State D* (STATE) D* 'D' = The constraint is D* disabled. D* 'E' = The constraint is D* enabled. D QDBFAT 13 25 D* Constraint Date D* The Constraint Date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBFCL 26 35 D* Constraint library name D QDBFCL2 36 39B 0 D* Constraint Name (delimited) D* Length. D QDBFCC 40 40 D* Enable Constraint Type D* (CHECK) D* 'U' = The constraint is D* enabled without checking. D* ' ' = The constraint is D* enabled with checking or D* is disabled. @ASA D QDBR2 41 64 D* Reserved. @ASC D QDBFCN 65 322 D* Constraint name (CST) D******************************************************************* D*Constraint Definition Body which follows the Constraint Header D* D* ------------------------------------ D* ||| --Constraint Definition ||| D* ||| Body, variable length. ||| D* ||| - 'F' = Referential ||| D* ||| constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| 2) Qdb_Qdbf_Keyn ||| D* ||| 3) Qdb_Qdbf_Riafk_Afkd||| D* ||| ||| D* ||| - 'U' = Unique ||| D* ||| Constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| ||| D* ||| - 'P' = Primary Unique ||| D* ||| Constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| ||| D* ||| - 'C' = Check Constraint ||| D* ||| 1) Qdb_Qdbf_Chk_Cst ||| D* ||| ||| D* ------------------------------------ D* D******************************************************************* D******************************************************************* D*Structure for the Constraint Keys. D******************************************************************* D*This section can be located with the offset Qdbf_Hlen, which is D*located in the Constraint Definition Header section, or with the D*with the offset Qdbf_Kslen when this is a Referential Constraint. D******************************************************************* DQDBQN DS D* Key Name Array D QDBFK 1 10 D* KEY Name (PRNKEY KEY) D QDBR6 11 32 D* Reserved DQDBQK DS D* Constraint Key Structure D QDBFK00 1 4B 0 D* Constraint Key Structure D* Length. The length, in bytes, D* of this Constraint Key D* Structure. This is also the D* offset from Qdb_Qdbf_Keyn D* to the next structure for D* this constraint. D* D QDBFN01 5 8B 0 D* Number of Keys. D* 1-120 = The count of the D* number of key fields for the D* Constraints key. D* D QDBFK01 9 12B 0 D* Constraint Key Length. D* D QDBR7 13 64 D* Reserved D*QDBFN02 32 D QDBFK02 65 74 D QDBR600 75 96 D* Key Name Array D******************************************************************* D*Structure for Referential Constraint D******************************************************************* D*This section can be located with the offset Qdbf_Kslen when this D*is a Referential Constraint. D******************************************************************* DQDBQRA DS D* Referential Constraint D* Definition D* D QDBFRP 1 10 D* Parent File Name (PRNFILE) D* D QDBFRP00 11 20 D* Parent File Library Name. D* D QDBR3 21 64 D* Reserved D* D QDBFRF 65 65 D* Delete Rule D* (DLTRULE) D* 'C' = *CASCADE D* 'D' = *SETDFT D* 'L' = *SETNULL D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D QDBR4 66 66 D* Reserved. D* D QDBFRF00 67 67 D* Update Rule. D* (UPDRULE) D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D* D QDBR5 68 128 D* Reserved. D* ************************************************************ D* Structure for a Check Constraint expression D* ************************************************************ DQDBQCC DS D* Qdb Qdbf Chk Cst D QDBFCL00 1 4B 0 D* Structure Length D QDBFCL01 5 8B 0 D* Expression Length D QDBFCDR 9 9 D* Decimal floating point D* rounding mode. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFCDW 10 10 D* Qdbf chk dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBR8 11 32 D* .. reserved D*QDBQC00 33 33 D* D* First character of D* expression D* (varying length) D* ************************************************************ D* Structure for datalink header information. D* ************************************************************ DQDBTALNK DS D* Qdb Qdbfdtalnk D QDBLCOLN 1 4B 0 D* Number of datalink D* columns with links to D* servers. D QDBOCOLE 5 8B 0 D* Offset fromQdb_Qdbfdtalnk D* to the Qdb_dbfdlcole D* area. D QDBLINKP 9 9 D* Link pending staus. D* 'N' The file is not in D* link pending. D* 'Y' The file is in D* link pending. D QDBR127 10 32 D* .. reserved D* ************************************************************ D* Structure for datalink column information. D* ************************************************************ DQDBLCOLE DS D* Qdb Qdbfdlcole D QDBCELEN 1 4B 0 D* Length of this entry. D* Use this length to get D* to the next entry. D QDBLSEVN 5 8B 0 D* Number of servers linked D* for this column. D QDBCOLNM 9 18 D* Column name. D QDBR02 19 32 D* .. reserved D QDBSEVNM 33 286 D* Array of server names. D**************************************************************** D*Record ID Code Array Entry D**************************************************************** DQDBFDRAE DS D* Record ID Code Array D QDBRSV3400 1 4 D* Reserved. D QDBFDRNM00 5 14 D* External Name D QDBFDRRP00 15 16B 0 D* Relative Field Position D* 1-8000 = The relative D* position of the D* field in the record D* format. D QDBFDRCO00 17 18 D* Comparison Operator D* 'EQ' = Compare equal. D* 'NE' = Compare NOT equal. D* 'ZN' = Compare zone. D* 'NZ' = Compare NOT zone. D* 'DG' = Compare digit. D* 'ND' = Compare NOT digit. D QDBFDRLN00 19 20B 0 D* Length Of Test Value D* 1 = Test value length must be D* 1. D QDBFDRTV00 21 21 D* Test Value D QDBFDRAO00 22 22 D* AND/OR/Last Operator D* '0' = Last array entry. D* '1' = AND with next array D* entry. D* '2' = OR with next array D* entry. D QDBRSV3500 23 32 D* Reserved. D**************************************************************** D* D*Record ID Codes D* D*The Record ID Codes for program described physical D*files. The Record ID Code information is an array with D*variable length entries. D* D**************************************************************** D*This section can be located with the offset Qdbforid, which D*is located in the Physical File Specific Attributes section. D**************************************************************** DQDBQ28 DS D* Record ID Codes D* Record ID Code Header D QDBDRNUM 1 2B 0 D* The Number Of Record ID Code D* Array Entries D* 0-70 = The number of elements D* in the Record ID Code D* array. D QDBFDRTL 3 6B 0 D* Size Of This Record ID Code D* Table D* 0-2256 = The Record ID Code D* table size in bytes. D QDBRSV33 7 16 D* Reserved. D*QDBFDRAE00 32 D QDBRSV3401 17 20 D QDBFDRNM01 21 30 D QDBFDRRP01 31 32B 0 D QDBFDRCO01 33 34 D QDBFDRLN01 35 36B 0 D QDBFDRTV01 37 37 D QDBFDRAO01 38 38 D QDBRSV3501 39 48 D* Record ID Code Array Entry D******************************************************************** D* LOGICAL FILE DECLARATIONS FOR SQL INDEX D******************************************************************** DQDBQS DS D* SQL Index Attributes @APA D QDBBITS82 1 1 D* QDBFSI 1 BIT D* SQL Index with a derived key D* indicator: D* 0 = The file is NOT an SQL D* Index with a derived Key. D* 1 = The file is an SQL Index D* with a derived key. D* @APA D* QDBFSIU 1 BIT D* SQL Index with a derived key D* with a user defined UDF D* indicator: D* 0 = The file does NOT use a D* user defined UDF. D* 1 = The file does use a user D* defined UDF. D* @APA D* QDBFSW 1 BIT D* SQL Index with a Where D* clause indicator: D* 0 = The file does NOT have a D* Where clause. D* 1 = The file has a Where clause. D* @APA D* QDBFSWU 1 BIT D* SQL Index with a Where D* clause uses a user defined UDF D* indicator: D* 0 = The file does NOT use a user D* defined UDF. D* 1 = The file does use a user D* defined UDF. D* @APA D* QDBR501 4 BITS D* Reserved. @APA D******************************************************************** D* LOGICAL FILE DECLARATIONS D******************************************************************** D** Logical File Attributes *********************************** DQDBQLFA DS D* Logical File Attributes D QDBBITS07 1 1 D* QDBRSV36 2 BITS D* Reserved. D* QDBFJOIN 1 BIT D* Join Logical File Indicator D* (JFILE) D* 0 = The file is NOT a join D* logical file. D* 1 = The file is a join D* logical file. D* QDBFDYNS 1 BIT D* Dynamic Selection Indicator D* (DYNSLT) D* 0 = The selection and D* omission tests specified D* for the file are done D* when the access path is D* updated. D* 1 = The selection and D* omission tests specified D* for the file are done D* when the record is read D* (retrieved). D* QDBFSQLV 1 BIT D* SQL View Indicator D* 0 = The file is NOT an SQL D* view. D* 1 = The file is an SQL view. D* QDBFSQLI 1 BIT D* SQL Index Indicator D* 0 = The file is NOT an SQL D* index. D* 1 = The file is an SQL index. D* QDBRSV37 2 BITS D* Reserved. D**************************************************************** D* D*Logical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset Qdblfof, which is D*located in the FDT header section. D**************************************************************** DQDBQ29 DS D* Logical File Attributes D QDBFOJ 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj. D QDBFSCSN 5 6B 0 D* Total Number Of Select/Omit D* Statements For All Record D* Formats D* 1-32767 = The number of D* Select/Omit D* statements for all D* of the files D* record formats. D QDBFLXP 7 16 D* Record Format Selector D* Program (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFLXL 17 26 D* Record Format Selector D* Program's Library (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFOVW 27 30B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Area, Qdbfv. D*QDBQLFA00 1 D QDBBITS34 31 31 D* QDBRSV3600 2 BITS D* QDBFJOIN00 1 BIT D* QDBFDYNS00 1 BIT D* QDBFSQLV00 1 BIT D* QDBFSQLI00 1 BIT D* QDBRSV3700 2 BITS D* Logical File Attributes D QDBFJTYP 32 32 D* Join File Type D* 'I' = Inner join. No default D* entries will be D* supplied if a join D* value does NOT exist. D* 'P' = Partial outer join. D* Default values D* (JDFTVAL) will be D* supplied if a join D* value does NOT exist. D QDBFSRCD 33 34U 0 D* Coded Character Set D* Identifier, CCSID, For D* Select/Omit Constants D* 0 = There are NO Select/Omit D* constants for the file. D* 1-65,535 = The CCSID for the D* file's Select/Omit D* constants. D QDBFWCHK 35 35 D* With Check Option D* 'C' = The With Check Option D* was specified with D* CASCADE. D* 'L' = The With Check Option D* was specified with D* Local. D* 'N' = No With Check Option D* was specified. D* This value will be set D* for all logical files. The D* values of 'C' and 'L' will D* only apply for SQL views. D QDBLOTRG 36 39B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg @0DA D QDBLTRGN 40 41B 0 D* Number of triggers @0DA D*QDBQS00 1 D QDBBITS83 42 42 D* QDBFSI00 1 BIT D* QDBFSIU00 1 BIT D* QDBFSW00 1 BIT D* QDBFSWU00 1 BIT D* QDBR50100 4 BITS D* Logical File Attributes for D* an SQL Index with derived keys, D* or a WHERE clause. @APA D QDBRSV38 43 48 D* Reserved. @0DC D******************************************************************** D* SQL AREA FLAG DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBVFLGS DS D* Flags D QDBBITS76 1 1 D* QDBFI 1 BIT D* SQL materialized query table D* initial data indicator: D* 0 = Deferred. Data is not D* inserted into the table as D* part of the Create Table D* statement. D* 1 = Immediate. Data is inserted D* initially. D* QDBFM00 1 BIT D* SQL materialized query table D* maintenance indicator: D* 0 = Reserved. D* 1 = User-maintained. D* QDBFR 1 BIT D* SQL materialized query table D* refresh indicator: D* 0 = Refresh-deferred. D* 1 = Reserved. D* QDBFO 1 BIT D* SQL materialized query table D* optimization indicator: D* 0 = Enabled for optimization. D* 1 = Disabled for optimization. D* QDBR123 1 BIT D* Reserved. D* QDBFR09 1 BIT D* SQL materialized query table D* restore deferred indicator: D* 0 = MQT is not deferred. D* 1 = MQT is deferred because D* it was restored without D* its based-on files, and D* the based-on files have D* not yet been resolved. D* QDBRSV8800 2 BITS D* Reserved. D**************************************************************** D* D*SQL Area D* D*The SQL Area contains the SQL select statement. D* D**************************************************************** D*For SQL views, or indexes D*this section can be located with the offset D*Qdbfovw, which is located in the Logical file specific D*attributes section. For SQL materialized query tables, this D*section can be located with the offset Qdbfovw_mqt, in the D*Physical file specific attributes section. D**************************************************************** DQDBQ30 DS D* SQL Area D QDBRSV39 1 16 D* Reserved. D QDBFS01 17 20U 0 D* Starting offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFE 21 24U 0 D* Ending offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFC03 25 26U 0 D* Coded Character Set D* Identifier, CCSID, for the D* Select Statement D QDBFO00 27 30U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL materialized query D* table dependency area. D QDBFC02 31 32 D* For SQL materialized query D* tables, the isolation level D* in effect for the table: D* 'NC' - *NONE no commit D* 'UR' - *CHG uncommitted read D* 'CS' - *CS cursor stability D* 'CL' - *CS with keep locks D* 'RS' - *ALL read stability D* 'RR' - *RR repeatable read D* Null if not an MQT. D*QDBFVLGS 1 D QDBBITS77 33 33 D* QDBFI00 1 BIT D* QDBFM01 1 BIT D* QDBFR00 1 BIT D* QDBFO01 1 BIT D* QDBR12300 1 BIT D* QDBFR10 1 BIT D* QDBRSV8801 2 BITS D* Flags D QDBFSWS 34 37U 0 D* Qdbfvs sqli wh start D* Starting offset of the WHERE D* condition within CREATE INDEX D* statement. D QDBFSWL 38 41U 0 D* Qdbfvs sqli wh len D* Length of the WHERE D* condition within CREATE INDEX D* statement. D QDBRSV8901 42 56 D* Reserved D* SQL Select Statement, or D* SQL Create Index D* Structure D QDBFVSSL 57 60B 0 D* Select, or Create Index D* Length D*QDBFVSST 61 61 D* Qdbfvsst D* D* SQL Select, or Create Index D* (varying length) D******************************************************************** D* JOIN SPECIFICATION DECLARATIONS D******************************************************************** D** Join Specifications Header ******************************** DQDBQ06 DS D* Join Specifications Header D QDBFJNHO 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj, D* for the next join to-file. D QDBRSV40 5 8 D* Reserved. D QDBJKNUM 9 10B 0 D* Number Of Join Field D* Specifications (JFLD) D* 1-32767 = The number of join D* field statements D* that identify the D* from and to fields D* used to join the D* from-file and D* to-file. D QDBJDNUM 11 12B 0 D* Number Of Join Duplicate D* Sequence Specifications D* (JDUPSEQ) D* 1-32767 = The number of join D* duplicate sequence D* statements that D* specify the order D* in which records D* with duplicate join D* fields are returned D* to your program. D QDBFFNUM 13 14B 0 D* Join From-File Number (JOIN) D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical file to D* join the to-file from. D QDBTFNUM 15 16B 0 D* Join To-File Number (JOIN) D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical to-file D* this Join Specification D* relates to. D QDBRSV41 17 40 D* Reserved. D QDBFJSAO 41 44B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specification Array, D* Qdbfjfld, for this join D* to-file. D QDBFJDAO 45 48B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Duplicate Sequence D* Array, Qdbfjdup, for this D* join to-file. D**************************************************************** D* D*Join Specifications D* D*The Join Specifications are a linked list. There is one D*entry in the linked list for each join to-file. Each D*entry defines the join logical file's based on physical D*files, and the fields in the from-file and the to-file that D*are used to join the based on physical files. D* D**************************************************************** D*This section can be located with the offset Qdbfoj, which is D*located in the FDT header section. D**************************************************************** DQDBQ31 DS D* Join Specifications D*QDBFJHDR 48 D QDBFJNHO00 1 4B 0 D QDBRSV4000 5 8 D QDBJKNUM00 9 10B 0 D QDBJDNUM00 11 12B 0 D QDBFFNUM00 13 14B 0 D QDBTFNUM00 15 16B 0 D QDBRSV4100 17 40 D QDBFJSAO00 41 44B 0 D QDBFJDAO00 45 48B 0 D* Join Specifications Header D**************************************************************** D* D*Join Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjsao, which D*is located in the Join header section. D**************************************************************** DQDBQ32 DS D* Join Specification Array D QDBFJFNM 1 10 D* Join From-Field-Name (JFLD) D QDBJFNUM 11 12B 0 D* Join From-Field Reference D* Number D* 0 = The join from-field is D* a field in the join D* logical file's record D* format. D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement D* that this join D* from-field is D* contained in. D QDBRSV42 13 14 D* Reserved. D QDBFJOP 15 16 D* Join Operation D* 'EQ' = The join operation is D* always equal. D QDBFJTNM 17 26 D* Join To-Field-Name (JFLD) D QDBJTNUM 27 28B 0 D* Join To-Field Reference D* Number D* 0 = The join to-field is a D* field in the join logical D* file's record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* to-field is contained D* in. D QDBRSV43 29 48 D* Reserved. D**************************************************************** D*Join Duplicate Sequence Specification D**************************************************************** D** Join Sequencing-Field-Name Attributes ********************* DQDBQ07 DS D* Join Sequencing-Field-Name D* Attributes D QDBBITS08 1 1 D* QDBFJDD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The join sequencing- D* field-name is an D* ascending sequence field. D* 1 = The join sequencing- D* field-name is a D* descending sequence field D* (*DESCEND). D* QDBRSV44 7 BITS D* Reserved. D**************************************************************** D* D*Join Duplicate Sequence Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjdao, which D*is located in the Join header section. D**************************************************************** DQDBQ33 DS D* Join Duplicate Sequence D* Specifications Array D QDBFJDNM 1 10 D* Join Sequencing-Field-Name D* (JDUPSEQ) D QDBDJNUM 11 12B 0 D* Join Sequencing-Field-Name D* Reference Number D* 0 = The join sequencing- D* field-name is a field in D* the join logical file's D* record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* sequencing-field-name D* is contained in. D*QDBJSFNA 1 D QDBBITS35 13 13 D* QDBFJDD00 1 BIT D* QDBRSV4400 7 BITS D* Join Sequencing-Field-Name D QDBRSV45 14 32 D* Reserved. D******************************************************************** D* SORT SEQUENCE TABLE DECLARATIONS D******************************************************************** D** Sort Sequence Table Fields ******************************** DQDBFSRTS00 DS D* Sort Sequence Table Fields D QDBFTBLN00 1 10 D* Sort Sequence Table Name. D QDBFTBLL00 11 20 D* Sort Sequence Table's. D* Library Name D** Sort Sequence Table Flag ********************************** DQDBQ08 DS D* Sort Sequence Table Flag D QDBBITS09 1 1 D* QDBFWGHT 1 BIT D* Weight Indicator for Single- D* byte Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBFSUBC 1 BIT D* Substitution Character D* Indicator for Single-byte D* Sort Sequence Table D* 0 = The sort sequence D* table for the file does D* not have substitution D* characters. D* 1 = The sort sequence D* table for the file has D* substitution characters. D* QDBUCS2W 1 BIT D* Weight Indicator for UCS-2 D* Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBR104 5 BITS D* Reserved D**************************************************************** D* D*Alternative Collating Sequence Table or Sort Sequence Table. D* D**************************************************************** D*This section can be located with the offset Qdbfocs, which is D*located in the FDT header section. D**************************************************************** DQDBQ34 DS D* Qdb Qdbfacs D QDBFACST 1 256 D* Alternative Collating D* Sequence Table (ALTSEQ), or D* Sort Sequence Table (SRTSEQ) D* Information. Single-byte. D QDBFCCSD 257 258U 0 D* Coded Charactor Set D* Identifier, CCSID, for the D* Single-byte Table. D*QDBFSRTS 20 D QDBFTBLN01 259 268 D QDBFTBLL01 269 278 D* Sort Sequence Table Fields D*QDBFSRTF 1 D QDBBITS36 279 279 D* QDBFWGHT00 1 BIT D* QDBFSUBC00 1 BIT D* QDBUCS2W00 1 BIT D* QDBR10400 5 BITS D* Sort Sequence Table Flag D QDBCS2SL 280 283B 0 D* Length of UCS-2 Sort Sequence D* table, Qdbf_UCS2_Srtseq. D QDBUCS2C 284 285U 0 D* Qdbf UCS2 Ccsd D* Coded Character Set ID, CCSID, D* of UCS-2 sort sequence table. D QDBR101 286 304 D* Reserved D*QDBUCS2S 305 305 D* D* UCS-2 Sort Sequence Table. D* (Varying length.) D**************************************************************** D* D*IDDU/SQL Data Dictionary Area D* D*The IDDU/SQL data dictionary area is present for all Database D*files. D* D**************************************************************** D*This section can be located with the offset Qdbfodic, which D*is located in the FDT header section. D**************************************************************** DQDBFDIC DS D* IDDU/SQL Data Dictionary D* Area D QDBFDILK 1 1 D* Data Dictionary Link Status D* 'L' = The file is linked to D* a Data Dictionary. D* 'U' = The file is NOT linked D* to a Data Dictionary. D QDBFDINM 2 11 D* Data Dictionary/Library Name D QDBFDIFD 12 21 D* Data Dictionary File D* Definition Name D QDBFDIID 22 32 D* Data Dictionary Internal File D* Definition Identifier D QDBRSV46 33 36 D* Reserved. D QDBFDICL 37 40B 0 D* Data Dictionary File D* Definition Comment Length D QDBFDICC 41 42U 0 D* Data Dictionary File D* Definition Comment Coded D* Character Set Identifier D* (CCSID) D* 0 = There is NO file D* definition comment for D* the file. D* 1-65,535 = The CCSID for the D* file's definition D* comment. D QDBFOLNG 43 46B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Long/Alias File Names D* Area, Qdbflngn. D QDBLNNUM 47 48B 0 D* Number of Long/Alias File D* Names for the file D QDBRSV47 49 64 D* Reserved. D*QDBFDICT 65 65 D* D* Data Dictionary File D* Definition Comment Text D* (varying length) D******************************************************************** D* SQL LONG ALIAS FILE NAME DECLARATIONS D******************************************************************** D** Long/Alias File Name Flag Byte **************************** DQDBQ09 DS D* Long/Alias File Name Flag D* Byte D QDBBITS10 1 1 D* QDBFLNDL 1 BIT D* Long/Alias File Name D* Input Delimited Indicator D* 0 = Long/Alias File Name was D* NOT delimited when D* supplied as input. D* 1 = Long/Alias File Name was D* delimited when supplied D* as input. D* QDBR111 7 BITS D* Reserved D**************************************************************** D* D*SQL Long/Alias File Names Area D* D*The SQL Long/Alias File Names Area contains the files D*alternate names that can be used to access the file when D*using the systems SQL interfaces. D**************************************************************** D*This section can be located with the offset Qdbfolng, which D*is located in the IDDU/SQL Data Dictionary Area section. D**************************************************************** DQDBQ35 DS D* SQL Long/Alias File Names D* Area D* Long/Alias File Names Entry D QDBFLNEL 1 2B 0 D* Long/Alias File Name Entry D* Length. The length, in bytes, D* of this Long/Alias File Name D* Entry. This also is the D* offset from Qdb_Qdbflngn to D* the next Long/Alias File Name D* Entry. D*QDBFLNFL 1 D QDBBITS37 3 3 D* QDBFLNDL00 1 BIT D* QDBR11100 7 BITS D* Long/Alias File Name Flag D QDBFLNLG 4 5B 0 D* Long/Alias File Name D* (non-delimited) Length D QDBR112 6 16 D* Reserved D*QDBFLNAM 17 17 D* D* The Long/Alias File Name D* (non-delimited) D* (varying length) D**************************************************************** D* D*File Scope Array D* D*The file scope array is present for all Database files. D*The number of data members, Qdbflb£, contains the number of D*file scope array entries. Each entry contains a based on D*physical file name, and optionally a record format name. D* D*Externally Described Physical Files: D* There is only one entry. The entry names the physical D* file record format. The file name portion of the entry D* is NOT used. D* D*Program Described Physical Files: D* There is one entry for each Data Dictionary record format. D* The entry names the Data Dictionary record format. The D* file name portion of the entry is NOT used. D* D*Non-Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file and describes the D* logical file record format to use with the based on file. D* D*Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file. Only the first D* entry describes the logical file record format to use with D* the join logical file. D* D*SQL View Logical Files: D* There is one entry for each based on physical file. Each D* entry names the base on file which will be either an D* externally described physical file, or another view D* logical file. Only the first entry describes the logical D* file record format to use with the view logical file. D* D**************************************************************** D*This section can be located with the offset Qdbfos, which is D*located in the FDT header section. D**************************************************************** DQDBQ36 DS D* Qdb Qdbfb D QDBRSV48 1 48 D* Reserved. D QDBFBF 49 58 D* Based On Physical File Name D QDBFBFL 59 68 D* Based On Physical File's D* Library Name D QDBFT01 69 78 D* Record Format Name D* The name of this particular D* record format for the file. D QDBRSV49 79 115 D* Reserved. D QDBFBGKY 116 117B 0 D* Record Format Generic Key D* Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV50 118 119 D* Reserved. D QDBFBLKY 120 121B 0 D* Record Format Maximum Key D* Length D* 1-32768 = Maximum length of D* the key for the D* record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV51 122 123 D* Reserved. D QDBFFOGL 124 125B 0 D* Record Format Generic Key D* Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV52 126 128 D* Reserved. D QDBFSOON 129 130B 0 D* Number Of Select/Omit D* Statements D* 1-32767 = The number of D* Select/Omit D* statements for this D* record format. D QDBFSOOF 131 134B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Specification D* Array, Qdbfss. D QDBFKSOF 135 138B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Key Specification Array, D* Qdbfk. D QDBFKYCT 139 140B 0 D* Record Format Full Key Field D* Count D* 0-120 = The count of the D* total number of key D* fields for the record D* format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFGENF 141 142B 0 D* Generic Key Field Count For D* All Record Formats With This D* Record Format Name D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* all the record D* formats with this D* record format's name. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFODIS 143 146B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Distributed File Definition D* Section Qdbf_dis, which D* contains the Partition Key D* Array, Qdbf_dis_pkeyarr. D QDBRSV53 147 160 D* Reserved. D******************************************************************** D* SELECT/OMIT STATEMENT DECLARATIONS D******************************************************************** D** Select/Omit Statement Attribute Flags ********************* DQDBQ10 DS D* Select/Omit Statement D* Attribute Flags D QDBBITS11 1 1 D* QDBRSV55 7 BITS D* Reserved. D* QDBFSSFI 1 BIT D* Select/Omit Statement D* External Or Internal Name D* Indicator D* 0 = The Select/Omit statement D* field name is an internal D* record format name. D* 1 = The Select/Omit statement D* field name is an external D* record format name. D**************************************************************** D* D*Select/Omit Specification Array D* D*The Select/Omit specification array entries describe the D*record format's fields that the Select/Omit statements D*refer to. D* D*Non-Join Logical Files: D* There can be one Select/Omit specification array for D* each file scope array entry. D* D*Join Logical Files: D* There can only be one Select/Omit specification array D* for the join logical file. The first scope array entry D* for the join logical file will contain the offset to the D* file's Select/Omit specification array. D* D*All Select/Omit specification arrays will end with an D*'AL' operation. D* D*Select/Omit constant operands have the following form: D* D* Character - Quoted character string (imbedded quotes D* must be double quoted 'ISN''T'). D* Blank padding will be done if the character D* constant passed is shorter than the field. D* D* Hexadecimal - X followed by a quoted string of valid D* hexadecimal values (X'F1F2F3'). D* No padding will be done for a hexadecimal D* constant. The length of a hexadecimal D* constant must exactly match the field D* length. D* D* Floating - External form of floating point D* Point (1.234 E+10). D* D* Packed or - String of 0 through 9 without decimal point. D* Zoned or The decimal point is assumed at the D* Binary appropriate precision. The string must be D* Preceded by a - if negative and may be D* preceded by a + if positive (+1234 or D* -1234 would be +1.234 or -1.234 if the field D* was defined to have 3 decimal places). D* D**************************************************************** D*This section can be located with the offset Qdbfsoof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ37 DS D* Select/Omit Specification D* Array D QDBRSV54 1 2 D* Reserved. D QDBFSSSO 3 3 D* Select/Omit Statement Rule D* 'A' = Select/Omit ANDed D* statement D* 'O' = Select/Omit omit D* statement D* 'S' = Select/Omit select D* statement D QDBFSSOP 4 5 D* Select/Omit Statement D* Comparison (ALL COMP VALUES) D* 'AL' = The Select/Omit D* statement comparison D* is for all (ALL) D* 'EQ' = The Select/Omit D* statement comparison D* is for equal to D* (COMP EQ). D* 'GE' = The Select/Omit D* statement comparison D* is for greater than D* or equal to (COMP GE). D* 'GT' = The Select/Omit D* statement comparison D* is for greater than D* (COMP GT). D* 'LE' = The Select/Omit D* statement comparison D* is for less than or D* equal to (COMP LE). D* 'LT' = The Select/Omit D* statement comparison D* is for less than D* (COMP LT). D* 'NE' = The Select/Omit D* statement comparison D* is for NOT equal to D* (COMP NE). D* 'NG' = The Select/Omit D* statement comparison D* is for NOT greater D* than (COMP NG). D* 'NL' = The Select/Omit D* statement comparison D* is for NOT less than D* (COMP NL). D* 'VA' = The Select/Omit D* statement comparison D* is for values (VALUES) D QDBFSSFN 6 15 D* Select/Omit Statement Field D* Name D QDBSPNUM 16 17B 0 D* Number Of Select/Omit D* Statement Parameters D* 1-32767 = The number of D* Select/Omit D* parameters for this D* Select/Omit D* statement. D*QDBSOSAF 1 D QDBBITS38 18 18 D* QDBRSV5500 7 BITS D* QDBFSSFI00 1 BIT D* Select/Omit Statement D QDBFSSFJ 19 20B 0 D* Select/Omit Statement Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* statement field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. D QDBRSV56 21 28 D* Reserved. D QDBFSOSO 29 32B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Parameters, D* Qdbfsp, for this Select/Omit D* statement. D******************************************************************** D* SELECT/OMIT PARAMETER DECLARATIONS D******************************************************************** D** Additional Select/Omit Parameter Attribute Flags ********** DQDBQ11 DS D* Additional Select/Omit D* Parameter Attribute Flags D QDBBITS12 1 1 D* QDBFSIGC 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* Indicator D* 0 = The non-field compare D* value does NOT contain D* any DBCS or Graphic data. D* 1 = The non-field compare D* value does contain DBCS D* or Graphic data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSHEX 1 BIT D* Hexadecimal Data Indicator D* 0 = The non-field compare D* value is NOT hexadecimal D* data. D* 1 = The non-field compare D* value is hexadecimal D* data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSNUL 1 BIT D* Null Value Indicator D* 0 = The non-field compare D* value is NOT the null D* value. D* 1 = The non-field compare D* value is the null value. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBRSV57 5 BITS D* Reserved. D**************************************************************** D* D*Select/Omit Parameters D* D*This is a linked list of parameter descriptions. This D*section describes the parameter values for this particular D*Select/Omit statement. The Select/Omit parameters are D*either a compare value or another record format field. D* D**************************************************************** D*This section can be located with the offset Qdbfsoso, which D*is located in the Select omit array section. D**************************************************************** DQDBQ38 DS D* Select/Omit Parameter D QDBFSPNO 1 4B 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* next Select/Omit Parameter, D* Qdbfsp, for this Select/Omit D* statement. D QDBFSPLN 5 6B 0 D* Select/Omit Parameter Length D* 1-32767 = The length of this D* Select/Omit D* parameter structure D* including the D* actual compare D* value. D QDBFSPIN 7 7 D* Select/Omit Parameter D* Attribute Indicator D* X'00' = The Select/Omit D* parameter is NOT D* another record format D* field. It is an D* actual compare value. D* X'01' = The Select/Omit D* parameter is another D* internal record D* format field. D* X'02' = The Select/Omit D* parameter is another D* external record D* format field. D*QDBSOPAF 1 D QDBBITS39 8 8 D* QDBFSIGC00 1 BIT D* QDBFSHEX00 1 BIT D* QDBFSNUL00 1 BIT D* QDBRSV5700 5 BITS D* Additional Select/Omit D QDBFSPPJ 9 10B 0 D* Select/Omit Parameter Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* parameter field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. Also, D* if this is a non-field D* compare value, then this D* field is NOT applicable. D QDBRSV58 11 20 D* Reserved. D*QDBFSPVL 21 21 D* D* Select/Omit Parameter Compare D*(varying length) Value Or Record Format Field D* Name D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is an actual D* compare value (X'00'), then D* this field is the parameter D* compare value. D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is a record format D* field (X'01' or X'02'), then D* this field is the CHAR(10) D* parameter record format field D* name. D******************************************************************** D* KEY SPECIFICATION ARRAY DECLARATIONS D******************************************************************** D** Key Statement Sequencing Attribute Flags ****************** DQDBQ12 DS D* Key Statement Sequencing D* Attribute Flags D QDBBITS13 1 1 D* QDBFKSAD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The key field is an D* ascending sequence key. D* 1 = The key field is a D* descending sequence key D* (*DESCEND). D* QDBFKSN 2 BITS D* Numeric Key Field Sequencing D* Indicators D* B'00' = The numeric key field D* will sequence as a D* string of unsigned D* binary data D* (UNSIGNED). D* B'01' = The numeric key field D* will ignore the sign D* of the field and D* sequence as absolute D* value data (ABSVAL). D* B'10' = The numeric key field D* will consider the D* signs of the field D* and sequence as D* signed value data D* (SIGNED). D* QDBRSV60 1 BIT D* Reserved. D* QDBFKSAC 1 BIT D* Alternative Collating D* Sequence Indicator (ALTSEQ) D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field D* (NOALTSEQ). D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating D* sequence table, then this D* field is NOT applicable. D* QDBFKSZF 1 BIT D* Force Zone Sequencing D* Indicators D* 0 = The zone portion of the D* key field will NOT be D* zeroed. D* 1 = The zone portion of the D* key field will be zeroed D* so that only the digit D* portions (farthest right D* 4 bits) of the key values D* will be used in the key D* sequencing (DIGIT). D* QDBFKSDF 1 BIT D* Force Digit Sequencing D* Indicators D* 0 = The digit portion of the D* key field will NOT be D* zeroed. D* 1 = The digit portion of the D* key field will be zeroed D* so that only the zone D* portions (farthest left D* 4 bits) of the key values D* will be used in the key D* sequencing (ZONE). D* QDBFKFT 1 BIT D* Key Statement External Or D* Internal Name Indicator D* 0 = The key statement field D* name is an internal D* record format name. D* 1 = The key statement field D* name is an external D* record format name. D**************************************************************** D* D*Key Specification Array D* D*The key specification array entries describe the record D*format's fields that are used in defining the access path D*for the file. D* D*Non-Join Logical Files: D* There can be one key specification array for each file D* scope array entry. D* D*Join Logical Files: D* There can only be one key specification array for the D* join logical file. The first scope array entry for the D* join logical file will contain the offset to the file's D* key specification array. D* D**************************************************************** D*This section can be located with the offset Qdbfksof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ39 DS D* Key Specification Array D QDBFKFLD 1 10 D* Key Statement Field Name D* X'40's = The key statement D* field is a *NONE key D* field. D QDBRSV59 11 13 D* Reserved. D*QDBFKSQ 1 D QDBBITS40 14 14 D* QDBFKSAD00 1 BIT D* QDBFKSN00 2 BITS D* QDBRSV6000 1 BIT D* QDBFKSAC00 1 BIT D* QDBFKSZF00 1 BIT D* QDBFKSDF00 1 BIT D* QDBFKFT00 1 BIT D* Key Statement Sequencing D QDBRSV61 15 32 D* Reserved. D******************************************************************* D* D*Distributed File Definition Section and Partition Key Array. D* D*The Distributed File Definition Section and Partition Key D*Array consists of 2 parts - the Distributed File Definition D*Section Header and the Partition Key Array. D******************************************************************* D*The section Qdb_Qdbf_dis is located by the offset Qdbfodis D*which is located in the File Scope Array Section. D******************************************************************* D**************************************************************** D*Partition Key Array D*This array is located in the structure below it, Qdb_Qdbf_dis. D* D**************************************************************** DQDBQDP DS D* Partition key names array D* D QDBFDK 1 10 D* Partition key name D QDBR125 11 32 D* Reserved D**************************************************************** D*Distributed File Definition Section Header D* D**************************************************************** DQDBQD DS D* Distributed File Definition D* Section for this scope D* entry D QDBFDN 1 10 D* Node group name D QDBFDN00 11 20 D* Node group library D QDBFDN01 21 24B 0 D* Number of partition keys D* D QDBR200 25 64 D* Reserved D*QDBFDP 32 D* Qdbf dis pkeyarr D QDBFDK00 65 74 D* Qdbf dis kname D QDBR126 75 96 D* Reserdis 1 D* Partition key names array D* D******************************************************************** D* JOURNAL SECTION DECLARATIONS D******************************************************************** D** Journaling Option Flags *********************************** DQDBQ13 DS D* Journaling Option Flags D QDBBITS14 1 1 D* QDBR106 1 BIT D* Reserved. D* QDBFJBIM 1 BIT D* Before Images Indicator. D* 0 = The before images are not D* being journaled. D* 1 = Before images are D* being journaled D* QDBFJAIM 1 BIT D* After Images Indicator. D* 0 = The after images are not D* being journaled. D* 1 = The after images are D* being journaled. D* QDBR107 1 BIT D* Reserved. D* QDBFJOMT 1 BIT D* Omit Journal Entries D* Indicator. D* 0 = All entries are being D* journaled. D* 1 = The open and close entries D* are being omitted from D* the journal. D* QDBR108 3 BITS D* Reserved. D**************************************************************** D* D*Journal Section D* D*The journal information of this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfjorn, which is D*located in the FDT header section. D**************************************************************** DQDBQ40 DS D* Journal Section D QDBFOJRN 1 10 D* Journal Name D QDBFOLIB 11 20 D* Journal Library Name D*QDBFOJPT 1 D QDBBITS41 21 21 D* QDBR10600 1 BIT D* QDBFJBIM00 1 BIT D* QDBFJAIM00 1 BIT D* QDBR10700 1 BIT D* QDBFJOMT00 1 BIT D* QDBR10800 3 BITS D* Journaling Option Flags D QDBFJACT 22 22 D* Journaling Options. D* '0' = The file is not being D* journaled. D* '1' = The file is being D* journaled. D QDBFLJRN 23 35 D* Last Journaling date D* Stamp-This is the date D* that corresponds to the most D* recent time that journaling D* was started for the file. D* The date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBR105 36 64 D* Reserved. D******************************************************************** D* QDBRTVFD FILD0200 FORMAT DECLARATIONS D******************************************************************** D** Record format DBCS flags ********************************** DQDBQ14 DS D* Record format DBCS flags D QDBBITS15 1 1 D* QDBFRITY 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The format does NOT D* contain DBCS or graphic D* data fields. D* 1 = The format does contain D* DBCS or graphic data D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRILT 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The format definition for D* the format does NOT D* contain DBCS or graphic D* literals. D* 1 = The format definition for D* the format does contain D* DBCS or graphic literals. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRITX 1 BIT D* Double-Byte Character Set D* (DBCS) Record Format Text D* Description D* 0 = The text description D* (TEXT) for the format D* does NOT contain DBCS D* data. D* 1 = The text description D* (TEXT) for the format D* does contain DBCS data. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRMEP 1 BIT D* Mapping Error Possible D* 0 = The format does NOT D* contain fields which may D* return data mapping D* errors. D* 1 = The format does contain D* fields which may return D* data mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRDRV 1 BIT D* Derived Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields derived D* from fields in the D* physical file the logical D* file is based on, or from D* fields in this logical D* file (CONCAT or SST). D* 1 = The format does contain D* fields derived from D* fields in the physical D* file the logical file is D* based on, or from fields D* in this logical file D* (CONCAT or SST). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBDFRNI 1 BIT D* Neither or Input-Only Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which can D* be used neither for input D* nor output operations, D* nor does it contain D* fields which can be used D* for input operations D* only. D* 1 = The format does contain D* fields which can be used D* neither for input nor D* output operations, or it D* does contain fields which D* can be used for input D* operations only. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFRDFI 1 BIT D* Default Values D* (Physical files only) D* 0 = The format does NOT D* contain fields with D* default values (DFT). D* 1 = The format does contain D* fields with default D* values (DFT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFCATO 1 BIT D* Concatenated Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* 1 = The format does contain D* fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D** Format Flags ********************************************** DQDBTFLGS DS D* Format Flags D QDBBITS64 1 1 D* QDBR11304 1 BIT D* Reserved D* QDBFUCSD 1 BIT D* UCS-2 fields D* 0 = The format does NOT D* contain fields which are D* UCS-2. D* 1 = The format does contain D* fields which are UCS-2. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLNK 1 BIT D* Datalink fields. D* 0 = The format does NOT D* contain fields which are D* datalinks. D* 1 = The format does contain D* fields which are D* datalinks. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDUDT 1 BIT D* User Defined Type fields. D* 0 = The format does NOT D* contain fields which are D* UDTs. D* 1 = The format does contain D* fields which are UDTs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLOB 1 BIT D* Large Object fields. D* 0 = The format does NOT D* contain fields which are D* LOBs. D* 1 = The format does contain D* fields which are LOBs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFUTFD 1 BIT D* UTF-8 or UTF-16 fields. D* 0 = The format does NOT D* contain fields which are D* UTF-8 or UTF-16. D* 1 = The format does contain D* fields which are UTF-8 D* or UTF-16. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBR114 2 BITS D* Reserved D** Flags ***************************************************** DQDBQ15 DS D* Flags D QDBBITS16 1 1 D* QDBRSV65 1 BIT D* Reserved D* QDBFRVAR 1 BIT D* Variable Length Fields D* 0 = The format does NOT D* contain fields which are D* variable length (VARLEN). D* 1 = The format does contain D* fields which are variable D* length (VARLEN). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRGPH 1 BIT D* Graphic Fields D* 0 = The format does NOT D* contain graphic data D* fields. D* 1 = The format does contain D* graphic data fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRDTT 1 BIT D* Date, Time or Timestamp D* Fields. D* 0 = The format does NOT D* contain date, time or D* timestamp fields. D* 1 = The format does contain D* date, time or timestamp D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRNUL 1 BIT D* Null Capable Fields D* 0 = The format does NOT D* contain fields which D* allow the null value D* (ALWNULL). D* 1 = The format does contain D* fields which allow the D* null value (ALWNULL). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRSID 1 BIT D* Common Coded Character Set D* Identifier Flag D* 0 = NOT all character fields D* in the format use the D* same coded character set D* identifier (CCSID). D* 1 = All character fields in D* the format use the same D* coded character set D* identifier (CCSID). The D* actual CCSID can be found D* in variable Qddfrcid. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFESID 1 BIT D* Explicit Coded Character Set D* Identifier Flag D* 0 = NO coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, nor for any D* fields within the format. D* 1 = A coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, or for one or D* more fields within the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBYIMRT 1 BIT D* Use for QCPIMPRT. @AVA D**************************************************************** D* Record Structure for QDBRTVFD FILD0200 format D**************************************************************** D**************************************************************** D* D* FMTD HEADER D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ41 DS D* Header information D* The FMTD starts here. D QDBBYRTN00 1 4B 0 D* Bytes Returned D* The length, in bytes, of the D* data returned. D QDBBYAVA00 5 8B 0 D* Bytes Available D* The total length, in bytes, D* of the format. D QDBRSV62 9 32 D* Reserved D* Record status flags D*QDBFFMTF 1 D QDBBITS42 33 33 D* QDBFRITY00 1 BIT D* QDBFRILT00 1 BIT D* QDBFRITX00 1 BIT D* QDBFRMEP00 1 BIT D* QDBFRDRV00 1 BIT D* QDBDFRNI00 1 BIT D* QDBFRDFI00 1 BIT D* QDBFCATO00 1 BIT D* Record format DBCS flags D QDBFXLTO 34 37B 0 D* Offset from start of FMTD D* header to the translate table D* specifications (Qddfxl). D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCAO 38 41B 0 D* OFFSET to the SELECTION D* specifications for CASE D* operators in this record D* format(Qddfcsl). This is only D* valid for query formats D* (DB) CREATE: N EXTRACT: N D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFDICO 42 45B 0 D* Offset from start of FMTD D* header to the IDDU/SQL D* dictionary format D* information (Qddfdic). D* (DB) CREATE : Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCID 46 47U 0 D* Common Coded Character Set D* Identifier. D* Note: Before using this D* field, you should check D* Qddfrsid, if it is zero, then D* NOT all character fields in D* the format use the same coded D* character set identifier D* (CCSID), and this field is D* not valid. D* 65535 = The format contains D* no character fields. D* nnnnn = All character fields D* in the format use D* this coded character D* set identifier D* (CCSID). D* (QQ) QUERY: Y D QDBFSRCD00 48 49U 0 D* Source File Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) specified for D* the character portion D* of the source file D* which contained the D* DDS used to create D* the format. (CCSID). D* This CCSID should be used for D* the Qddfdtxt field also. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRTCD 50 51U 0 D* Format Text Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the text D* description (TEXT) of D* the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRLCD 52 53U 0 D* Long Comment Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the D* information about the D* content and purpose D* of the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBRSV64 54 60 D* Reserved D*QDBTFLGS00 1 D QDBBITS65 61 61 D* QDBR11305 1 BIT D* QDBFUCSD00 1 BIT D* QDBFDLNK00 1 BIT D* QDBFDUDT00 1 BIT D* QDBFDLOB00 1 BIT D* QDBFUTFD00 1 BIT D* QDBR11400 2 BITS D* Format flags D*QDBDFLGS 1 D QDBBITS43 62 62 D* QDBRSV6500 1 BIT D* QDBFRVAR00 1 BIT D* QDBFRGPH00 1 BIT D* QDBFRDTT00 1 BIT D* QDBFRNUL00 1 BIT D* QDBFRSID00 1 BIT D* QDBFESID00 1 BIT D* QDBYIMRT00 1 BIT D* Flags D QDBRSV67 63 66 D* Reserved D QDBFRLEN 67 70B 0 D* Record Length D* The sum of the lengths of all D* fields the format contains, D* excluding neither fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFNAME 71 80 D* Record Format Name D* The name associated with the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBDFSEQ 81 93 D* Level Identifier D* The modification level D* identifier of the format. It D* is used to verify the format D* has not been changed since D* compile time, if LVLCHK(*YES) D* is requested. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFTEXT 94 143 D* Text Description (TEXT) D* The text description of the D* format. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBLDNUM 144 145B 0 D* Number of Fields D* The number of fields in the D* format. There is one field D* header for each field. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBQIO 146 149B 0 D* Offset from start of Format D* header to the Identity column D* information (Qdb_Qddfidcl). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBRSV68 150 256 D* Reserved D*QDBFFLDX 257 257 D* D* Start of Field Definitions D* (varying length) D******************************************************************** D* FIELD HEADER DECLARATIONS D******************************************************************** D** Field Status Byte 1 ************************************** DQDBQ1 DS D* Field Status Byte 1 D* Field DBCS Status D QDBBITS17 1 1 D* QDBFFIAT 1 BIT D* Double-Byte Character Set D* (DBCS) Alternate Type Field D* 0 = The alternate type for D* the field does NOT D* contain DBCS data. D* 1 = The alternate type for D* the field does contain D* DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFITX 1 BIT D* Double-Byte Character Set D* (DBCS) Field Text Description D* 0 = The text description D* (TEXT) for the field does D* NOT contain DBCS data. D* 1 = The text description D* (TEXT) for the field does D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFICH 1 BIT D* Double-Byte Character Set D* (DBCS) Column Headings D* 0 = The column headings D* (COLHDG) for the field do D* NOT contain DBCS data. D* 1 = The column headings D* (COLHDG) for the field do D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFIVC 1 BIT D* Double-Byte Character Set D* (DBCS) Validity Checking D* Literals D* 0 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do NOT contain DBCS D* data. D* 1 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do contain DBCS D* data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFRND 1 BIT D* Rounding D* Rounding method for the D* field. Currently not D* supported through DDS. D* 0 = Truncate D* Insignificant decimal D* digits will be truncated. D* 1 = Round D* Insignificant decimal D* digits will be rounded to D* the nearest decimal D* digit. D* (QQ) QUERY: Y D* QDBFFCID 1 BIT D* Character Identifier Flag D* 0 = A character identifier D* (CHRID) was NOT D* specified. D* 1 = A character identifier D* (CHRID) was specified. D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBRSV69 2 BITS D* Reserved D** Field Status Byte 2 ************************************** DQDBQ201 DS D* Field Status Byte 2 D* Field Default Value and Null D* Value Allowed Indicator D* 00 = Not NULL with default D* 01 = Not NULL D* 10 = NULL capable D* 11 = Invalid D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D QDBBITS18 1 1 D* QDBFFNUL 1 BIT D* Allow Null Value (ALWNULL) D* 0 = The null value is NOT D* allowed for this field. D* 1 = The null value is allowed D* for this field. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFFDFT 1 BIT D* Column Default Value D* 0 = The column has a default D* value. D* 1 = The column does NOT have D* a default value. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFFVAR 1 BIT D* Variable Field D* 0 = The field is NOT a D* variable field. D* 1 = The field is a variable D* field for a query format. D* Qddffvarx has meaning. D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBRSV70 1 BIT D* Reserved D* QDBFFVLN 1 BIT D* Variable Length Field D* 0 = The field is NOT a D* variable length field. D* 1 = The field is a variable D* length field. D* (DB) CREATE: X EXTRACT: A D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBRSV7001 3 BITS D* Reserved D** Flags **************************************************** DQDBQ202 DS D* Flags D QDBBITS19 1 1 D* QDBFCORR 1 BIT D* Correlated Field D* 0 = This is NOT a correlated D* field. D* 1 = This is a correlated D* field. D* (QQ) QUERY: Y D* QDBFFRRN 1 BIT D* File Relative Record Number D* field. D* 0 - This is NOT a relative D* record number field. D* 1 - This is a relative record D* number field. D* (QQ) QUERY: Y D* QDBRSV71 5 BITS D* Reserved D* QDBFFMEP 1 BIT D* Mapping Errors Possible D* 0 = The field can NOT return D* data mapping errors. D* 1 = The field may return data D* mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D** Flags **************************************************** DQDBFFLGS DS D* These flags indicate the user D* specified value for the field D* at the time the format was D* created. These flags only D* apply to date, time, and D* timestamp fields. D* CAUTION: If the format has D* ever been shared, these flags D* may not be applicable to the D* file for which the API was D* called. D QDBBITS78 1 1 D* QDBQD03 1 BIT D* If on, DATFMT was defaulted. D* D* QDBQJ 1 BIT D* If on, DATFMT(*JOB) was D* specified. D* QDBQD04 1 BIT D* If on, DATSEP was defaulted. D* D* QDBQJ00 1 BIT D* If on, DATSEP(*JOB) was D* specified. D* QDBQD05 1 BIT D* If on, TIMFMT was defaulted. D* D* QDBQD06 1 BIT D* If on, TIMSEP was defaulted. D* D* QDBQJ01 1 BIT D* If on, TIMSEP(*JOB) was D* specified. D* QDBQSAA 1 BIT D* If on, SAA format was D* specified. D******************************************************************** D* Complex Object Field Flags D******************************************************************** D** Default Attributes *************************************** DQDBLAGCO DS D* Complex Objects D QDBBITS72 1 1 D* QDBRSV6400 3 BITS D* Reserved. D* QDBDFUCS 1 BIT D* UCS-2 field. D* 0 = The field is not a D* UCS-2 field. D* 1 = The field is a UCS-2 field. D* D* QDBDFUDT 1 BIT D* User Defined Type field. D* 0 = The field is not a UDT field. D* 1 = The field is a UDT field. D* D* QDBQIC 1 BIT D* Identity Column field. D* 0 = The field is not an D* Identity column. D* 1 = The field is an Identity D* column. D* QDBQRC 1 BIT D* ROWID Column field. D* 0 = The field is not a D* ROWID column. D* 1 = The field is a ROWID D* column. D* QDBDFUTF 1 BIT D* UTF-8 or UTF-16 field. D* 0 = The field is not a D* UTF-8 or UTF-16 field. D* 1 = The field is a UTF-8 or D* UTF-16 field. D******************************************************************** D* UCS-2 Field Values D******************************************************************** DQDBQ208 DS D* UCS-2 fields values. @AMA D QDBFDSPL 1 2U 0 D* Field-display-length: D* Used with a UCS-2 field when D* the CCSID keyword modifies D* the display length. @AMA D QDBBITS80 3 3 D* QDBFUCSP 1 BIT D* UCS2_conversion_flag: D* When referenced by a printer D* file,indicates whether UCS-2 D* characters are to be D* converted before printing. D* 1 = do not convert. D* @AMA D* QDBFUCSM 1 BIT D* Minimum-display-length-flag: D* When referenced by a display D* file. D* 1 = Qddfdspl contains the D* number of display D* positions allowed equal D* to the field length D* defined in the DDS. D* Example: 5G CCSID(13488). D* The Qddfdspl value is 5.@AMA D* QDBFUCSL 1 BIT D* Length-of-display-field_flag D* When referenced by a display D* file. D* 1 = the DDS for the field D* provided the allowed number D* of display positions. D* This number is in Qddfdspl. D* @AMA D* QDBQRCT 1 BIT D* Row Change D* Timestamp. D* 0 = This field/column is Not D* a Row Change Timestamp. D* 1 = This field/column is a Row D* Change Timestamp. D* QDBQHC 1 BIT D* Hidden Column. D* 0 = This field/column is Not D* a Hidden Column. D* 1 = This field/column is a D* Hidden Column. D* QDBQSD 1 BIT D* Secure Data. D* Indicates that this column D* contains data of a secure D* nature (for example credit D* card number). D* If this bit is on for a column D* referenced in a statement, it D* will prevent ANY variable D* from being stored in a D* database monitor file or or D* returned from the plan cache D* unless it is the security D* officer starting the monitor D* looking at the plan cache. D* 0 = Not secure data. D* 1 = Secure data. @ASA D* QDBQXMLC 1 BIT D* XML Column. D* 0 = This field/column is NOT D* an XML Column. D* 1 = This field/column is an D* XML Column. D* QDBR130 1 BIT D* Reserved. D QDBNCODE 4 5 D* Encoding scheme for field's D* CCSID. D* '0000'X = No encoding scheme. D* @AMA D QDBQRCTG 6 6 D* Row Change D* Timestamp GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQFPP 7 16 D* Field Procedure D* program name. D QDBQFPL 17 26 D* Field Procedure D* library name. D**************************************************************** D* D* FIELD HEADER D* D**************************************************************** D*This section is located immediately after the FMTD header D**************************************************************** DQDBQ42 DS D* Field Definition D* The definition for a field in D* format. There is a linked D* list of these field D* definitions, one for each D* field. The number of fields D* is stored in the variable D* Qddffldnum. D QDBFDEFL 1 4B 0 D* Length of Field D* The length of the entire D* field structure, including D* all sub-sections. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDI 5 34 D* Internal Field Name D* The name of the field in the D* logical format, if this is a D* logical format. If this is a D* physical format, this name is D* a duplicate of Qddfflde. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDE 35 64 D* External Field Name D* The name of the field in the D* physical format, if this is a D* physical format. If this is D* a logical format, this name D* is the name of the field in D* a physical format, on which D* this field is based. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFTYP 65 66 D* Data Type D* The data type of the field. D* X'0000' = BINARY . . . . . . D* X'0001' = FLOAT . . . . . . D* X'0002' = ZONED DECIMAL . . D* X'0003' = PACKED DECIMAL . . D* X'0004' = CHARACTER . . . . D* X'8004' = VAR CHARACTER . . D* X'0005' = GRAPHIC . . . . D* X'0006' = DBCS-CAPABLE . . . D* X'8005' = VAR GRAPHIC . . . D* X'8006' = VAR DBCS-CAPABLE . D* X'000B' = DATE . . . . . . . D* X'000C' = TIME . . . . . . . D* X'000D' = TIMESTAMP . . . . D* X'4004' = BLOB/CLOB . . . . D* X'4005' = DBCLOB . . . . . . D* X'4006' = CLOB-OPEN . . . . D* X'8044' = DATALINK-CHAR . . D* X'8046' = DATALINK-OPEN . . D* X'FFFF' = NULL . . . . . . . D* NULL is only valid D* for data base query D* formats. If NULL is D* specified, query D* will determine the D* type and attributes D* of the field from D* the based on fields D* if Qddffvar is off. D* If Qddffvar is on D* then the attributes D* are set from the D* variable's operand. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFIOB 67 67 D* Usage D* X'01' = Input-Only D* The field can be used D* for input operations D* only. D* X'02' = Output Only D* The field can be used D* for output operations D* only. D* X'03' = Both D* The field can be used D* for both input and D* output operations. D* X'04' = Neither D* The field can be used D* for neither input nor D* output operations. D* X'FF' = Unknown D* The usage is set D* appropriately during D* query processing. D* This value is only D* valid for query. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFOBO 68 71B 0 D* Output Buffer Offset D* The offset from the start of D* the output buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFIBO 72 75B 0 D* Input Buffer Offset D* The offset from the start of D* the input buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFLDB 76 77B 0 D* Length D* The length of the field. D* - For character fields, this D* is the number of D* characters. D* - For float fields: D* 4 = Single D* 8 = Double D* - For variable length fields, D* this is the maximum length D* the field can be, plus two D* for the length. D* - For date/time/timestamp D* fields, this is the length D* of the formatted data. So D* this may vary, depending on D* the format specified. D* - For graphic data fields, D* this is the number of D* bytes. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is X'FFFF'. D QDBFFLDD 78 79B 0 D* Number of Digits D* The number of digits in the D* field. D* - For numeric fields, this D* is the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFLDP 80 81B 0 D* Decimal Positions D* The number of decimal D* positions to the right of the D* decimal point. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFKBS 82 82 D* Keyboard Shift (REFSHIFT) D* The keyboard shift attribute D* of the field. D* 'X' = Alphabetic only D* 'A' = Alphameric shift D* 'N' = Numeric shift D* 'S' = Signed numeric D* 'Y' = Numeric only D* 'D' = Digits only D* 'M' = Numeric only character D* 'W' = Katakana D* 'H' = Hexadecimal D* 'I' = Inhibit keyboard entry D* 'J' = DBCS only D* 'E' = DBCS either D* 'O' = DBCS open D* 'B' = Binary character D* X'00' = No shift specified D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D*QDBQ100 1 D QDBBITS44 83 83 D* QDBFFIAT00 1 BIT D* QDBFFITX00 1 BIT D* QDBFFICH00 1 BIT D* QDBFFIVC00 1 BIT D* QDBFFRND00 1 BIT D* QDBFFCID00 1 BIT D* QDBRSV6900 2 BITS D* Field Status Byte 1 D QDBFJREF 84 85B 0 D* Join Reference (JREF) D* (Logical files only) D* For fields whose names are D* specified in more than one D* physical file, this value D* identifies which physical D* file contains the field. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file D* format, an error is D* signalled. This value is D* only allowed on a query D* format. D* n = The external field name D* is to be found in the D* file format referenced D* by using this value as a D* join reference index into D* the file list. D* (DB) CREATE: R EXTRACT: Y D* (DF) N D* (QQ) QUERY: R D*QDBQ203 1 D QDBBITS45 86 86 D* QDBFFNUL00 1 BIT D* QDBFFDFT00 1 BIT D* QDBFFVAR00 1 BIT D* QDBRSV7000 1 BIT D* QDBFFVLN00 1 BIT D* QDBRSV7002 3 BITS D* Field Status Byte 2 D*QDBQ204 1 D QDBBITS46 87 87 D* QDBFCORR00 1 BIT D* QDBFFRRN00 1 BIT D* QDBRSV7100 5 BITS D* QDBFFMEP00 1 BIT D* Flags D QDBFVARX 88 89B 0 D* Variable Field Index D* Index into the list of all D* variable field values for the D* query. D* (QQ) QUERY: Y D QDBRSV72 90 91 D* Reserved D QDBFLALC 92 93B 0 D* Allocated Length D* The number of bytes allocated D* for the field in the fixed D* portion of the file. D* or... D* Date/Time/Timestamp Length D* The number of bytes the D* based-on field for the date/ D* time/timestamp occupies. D* (QQ) QUERY: R, unless field D* type (Qddffldt) is x'FFFF' D QDBFDTTF 94 94 D* Date Format (DATFMT) D* The format of the date field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Format (TIMFMT) D* The format of the time field. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D* (QQ) QUERY: Y D QDBFDTTS 95 95 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D* (QQ) QUERY: Y D QDBFCSID 96 97U 0 D* Common Coded Character Set D* Identifier (CCSID) D* 00000 = The CCSID associated D* with the job is to be D* used for data D* translation. D* 65535 = No data translation D* is to be done. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for data translation. D* (QQ) QUERY: Y D QDBFTSID 98 99U 0 D* Text Description Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the text description. D* 65535 = The text description D* is not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* text description. D* (QQ) QUERY: Y D QDBFHSID 100 101U 0 D* Column Heading Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the column headings. D* 65535 = The column headings D* are not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* column headings. D* (QQ) QUERY: Y D QDBFLSID 102 103U 0 D* Long Comment Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the long comment. D* 65535 = The long comment is D* not to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* long comment. D* (QQ) QUERY: Y D QDBFLDUR 104 104 D* Labeled Duration D* The type of labeled duration D* this field defines. D* '00'X = The field is not a D* labeled duration. D* '0D'X = Year/Years. D* '0E'X = Month/Months. D* '0F'X = Day/Days. D* '10'X = Hour/Hours. D* '11'X = Minute/Minutes. D* '12'X = Second/Seconds. D* '13'X = Microsecond/ D* Microseconds. D* (QQ) QUERY: Y D*QDBFFLGS00 1 D QDBBITS79 105 105 D* QDBQD07 1 BIT D* QDBQJ02 1 BIT D* QDBQD08 1 BIT D* QDBQJ03 1 BIT D* QDBQD09 1 BIT D* QDBQD10 1 BIT D* QDBQJ04 1 BIT D* QDBQSAA00 1 BIT D* Flags. D QDBFWSID 106 107U 0 D* Edit Word Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the edit word. D* 65535 = The edit word is not D* to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* edot word. D* (QQ) QUERY: Y D QDBRSV6100 108 108 D* Reserved D QDBRSV6200 109 109 D* Reserved D QDBRSV6300 110 111U 0 D* Reserved. D*QDBLAGCO00 1 D QDBBITS73 112 112 D* QDBRSV6401 3 BITS D* QDBDFUCS00 1 BIT D* QDBDFUDT00 1 BIT D* QDBQIC00 1 BIT D* QDBQRC00 1 BIT D* QDBDFUTF00 1 BIT D* Complex Object flags. D*QDBQ209 26 D QDBFDSPL00 113 114U 0 D QDBBITS81 115 115 D* QDBFUCSP00 1 BIT D* QDBFUCSM00 1 BIT D* QDBFUCSL00 1 BIT D* QDBQRCT00 1 BIT D* QDBQHC00 1 BIT D* QDBQSD00 1 BIT D* QDBQXMLC00 1 BIT D* QDBR13000 1 BIT D QDBNCODE00 116 117 D QDBQRCTG00 118 118 D QDBQFPP00 119 128 D QDBQFPL00 129 138 D* UCS-2 field values. @AMA D QDBRSV74 139 180 D* Reserved @AMA D QDBFCPLX 181 184B 0 D* Offset from start of Field D* header to the Complex Object D* field information D* (Qdb_Qddffcpli). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBMAXL 185 188B 0 D* Maximum length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBPADL 189 190U 0 D* Pad length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFDICD 191 194B 0 D* Offset from start of Field D* header to IDDU/SQL dictionary D* field information (Qddfdicf) D* (QQ) QUERY: Y D QDBFDFTD 195 198B 0 D* Offset from start of Field D* header to default value D* description (Qddfdft) D* (QQ) QUERY: Y D QDBFDERD 199 202B 0 D* Offset from start of Field D* header to derived field D* description (or to the D* concatenated field description D* if its file is externally D* described) (Qddfderv) D* (QQ) QUERY: Y D QDBRSV75 203 208 D* Reserved D QDBFTXTD 209 212B 0 D* Offset from start of Field D* header to field text D* description (Qddfftxt) D* (QQ) QUERY: N D QDBR102 213 214 D* Reserved D QDBFREFD 215 218B 0 D* Offset from start of Field D* header to field reference D* information (Qddfrefi) D* (QQ) QUERY: N D QDBFEDTL 219 220B 0 D* Length of the edit code / D* edit word information for the D* field D* (QQ) QUERY: N D QDBFEDTD 221 224B 0 D* Offset from start of Field D* header to the edit code / D* edit word information D* (Qddfedcw) D* (QQ) QUERY: N D QDBRSV76 225 226 D* Reserved D QDBDFCHD 227 230B 0 D* Offset from start of Field D* header to the column heading D* information (Qddfcolh) D* (QQ) QUERY: N D QDBFVCKL 231 232B 0 D* Length of the validity D* checking data present for the D* field. D* (QQ) QUERY: N D QDBFVCKD 233 236B 0 D* Offset from start of Field D* header to the validity D* checking data (Qddfvchk) D* (QQ) QUERY: N D QDBFXALS 237 240B 0 D* Offset from start of Field D* header to alias name entry D* (QQ) QUERY: N D QDBFFPND 241 244B 0 D* Offset from start of Field D* header to the the field D* prompted numeric editing D* information (Qddfdfne) D* (QQ) QUERY: N D QDBRSV77 245 252 D* Reserved D*QDBDFVPX 253 253 D* D* START OF THE VARIABLE PORTION D* OF THE FIELD DESCRIPTION D* (varying length) D**************************************************************** D* D* Complex Object Field Type Information D* D**************************************************************** D*This section can be located with the offset Qddfcplx, which D*is located in the Field header section. D**************************************************************** DQDBFCPLI DS D* Field text D QDBFLENU 1 4B 0 D* If the field is a UDT, D* this length is the length D* of the UDT name. D QDBFNUDT 5 132 D* UDT name. D QDBFLUDT 133 142 D* UDT library name. D QDBDLINK 143 143 D* If the field is a datalink, D* this is the link control: D* N = No link control. D* Y = Link control. D QDBDINTE 144 144 D* If the field is a datalink, D* this is the link integrity: D* A = All under control. D* S = Selective control. D* This value is not D* supported yet. D QDBDRPER 145 146 D* If the field is a datalink, D* this is the read permisssion: D* FS = File system. D* DB = Database. D QDBDWPER 147 148 D* If the field is a datalink, D* this is the write D* permission: D* FS = File system. D* BL = Blocked. D QDBDRECO 149 149 D* If the field is a datalink, D* the database manager will D* recover the file: D* Y = Yes. This value is not D* supported yet. D* N = No. D QDBDUNLK 150 150 D* If the field is a datalink, D* the database manager will D* restore the file owner on D* an unlink, or delete the file D* when unlinking the file. D* R = Restore the owner. D* D = Delete the file. D QDBQ150 151 160 D* Reserved. D**************************************************************** D* D* IDENTITY Column/ROWID Field Information D* D**************************************************************** D*This section can be located with the offset Qddf_Identity_Off D*which is located in the Field header section. D**************************************************************** DQDBFIDCL DS D* IDENTITY column/ROWID info D* NOTE: Only D* Qddf_ROWID_Generate D* applies to ROWID columns. D QDBQIL 1 2B 0 D* Length of identity column/ D* ROWID information. D QDBQIOSW 3 18P 0 D* Qddf Id Orig Start With D* Identity Original START WITH D* value D QDBQICSW 19 34P 0 D* Qddf Id Curr Start With D* Identity Current START WITH D* value. (Changed using ALTER D* TABLE RESTART WITH.) D QDBQIIB 35 38B 0 D* Identity INCREMENT BY value. D QDBQIM 39 54P 0 D* Qddf Id Minimum D* Identity MINIMUM value. D QDBQIM00 55 70P 0 D* Qddf Id Maximum D* Identity MAXIMUM value. D QDBQIC01 71 71 D* Identity CYCLE indicator. D* 1 = Cycling will occur. D* 0 = Cycling will not occur. D QDBQIO00 72 72 D* Identity ORDER mode. D* 1 = Values are generated in D* order of request. D* 0 = Values do not need to be D* generated in order of D* request. D QDBQIG 73 73 D* Identity GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQICC 74 77U 0 D* Identity CACHE value D QDBQRG 78 78 D* ROWID GENERATE indicator D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQIR1 79 131 D* Reserved. D**************************************************************** D* D* FIELD TEXT D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddftxtd, which D*is located in the Field header section. D**************************************************************** DQDBQ43 DS D* Field text D QDBFFTXT 1 50 D* Text (TEXT) D* Text description of the D* field. D******************************************************************** D* REFERENCE INFORMATION DECLARATIONS D******************************************************************** D** Modification Flags *************************************** DQDBQ16 DS D* Modification Flags D QDBBITS20 1 1 D* QDBFDUPE 1 BIT D* Modifications D* 0 = The field has NOT been D* modified. D* 1 = The field has been D* modified. D* QDBFNMEC 1 BIT D* Name Modification D* 0 = The name of the field has D* NOT been modified. D* 1 = The name of the field has D* been modified. D* QDBFTYPC 1 BIT D* Data Type Modification D* 0 = The data type of the D* field has NOT been D* modified. D* 1 = The data type of the D* field has been modified. D* QDBFLENC 1 BIT D* Field Length Modification D* 0 = The length of the field D* has NOT been modified. D* 1 = The length of the field D* has been modified. D* QDBFDECC 1 BIT D* Precision Modification D* 0 = The precision of the D* field has NOT been D* modified. D* 1 = The precision of the D* field has been modified. D* QDBFEDTC 1 BIT D* Edit Information Modification D* 0 = The edit information of D* the field has NOT been D* modified. D* 1 = The edit information of D* the field has been D* modified. D* QDBDDFVC 1 BIT D* Validity Checking Information D* Modification D* 0 = The validity checking D* information of the field D* has NOT been modified. D* 1 = The validity checking D* information of the field D* has been modified. D* QDBFOTHR 1 BIT D* Other Modification D* 0 = Other information of the D* field has NOT been D* modified. D* 1 = Other information of the D* field has been modified. D**************************************************************** D* D* REFERENCE INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfrefd, which D*is located in the Field header section. D**************************************************************** DQDBQ44 DS D* Reference Information D*QDBFRCDE 1 D QDBBITS47 1 1 D* QDBFDUPE00 1 BIT D* QDBFNMEC00 1 BIT D* QDBFTYPC00 1 BIT D* QDBFLENC00 1 BIT D* QDBFDECC00 1 BIT D* QDBFEDTC00 1 BIT D* QDBDDFVC00 1 BIT D* QDBFOTHR00 1 BIT D* Modification Flags D QDBFRFIL 2 11 D* Referenced File Name D* The name of the file the D* field references. D QDBFRLIB 12 21 D* Referenced File Library D* The name of the library D* containing the file the field D* references. D QDBFRFMT 22 31 D* Referenced Record Format D* The name of the record format D* containing the field D* referenced. D QDBFRFLD 32 61 D* Referenced Field D* The name of the field D* referenced. D QDBRSV78 62 80 D* Reserved D******************************************************************** D* EDIT CODE DECLARATIONS D******************************************************************** D** Edit Code Information ************************************ DQDBQ17 DS D* Edit Code Information D QDBFECDE 1 1 D* Edit Code (EDTCDE) D* Edit code for the field when D* it is referred to later D* during display or printer D* file creation. D QDBFECDX 2 2 D* Floating Currency Symbol D* '*' = Asterisk Protection D* Asterisks are displayed D* to the left of D* significant digits. D* floating currency symbol = D* The symbol specified D* appears to the left of D* the first significant D* digit. D**************************************************************** D* D* EDIT CODE / EDIT WORD INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfedtd, which D*is located in the Field header section. D**************************************************************** DQDBQ45 DS D* Edit Information D*QDBFECDI 2 D QDBFECDE00 1 1 D QDBFECDX00 2 2 D* Edit Code Information D QDBRSV79 3 16 D* Reserved D*QDBDFEWD 17 17 D* D* Edit Word (EDTWRD) D* (varying length) The form in which the field D* values are to be displayed. D* Note: Before using this D* field, you should D* check Qddfecde, if it D* is not blank, then D* this field is not D* valid. The length of D* this field, if D* present, is included D* in Qddfedtl. D******************************************************************** D* NUMERIC EDIT DECLARATIONS D******************************************************************** D** Negative Sign Information ******************************** DQDBQNSI DS D* Negative Sign Information D QDBFDNSC 1 1 D* Display Negative Sign D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The negative sign D* character will be D* displayed for negative D* values. D* '2' = The negative sign D* character will NOT be D* displayed for negative D* values. D QDBFDNSL 2 7 D* Left Negative Sign Value D* The symbol to be displayed D* to the left of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDNSR 8 13 D* Right Negative Sign Value D* The symbol to be displayed D* to the right of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Currency Symbol Information ***************************** DQDBQCSI DS D* Currency Symbol Information D QDBFDCSY 1 1 D* Display Currency Symbol D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The currency symbol D* will be displayed. D* '2' = The currency symbol D* will NOT be displayed. D QDBFDCSL 2 7 D* Left Currency Symbol Value D* The symbol to be displayed D* to the left of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDCSR 8 13 D* Right Currency Symbol Value D* The symbol to be displayed D* to the right of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Leading Zero Information ********************************* DQDBQLZI DS D* Leading Zero Information D QDBFDRLZ 1 1 D* Replace Leading Zeros D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced. D* '2' = Leading zeros are NOT D* replaced. D QDBFDRLV 2 2 D* Leading Zero Replacement D* Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced with blanks. D* '2' = Leading zeros are D* replaced with asterisks. D* '3' = Leading zeros are D* replaced with blanks, D* and left currency D* symbol is shifted to D* the right. D QDBFDLZO 3 3 D* Single Leading Zero D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero is displayed to D* the left of the decimal D* point when there are no D* significant digits to D* the left of the decimal D* point. D* '2' = A zero is NOT displayed D* to the left of the D* decimal point when D* there are no D* significant digits to D* the left of the decimal D* point. D**************************************************************** D* D* FIELD PROMPTED NUMERIC EDITING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddffpnd, which D*is located in the Field header section. D**************************************************************** DQDBQ46 DS D* IDDU/SQL Dictionary Field D* Prompted Numeric Editing D* Information. D QDBRSV80 1 2 D* Reserved D QDBFDDTS 3 3 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* '00'X = This is not a date D* or time field. The D* numeric editing D* information should be D* used. D* '1' = The period separator D* is to be used. "." D* '2' = The slash separator D* is to be used. "/" D* '3' = The colon separator D* is to be used. ":" D* '4' = The dash separator D* is to be used. "-" D* '5' = The comma separator D* is to be used. "," D QDBFDDPC 4 4 D* Decimal Point Character D* The character to be used to D* separate decimal digits. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period decimal D* is to be used. "." D* '2' = The comma decimal D* is to be used. "," D* '3' = The colon decimal D* is to be used. ":" D* '4' = The dollar decimal D* is to be used. "$" D* '5' = No decimal is to be D* used. D QDBFDTSC 5 5 D* Thousands Separator Character D* The character to be used to D* group digits by threes. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period thousands D* is to be used. "." D* '2' = The comma thousands D* is to be used. "," D* '3' = The apostrophe D* thousands is to be D* used. "'" D* '4' = The blank thousands D* is to be used. " " D* '5' = No thousands is to be D* used. D*QDBQNSI00 13 D QDBFDNSC00 6 6 D QDBFDNSL00 7 12 D QDBFDNSR00 13 18 D* Negative Sign Information D*QDBQCSI00 13 D QDBFDCSY00 19 19 D QDBFDCSL00 20 25 D QDBFDCSR00 26 31 D* Currency Symbol Information D QDBFDPZV 32 32 D* Print Zero Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero value is D* displayed. D* '2' = A zero value is NOT D* displayed. D*QDBQLZI00 3 D QDBFDRLZ00 33 33 D QDBFDRLV00 34 34 D QDBFDLZO00 35 35 D* Leading Zero Information D QDBRSV81 36 64 D* Reserved D**************************************************************** D* D* COLUMN HEADING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfchd, which D*is located in the Field header section. D**************************************************************** DQDBQ47 DS D* Column Heading (COLHDG) D* Column headings used for this D* field when it is displayed D QDBQ101 1 20 D* Column Heading £1 D* The first column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ205 21 40 D* Column Heading £2 D* The second column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ3 41 60 D* Column Heading £3 D* The third column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D**************************************************************** D* D* VALIDITY CHECKING INFORMATION D* D**************************************************************** D*This section can be located with the offset Qddfvckd, which D*is located in the Field header section. D**************************************************************** DQDBQ48 DS D* Validity Checking Information D* (CHECK), (COMP), (RANGE), and D* (VALUES) D QDBCNUME 1 2B 0 D* Number of Validity Check D* Entries D QDBRSV82 3 16 D* Reserved D*QDBFVCEN 17 17 D* D* Validity Checking Entry Array D* (varying length) DQDBQ49 DS D* Validity Checking Entry D QDBFVCCD 1 1 D* DDSI Keyword Identifier D* '63'X = CHKMSGID D* '64'X = CHECK(ME) D* '66'X = CHECK(FE) D* '67'X = CHECK(MF) D* '71'X = RANGE D* '72'X = VALUES D* '73'X = COMP(GT) D* '74'X = COMP(GE) D* '75'X = COMP(EQ) D* '76'X = COMP(NE) D* '77'X = COMP(LE) D* '78'X = COMP(LT) D* '79'X = COMP(NL) D* '7A'X = COMP(NG) D* 'A0'X = CHECK(M10) D* 'A1'X = CHECK(M11) D* 'A2'X = CHECK(VN) D* 'A3'X = CHECK(AB) D* 'A5'X = CHECK(VNE) D* 'A6'X = CHECK(M10F) D* 'A7'X = CHECK(M11F) D QDBCNUMP 2 3B 0 D* Number of Parameters D QDBFVCEL00 4 5B 0 D* Length of This Validity Check D* Entry D QDBRSV83 6 16 D* Reserved. D*QDBFVCPM 17 17 D* D* Validity Checking Parameter D* Array (varying length) DQDBQ50 DS D* Validity Checking Parameter D QDBFVCPL 1 2B 0 D* Length of the Validity D* Checking Parameter Qddfvcpv D QDBRSV84 3 16 D* Reserved. D*QDBFVCPV 17 17 D* D* Validity Checking Parameter D* Value (varying length) D**************************************************************** D* D* ALIAS NAME STRUCTURE D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfxals, which D*is located in the Field header section. D**************************************************************** DQDBQ51 DS D* Alternative Name Information D* (ALIAS) D QDBFALSL 1 2B 0 D* Length of Alternative Name D* Qddfalsn D QDBRSV85 3 16 D* Reserved D*QDBFALSN 17 17 D* D* Alternative Name (ALIAS) D* An alternative name for the D* field. (varying length) D******************************************************************** D* DEFAULT VALUE DESCRIPTION DECLARATIONS D******************************************************************** D** Default Attributes *************************************** DQDBQ18 DS D* Default Attributes D QDBBITS21 1 1 D* QDBFDFIG 1 BIT D* DBCS or Graphic Default D* 0 = The default is NOT a DBCS D* or graphic literal. D* 1 = The default is a DBCS or D* graphic literal. D* QDBFDFHX 1 BIT D* Hex Default D* 0 = The default is NOT a D* hex literal. D* 1 = The default is a hex D* literal. D* QDBFNDFT 1 BIT D* Null Default D* 0 = The default is NOT null. D* 1 = The default is null. D* QDBRSV86 2 BITS D* Reserved D* QDBFDCUR 1 BIT D* Default is CURRENT_DATE, D* CURRENT_TIME or D* CURRENT_TIMESTAMP D* 0 = The default is NOT CURRENT D* 1 = The default is CURRENT. D* QDBR109 1 BIT D* Reserved D* QDBFDFTK 1 BIT D* DFT or DFTVAL Keyword D* 0 = The DFT keyword was D* specified. D* 1 = The DFTVAL keyword was D* specified. D**************************************************************** D* D* DEFAULT VALUE DESCRIPTION INFORMATION D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdftd, which D*is located in the Field header section. D**************************************************************** DQDBQ52 DS D* Default Information (DFT) or D* (DFTVAL) D QDBFDFTL 1 2B 0 D* Length of Default Information D* Qddfdft D*QDBFDFTA 1 D QDBBITS48 3 3 D* QDBFDFIG00 1 BIT D* QDBFDFHX00 1 BIT D* QDBFNDFT00 1 BIT D* QDBRSV8600 2 BITS D* QDBFDCUR00 1 BIT D* QDBR10900 1 BIT D* QDBFDFTK00 1 BIT D* Default Attributes D QDBRSV87 4 16 D* Reserved D*QDBFDFTV 17 17 D* D* Default (DFT) or (DFTVAL) D* The default value of the D* field. (varying length) D******************************************************************** D* IDDU/SQL DICTIONARY ADDITIONAL DECLARATIONS D******************************************************************** D** Field Definition Long Comment **************************** DQDBQ19 DS D* Field Definition Long Comment D QDBFDFCL 1 2B 0 D* Length of Field Definition D* Long Comment Qddfdfco D*QDBFDFCT 3 3 D* D* Field Definition Comment Text D* (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY ADDITIONAL FIELD INFORMATION. D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdicd, which D*is located in the Field header section. D**************************************************************** DQDBQ53 DS D* IDDU/SQL Dictionary D* Additional Field Information D QDBFDFCH 1 16 D* Reserved D*QDBFDFCO 3 D QDBFDFCL00 17 18B 0 D QDBFDFCT00 19 19 D* Field Definition Long Comment D******************************************************************** D* FORMAT FIELD FLAGS D******************************************************************** D** Field Attributes ************************************** DQDBQFLDF DS D* Field flags D QDBBITS84 1 1 D* QDBR504 2 BITS D* Reserved D* QDBFSIU01 1 BIT D* Derived field D* uses a user defined UDF D* indicator: D* 0 = The field does NOT use a D* user defined UDF. D* 1 = The field does use a D* user defined UDF. D* @APA D* QDBR505 5 BITS D* Reserved @APA D******************************************************************* D* D*These are type definitions which are needed for a UNION in the D*Header Section D* D******************************************************************* DQDBQ54 DS D* Field Operand Entry D QDBFDVON 1 30 D* Field Name D* The external name of the D* field. D QDBFDVJR 31 32B 0 D* Join Reference (JREF) D* Relative file number of the D* physical file containing the D* external field referenced. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file format, D* an error is signalled. D* n = The external field name D* is located in the file D* format referenced by D* using this value as a D* join reference index into D* the file list. D QDBQ102 33 34B 0 D* Starting Position D* The starting position in the D* external field, of the D* substring (SST) specified. D QDBQ206 35 36B 0 D* Ending Position D* The ending position in the D* external field, of the D* substring (SST) specified. D QDBDTNUM 37 38B 0 D* QDT from which this D* Only applicable for SQL D QDBR502 39 39 D* Reserved @APA D QDBR503 40 40 D* Reserved @APA D*QDBFLDF 1 D QDBBITS85 41 41 D* QDBR50400 2 BITS D* QDBFSIU02 1 BIT D* QDBR50500 5 BITS D* Field flags. @APA D QDBRSV89 42 58 D* Reserved @APC D******************************************************************** D* CONSTANT OPERAND DECLARATIONS D******************************************************************** D** Constant Attributes ************************************** DQDBQCA DS D* Constant Attributes D QDBBITS22 1 1 D* QDBFDVCI 1 BIT D* DBCS Constant D* 0 = This constant is NOT a D* DBCS - OPEN literal. D* 1 = This constant is a DBCS - D* OPEN literal. D* QDBRSV90 1 BIT D* Reserved D* QDBFDVCC 1 BIT D* Character Constant Type D* 0 = The constant is a quoted D* character string, D* bracketed by single D* quotes. Imbedded quotes D* are represented with two D* single quotes. D* 1 = The constant is an D* unquoted D* character string, NOT D* bracketed by single D* quotes. Imbedded quotes D* are represented with a D* single quote. D* QDBFDVAC 1 BIT D* Assume Character Constant D* 0 = The system will NOT D* assume this is a D* character constant. D* 1 = The system will assume D* this is a character D* constant. D* QDBFDVCO 1 BIT D* DBCS - ONLY Literal D* Note: Before using this D* field, you should D* check Qddfdvci, if it D* is not on, then this D* field is not valid. D* 0 = This constant is a DBCS - D* OPEN literal. D* 1 = This constant is a DBCS - D* ONLY literal. D* QDBFDVSR 1 BIT D* Special register D* 0 = This constant operand is D* not a special register. D* 1 = This constant operand is D* a special register, D* defined by Qddfdvrc D* QDBFDVNL 1 BIT D* Null Indicator D* 0 = This constant is NOT a D* null literal. D* 1 = This constant is a null D* literal. D* QDBRSV91 1 BIT D* Reserved D** Constant Flags ******************************************* DQDBQ20 DS D* Constant Flags D QDBBITS23 1 1 D* QDBRSV93 2 BITS D* Reserved D* QDBFGLIT 1 BIT D* If on, this indicates that D* this is a graphics literal. D* QDBRSV94 5 BITS D* Reserved D** Constant Operand Header ********************************** DQDBQ21 DS D* Constant Operand Header D QDBFDVOL 1 4B 0 D* Length of Constant Qddfdvov D*QDBQCA00 1 D QDBBITS24 5 5 D* QDBFDVCI00 1 BIT D* QDBRSV9000 1 BIT D* QDBFDVCC00 1 BIT D* QDBFDVAC00 1 BIT D* QDBFDVCO00 1 BIT D* QDBFDVSR00 1 BIT D* QDBFDVNL00 1 BIT D* QDBRSV9100 1 BIT D* Constant Attributes D QDBFDVRC 6 6 D* Special register constant D* Defined by special register D* constants, can only be D* specified if Qddfdvsr is on. D QDBFDVFT 7 7 D* Date Constant Format (DATFMT) D* The format of the date D* constant. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Constant Format (TIMFMT) D* The format of the time D* constant. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSP 8 8 D* Date Constant Separator D* (DATSEP) D* The separator character to be D* used with the date constant. D* or... D* Time Constant Separator D* (TIMSEP) D* The separator character to be D* used with the time constant. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBRSV92 9 10 D* Reserved D QDBFDVCD 11 12U 0 D* Constant Coded Character Set D* Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* constant. D*QDBFCFLG 1 D QDBBITS25 13 13 D* QDBRSV9300 2 BITS D* QDBFGLIT00 1 BIT D* QDBRSV9400 5 BITS D* Constant Flags D QDBRSV95 14 42 D* Reserved DQDBQ55 DS D* Constant Operand Entry D*QDBFDVOH 42 D QDBFDVOL00 1 4B 0 D* QDBQCA01 1 D QDBBITS49 5 5 D* QDBFDVCI03 1 BIT D* QDBRSV9003 1 BIT D* QDBFDVCC03 1 BIT D* QDBFDVAC03 1 BIT D* QDBFDVCO03 1 BIT D* QDBFDVSR03 1 BIT D* QDBFDVNL03 1 BIT D* QDBRSV9103 1 BIT D QDBFDVRC00 6 6 D QDBFDVFT00 7 7 D QDBFDVSP00 8 8 D QDBRSV9200 9 10 D QDBFDVCD00 11 12U 0 D* QDBFCFLG00 1 D QDBBITS50 13 13 D* QDBRSV9303 2 BITS D* QDBFGLIT03 1 BIT D* QDBRSV9403 5 BITS D QDBRSV9500 14 42 D* Constant Operand Header D*QDBFDVOV 43 43 D* D* Derived Constant D* The external form of the D* constant. (varying length) D******************************************************************** D* OPERATOR ENTRY DECLARATIONS D******************************************************************** D** Translation Table Index ********************************** DQDBQ22 DS D* Translation Table Index D* Index into the translation D* table. D* or D* Index into the case selection D* specification D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '0B'X or '3E'X, D* then this field is not D* valid. D QDBDTFMT 1 1 D* Operator Date Format Index D QDBDTSEP 2 2 D* Operator Date Separator Index D** Operator attributes ************************************** DQDBQOA DS D* Operator attributes D QDBBITS26 1 1 D* QDBRSV96 1 BIT D* Reserved D* QDBVDTTM 1 BIT D* Operator Date Format and D* Separator Source D* 1 = Qddfdvdtfmt & Qddfdvdtsep D* are to be used as the D* date format & separator D* for the CHAR operator. D* Similarly, Qddfdvfm & D* Qddfdvsa are to be used D* as the time format & D* separator for the CHAR D* operator. D* 0 = Process only Qddfdvfm & D* Qddfdvsa as the format & D* separator for the CHAR D* operator. D* QDBR113 1 BIT D* Reserved D* QDBFDVDF 1 BIT D* May only be set for D* group by operators. D* 1 = Do not include duplicate D* field values in group by D* operation. D* 0 = Include duplicate field D* values in group by D* operation. D* QDBRSV97 1 BIT D* Reserved D* QDBQC01 1 BIT D* Number of characters D* operator option. D* 0 = Result is computed for D* this operator based on D* number of bytes. D* 1 = Result is computed for D* this operator based on D* number of characters. D* Applicable only when Qddfdvop D* is POSSTR '41'X, LENGTH '23'X D* or SUBSTRING '27'X and either D* of the arguments is IGC. D* QDBR115 2 BITS D* Reserved DQDBQ56 DS D* Operator Entry D QDBFDVOP 1 1 D* Derived Operator D* The type of operation to be D* performed on the operand/s. D* D* Associciated with each value, D* is a list of what operand D* attributes are valid with D* that value. D* N = ALL NUMERIC OPERANDS AR D* C = CHARACTER OPERANDS ARE D* Z = ZONED OPERANDS ARE VAL D* L = DATE OPERANDS ARE VALI D* T = TIME OPERANDS ARE VALI D* S = TIMESTAMP OPERANDS ARE D* LD = DATE DURATION OPERAND D* TD = TIME DURATION OPERAND D* SD = TIMESTAMP DURATION OP D* A = ANY OPERANDS ARE VALID D* G = GRAPHIC OPERANDS ARE VALID D* D* - Operators that require D* three operands: D* '27'X = SUBSTRING (C) D* - Operators that require D* two operands: D* '01'X = CONCATENATION (C) D* '04'X = ADDITION (N,L,LD,T, D* TD,S,SD) D* '05'X = SUBTRACTION (N,L,LD, D* T,TD,S,SD) D* '06'X = MULTIPLICATION (N) D* '07'X = DIVISION (N) D* '08'X = MINIMUM (A) D* '09'X = MAXIMUM (A) D* '1A'X = X TO THE Y POWER (N) D* '1B'X = BINARY OR (C) D* '1C'X = BINARY XOR (C) D* '1D'X = BINARY AND (C) D* '24'X = STRIP LEADING (C) D* '25'X = STRIP TRAILING(C) D* '26'X = STRIP BOTH (C) D* '35'X = COMPUTE (N,L,LD, D* T,TD,S,SD) D* '80'X = REMAINDER (N) D* '41'X = POSSTR(C,G) D* - Operators that require D* one operand: D* '02'X = MAP (A) D* '03'X = DIRECT MAP D* '0A'X = ABSOLUTE VALUE (N) D* '0B'X = TRANSLATE (C) D* '0C'X = NATURAL LOGARITHM (N) D* '0D'X = EXPONENTIAL (N) D* '0E'X = SINE (N) D* '0F'X = COSINE (N) D* '10'X = TANGENT (N) D* '11'X = COTANGENT (N) D* '12'X = ARC SINE (N) D* '13'X = ARC COSINE (N) D* '14'X = ARC TANGENT (N) D* '15'X = HYPERBOLIC SINE (N) D* '16'X = HYPERBOLIC COSINE (N) D* '17'X = HYPERBOLIC TANGENT(N) D* '18'X = HYPERBOLIC ARCTAN (N) D* '19'X = SQUARE ROOT (N) D* '1E'X = BINARY NOT (C) D* '1F'X = NEGATION (N) D* '23'X = LENGTH (A) D* '29'X = YEAR (L,S,LD,SD) D* '2A'X = MONTH (L,S,LD,SD) D* '2B'X = DAY (L,S,LD,SD) D* '2C'X = DAYS (S,L,N,C) D* '2D'X = HOUR (T,S,TD,SD) D* '2E'X = MINUTE (T,S,TD,SD) D* '2F'X = SECOND (T,S,TD,SD) D* '30'X = MICROSECOND (S,SD) D* '31'X = DATE (S,N) D* '32'X = TIME (S,T,C) D* '34'X = HEX (A) D* '36'X = Test-translate CSID D* '37'X = TRANSLATE (Monocase) D* '3C'X = NODENUMBER D* '3D'X = CAST (A) D* '47'X = PARTITION D* '48'X = NODENAME D* '83'X = LOG (BASE 10) (N) D* '84'X = ANTI LOG (BASE 10)(N) D* '85'X = DIGITS (N) D* '86'X = CHAR (L,T,S) D* '8F'X = VARGRAPHIC (C,G) D* '90'X = VARCHAR (C,G) D* '91'X = FLOOR (N) D* - Label duration operators: D* '87'X = Year D* '88'X = Month D* '89'X = Day D* '8A'X = Hour D* '8B'X = Minute D* '8C'X = Second D* '8D'X = Microsecond D* - Operators that require D* two to many operands: D* '28'X = NULL VALUES (A) D* Returns the first D* non-null value. D* '3E'X = CASE Expression (A) D* - Operators that require D* one to many operands: D* '3A'X = HASH D* - Operators that require D* one, or two, operands: D* '33'X = TIMESTAMP D* - Group by operators: D* All require one operand, D* except COUNT, which D* requires no operands. D* 'A1'X = COUNT D* 'A3'X = SUM (N) D* 'A4'X = MINIMUM (A) D* 'A5'X = MAXIMUM (A) D* 'B0'X = AVERAGE (N) D* 'B1'X = STANDARD DEVIATION(N) D* 'B2'X = VARIANCE (N) D*QDBVXNUM 2 D QDBDTFMT00 2 2 D QDBDTSEP00 3 3 D* Translation Table Index D QDBFDVFM 4 4 D* Operator Date Format (DATFMT) D* The format of the date D* operator. D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '31'X, then D* this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Operator Time Format (TIMFMT) D* The format of the time D* operator. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSA 5 5 D* Operator Date Separator D* (DATSEP) D* The separator character to be D* used with the date operator. D* or... D* Operator Time Separator D* (TIMSEP) D* The separator character to be D* used with the time operator. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBFDVNO 6 7B 0 D* Number of Operands D*QDBQOA00 1 D QDBBITS51 8 8 D* QDBRSV9600 1 BIT D* QDBVDTTM00 1 BIT D* QDBR11302 1 BIT D* QDBFDVDF02 1 BIT D* QDBRSV9700 1 BIT D* QDBQC02 1 BIT D* QDBR11500 2 BITS D* Operator attributes D QDBVED98 9 10 D* Reserved D QDBQD00 11 11 D* Specifies the character to use D* for the decimal point, D* if the operation is a CAST and D* one of the operands is numeric D* and the other is character. D* Also used for CHAR operator D* when the first operand is D* a decimal expression. Only D* used for these two operator D* types. D QDBQFD 12 15U 0 D* Offset to function referenced D* information. D* 0 - Reference information not D* given. Use derived operator D* specified above. D* <>0 - function reference section D* is provided. It is located at D* this offset from the beginning D* of this derived entry. D QDBR10100 16 26 D* Reserved D**************************************************************** D* D*This is the function reference information. If the derived D*operator section specifies that a function reference is D*specified, this structure defines that reference. D* D**************************************************************** DQDBQD02 DS D* Defines the structure of a D* function reference. D QDBR120 1 20 D* Reserved D QDBQL 21 30 D* Library name of function D* - x'40's D* Use path to determine D* function. D* - name D* search only specified D* library for function D QDBQN00 31 32U 0 D* Length of function name D QDBQF 33 160 D* Function name D**************************************************************** D* D* DERIVED FIELD DESCRIPTION INFORMATION D* D*The derived field structure is a stack of operators and D*operands in Reverse Polish Notation. For example: D* D* A + B would be: D* D* A B + D* D* ((A * B) + 14)/(X - Y) would be: D* D* A B * 14 + X Y - / D* D*NOTE: Numeric operands and character operands can not be D*mixed in one derived field description. If numeric operands D*are specified, the resulting field attributes must be D*numeric. If character operands are specified, the resulting D*field attributes must be character or DBCS. Character and D*DBCS only fields cannot be mixed in one derived field D*description. D* D*Substringing DBCS fields will be allowed, although the data D*will be treated as character data, i.e. there is no true D*Double-Byte substring support. This applies to query formats D*only. D* D* (QQ) QUERY: Y D**************************************************************** D*This section can be located with the offset Qddfderd, which D*is located in the Field header section. D**************************************************************** DQDBQ57 DS D* Derived Field Information D QDBFDVTL 1 4B 0 D* Length of Derived Field D* Information Qddfderv D QDBVNUME 5 6B 0 D* Number of Derived Field D* Entries. Zero indicates it is D* a concatenated field. D QDBFDVOT 7 10B 0 D* Offset from start of Derived D* field header to derived field D* text description (or to the D* concatenated field text D* description) (Qddfdvtx). D QDBRSV88 11 16 D* Reserved D*QDBFDVEN 17 17 D* D* Derived Field Entry Array D* (varying length) DQDBQ58 DS D* Derived Field Entry D QDBFDVLN 1 4B 0 D* Length of Derived Field Entry D* Qddfdvst D QDBFDTYP 5 6B 0 D* Derived Field Entry Type D* 0 = Field Operand D* 1 = Constant Operand D* 2 = Operator D QDBDFDVT 7 64 D* Field Operand, Constant D* Operand, or Operator Entry D* QDDFDVOFU REDEFINES QDDFDV D QDBFDVON00 7 36 D QDBFDVJR00 37 38B 0 D QDBQ103 39 40B 0 D QDBQ207 41 42B 0 D QDBDTNUM00 43 44B 0 D QDBR50200 45 45 D QDBR50300 46 46 D* QDBFLDF00 1 D QDBBITS86 47 47 D* QDBR50401 2 BITS D* QDBFSIU03 1 BIT D* QDBR50501 5 BITS D QDBRSV8900 48 64 D* Field Operand Entry D* QDDFDVOCU REDEFINES QDDFDV D* QDBFDVOH00 42 D QDBFDVOL01 7 10B 0 D* QDBQCA02 1 D QDBBITS61 11 11 D* QDBFDVCI04 1 BIT D* QDBRSV9004 1 BIT D* QDBFDVCC04 1 BIT D* QDBFDVAC04 1 BIT D* QDBFDVCO04 1 BIT D* QDBFDVSR04 1 BIT D* QDBFDVNL04 1 BIT D* QDBRSV9104 1 BIT D QDBFDVRC01 12 12 D QDBFDVFT01 13 13 D QDBFDVSP01 14 14 D QDBRSV9201 15 16 D QDBFDVCD01 17 18U 0 D* QDBFCFLG01 1 D QDBBITS62 19 19 D* QDBRSV9304 2 BITS D* QDBFGLIT04 1 BIT D* QDBRSV9404 5 BITS D QDBRSV9501 20 48 D QDBFDVOV00 49 49 D* Constant Operand Entry D* QDDFDVOU REDEFINES QDDFDV D QDBFDVOP00 7 7 D* QDBVXNUM00 2 D QDBDTFMT01 8 8 D QDBDTSEP01 9 9 D QDBFDVFM00 10 10 D QDBFDVSA00 11 11 D QDBFDVNO00 12 13B 0 D* QDBQOA01 1 D QDBBITS54 14 14 D* QDBRSV9604 1 BIT D* QDBVDTTM04 1 BIT D* QDBR11303 1 BIT D* QDBFDVDF03 1 BIT D* QDBRSV9704 1 BIT D* QDBQC03 1 BIT D* QDBR11501 2 BITS D QDBVED9800 15 16 D QDBQD01 17 17 D QDBQFD00 18 21U 0 D QDBR10101 22 32 D* Operator Entry D**************************************************************** D* D* DERIVED FIELD TEXT DESCRIPTION D* D**************************************************************** D*This section can be located with the offset Qddfdvot, which D*is located in the Derived field header section. D**************************************************************** DQDBQ59 DS D* Derived Field Text D* Information D* Text description of the D* derived field. D QDBFDVLT 1 2B 0 D* Length of Derived Field Text D* information or concatenated D* field text information. D* (Qddfdvtx) D*QDBFDTXT 3 3 D* D* Derived Field Text D* Description (varying length) D* or concatenated field text D* description. D******************************************************************** D* TRANSLATION TABLE DECLARATIONS D******************************************************************** D** Translation Table Array ********************************** DQDBQ23 DS D* Translation Table Array D QDBFXTNM 1 10 D* Translation Table Name D QDBFXTLN 11 20 D* Translation Table Library D QDBFXCID 21 22U 0 D* Translation Table Constant D* Coded Character Set D* Identifier D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* translation table. D QDBRSV99 23 32 D* Reserved D QDBFXTBL 33 288 D* Translation Table D**************************************************************** D* D* TRANSLATE TABLE SPECIFICATION. D* D**************************************************************** D*This section can be located with the offset Qddfxlto, which D*is located in the FMTD header section. D**************************************************************** DQDBQ60 DS D* Translation Table Information D QDBXLNUM 1 2B 0 D* Number of Elements In The D* Translation Table Array D*QDBFXARR 288 D QDBFXTNM00 3 12 D QDBFXTLN00 13 22 D QDBFXCID00 23 24U 0 D QDBRSV9900 25 34 D QDBFXTBL00 35 290 D* Translation Table Array D************************************************************** D* D*This is the CASE Selection specification table. If this D*specification exists it will be found after all the field D*definitions using offset Qddfrcao. D* D************************************************************** DQDBDFCSL DS D* This structure contains the D* CASE Selection specification D* table information D QDBCSNUM 1 2B 0 D* Number of selection D* specifications. D QDBDFCLN 3 6B 0 D* Length of this table plus the D* the length of all selection D* specifications D QDBERVED06 7 16 D* Reserved D QDBDFCAO 17 412B 0 DIM(00099) D* Offset to the selection D* specifications. Offset is from D* the beginning of Qdb_Qddfcsl. D* For the selection specs D* see QDBQS_T in QQQQRY D******************************************************************** D* IDDU DICTIONARY DECLARATIONS D******************************************************************** D** Format Definition Long *********************************** DQDBQ24 DS D* Format Definition Long D* Comment Information D QDBFDILT 1 2B 0 D* Length of Format Definition D* Long Comment Information D* Qddfdilt D*QDBFDITX 3 3 D* D* Format Definition Long D* Comment (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY FORMAT INFORMATION. D* D**************************************************************** D*This section can be located with the offset Qddfdico, which D*is located in the FMTD header section. D**************************************************************** DQDBQ61 DS D* IDDU/SQL Dictionary Record D* Format Information D QDBR100 1 32 D* Reserved D*QDBFDICM 3 D QDBFDILT00 33 34B 0 D QDBFDITX00 35 35 D* Format Definition Long D******************************************************************** D* Record Structure for QDBRTVFD FILD0300 format D******************************************************************** D******************************************************************** D* D*Note: Each file may contain multiple record format and each D* format may contain multiple key fields D******************************************************************** D******************************************************************** D*The following structure contains record format information and D*can appears multiple times depending on the number of record D*formats specified for the request file D******************************************************************** DQDBQ62 DS D* Record Key Information D QDBRN 1 10 D* Record Name D QDBRSV101 11 12 D* Reserved D QDBNBROK 13 14B 0 D* Number of Keys D QDBRSV201 15 28 D* Reserved D QDBKIO 29 32B 0 D* Key Information Offset D******************************************************************** D*The following structure provides file level information for the D*request file D******************************************************************** DQDBQ63 DS D* File level information D QDBBR 1 4B 0 D* Bytes Returned D QDBBA 5 8B 0 D* Bytes Available D QDBMKL 9 10B 0 D* Maximum Key Length D QDBKC 11 12B 0 D* Key Count D QDBERVED01 13 22 D* Reserved D QDBFC01 23 24B 0 D* Formats Counts D QDBRKI 32 DIM(00032) D QDBRN00 10 OVERLAY(QDBRKI:00001) D QDBRSV102 2 OVERLAY(QDBRKI:00011) D QDBNBROK00 4B 0 OVERLAY(QDBRKI:00013) D QDBRSV202 14 OVERLAY(QDBRKI:00015) D QDBKIO00 9B 0 OVERLAY(QDBRKI:00029) D* Record Key Information D******************************************************************** D*The following structure maps to the returned key_attr data to D*provide field attributes information D******************************************************************** DQDBQ64 DS D* Qdb Qdbwhkattr D QDBBITS55 1 1 D* QDBNDING 1 BIT D* 0 = the key field is an D* ascending sequence key D* 1 = The key field is a D* decending sequence key D* QDBMERIC 2 BITS D* B'00' = The numberic key field D* will sequence as a D* string of unsigned D* binary data. D* B'01' = The numeric key field D* will ignore the sign of D* the field and sequence D* as absolute value data D* B'10' = The numeric key field D* will consider the signs D* of the field and D* sequence as signed D* value data. D* QDBERVED02 1 BIT D* Reserved D* QDBAC 1 BIT D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field. D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating sequence D* table, then this field is NOT D* applicable. D* QDBFZ 1 BIT D* 0 = The zone portion of the key D* field will NOT be zeroed. D* 1 = The zone portion of the key D* field will be zeroed so D* that only the digit portions D* (farthest right 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBFD 1 BIT D* 0 = The digit portion of the key D* field will NOT be zeroed. D* 1 = The digit portion of the key D* field will be zeroed so D* that only the zone portions D* (farthest left 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBSF 1 BIT D* 0 = The key statement field name D* is an internal record format D* name. D* 1 = The key statement field name D* is an external record format D* name. D******************************************************************** D*The following structure maps to the additional key field D*attributes. D******************************************************************** DQDBQ104 DS D* Qdb Qdbwhkatt1 D QDBBITS66 1 1 D* QDBNV00 1 BIT D* Allow Null Value (ALWNULL) D* 0 = the null value is NOT D* allowed for this field. D* 1 = the null value is allowed D* for this field. D* QDBANE 1 BIT D* Alternative Name Indicator D* 0 = the key field does not have D* an alternative name. D* 1 = the key field has an D* alternative name. This D* will be 1 even if the length D* of the alternative name is D* greater than 30. @AHA D* QDBERVED04 6 BITS D* Reserved. @AHC D******************************************************************** D*The following structure provides key field information for each D*key field in a record format. This structure can appear multiple D*times depending on the number of key fields defined in the D*associated record format D******************************************************************** DQDBQ65 DS D* Qdb Qdbwhkey D QDBIFN 1 10 D* Internal Field Name D QDBEFN 11 20 D* External Field Name D QDBDT01 21 22B 0 D* The data type of the field D* X'0000' = BINARY D* X'0001' = FLOAT D* X'0002' = ZONED DECIMAL D* X'0003' = PACKED DECIMAL D* X'0004' = CHARACTER D* X'8004' = VAR CHARACTER D* X'0005' = GRAPHIC D* X'8005' = VAR GRAPHIC D* X'0006' = DBCS CAPABLE D* X'8006' = VAR DBCS-CAPABLE D* X'000B' = DATE D* X'000C' = TIME D* X'000D' = TIMESTAMP D QDBFL 23 24B 0 D* Field Length D QDBNBROD 25 26B 0 D* Number of Digits D* - For numeric fields, this is D* the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (This field is applicable only D* to numeric and graphic fields) D* D QDBDP 27 28B 0 D* Decimal Position D*QDBKA 1 D QDBBITS56 29 29 D* QDBNDING00 1 BIT D* QDBMERIC00 2 BITS D* QDBERVED03 1 BIT D* QDBAC00 1 BIT D* QDBFZ00 1 BIT D* QDBFD00 1 BIT D* QDBSF00 1 BIT D* Key Attributes D QDBANL 30 31B 0 D* Alternate Name Length D QDBAN 32 61 D* Alternate Name D QDBRSV103 62 62 D* Reserved D*QDBW1 1 D QDBBITS67 63 63 D* QDBNV01 1 BIT D* QDBANE00 1 BIT D* QDBERVED05 6 BITS D* Additional Key Attributes D QDBRSV203 64 64 D* Reserved D******************************************************************** D* Record Structure for QDBRTVFD FILD0400 format D******************************************************************** D* ----------------------------------------------- D* | | D* | TRIGGER SPACE HEADER | D* | fixed length | D* | | D* | Total £ of trigger entries | D* | | D* +---| Offset to first trigger entry | D* | | | D* | | £ of SQL Trigger entries | D* | | £ of System entries | D* | | £ of INSERT/BEFORE Trigger entries | D* | | £ of INSERT/AFTER Trigger entries | D* | | £ of DELETE/BEFORE Trigger entries | D* | | £ of DELETE/AFTER Trigger entries | D* | | £ of UPDATE/BEFORE Trigger entries | D* | | £ of UPDATE/AFTER Trigger entries | D* | | £ of READ/AFTER Trigger entries | D* | | £ of INSERT/INSTEADOF Trigger entries | D* | | £ of DELETE/INSTEADOF Trigger entries | D* | | £ of UPDATE/INSTEADOF Trigger entries | D* | | | D* +-->|---------------------------------------------| D* | Trigger Entry £ 1 | D* |---------------------------------------------| D* | Trigger Entry £ 2 | D* |---------------------------------------------| D* | . | D* | . | D* | . | D* |---------------------------------------------| D* | Trigger Entry £ n | D* ----------------------------------------------- D******************************************************************* DQDBQH DS D* Qdb Qdbftrg Head D* Trigger Header Structure @ADA D QDBQBRTN 1 4U 0 D* Qdb Qdbftrg Bytes Returned D* Bytes Returned @ADA D QDBQBA 5 8U 0 D* Qdb Qdbftrg Bytes Avail D* Bytes Available @ADA D QDBQRSV1 9 60 D* Qdb Qdbftrg Reserved1 D* Reserved. @ADA D QDBQNBRT 61 64U 0 D* Qdb Qdbftrg Num Trgs D* Number of trigger definitions. D* @ADA D QDBQRSV2 65 72 D* Qdb Qdbftrg Reserved2 D* Reserved. @ADA D QDBQOEN1 73 76U 0 D* Qdb Qdbftrg Off Ent Num1 D* Offset to first entry. @ADA D QDBQOIG 77 80U 0 D* Qdb Qdbftrg Off Ins Grp D* Offset to the beginning of D* the insert group. D* 0 => Either no INSERT D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQOUG 81 84U 0 D* Qdb Qdbftrg Off Upd Grp D* Offset to the beginning of D* the update group. D* 0 => Either no UPDATE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQODG 85 88U 0 D* Qdb Qdbftrg Off Del Grp D* Offset to the beginning of D* the delete group. D* 0 => Either no DELETE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQORG 89 92U 0 D* Qdb Qdbftrg Off Read Grp D* Offset to the beginning of D* the read group. D* 0 => Either no READ D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. @ADA D* D QDBQR36 93 120 D* Qdb Qdbftrg Reserved36 D* Reserved. @ADA D QDBQNST 121 124U 0 D* Qdb Qdbftrg Num Sql Trgs D* Number of SQL Triggers @ADA D QDBQNNT 125 128U 0 D* Qdb Qdbftrg Num Ntv Trgs D* Number of system Triggers @ADA D QDBQNIT 129 132U 0 D* Qdb Qdbftrg Num Insb Trg D* Number of Insert/Before D* triggers @ADA D QDBQNIT00 133 136U 0 D* Qdb Qdbftrg Num Insa Trg D* Number of Insert/After D* triggers @ADA D QDBQNDT 137 140U 0 D* Qdb Qdbftrg Num Delb Trg D* Number of Delete/Before D* triggers @ADA D QDBQNDT00 141 144U 0 D* Qdb Qdbftrg Num Dela Trg D* Number of Delete/After D* triggers @ADA D QDBQNUT 145 148U 0 D* Qdb Qdbftrg Num Updb Trg D* Number of Update/Before D* triggers @ADA D QDBQNUT00 149 152U 0 D* Qdb Qdbftrg Num Upda Trg D* Number of Update/After D* triggers @ADA D QDBQNRT 153 156U 0 D* Qdb Qdbftrg Num Reada Trg D* Number of Read/After D* triggers @ADA D QDBQNIT01 157 160U 0 D* Qdb Qdbftrg Num Insi Trg D* Number of Insert/Instead OF D* triggers @0DA D QDBQNDT01 161 164U 0 D* Qdb Qdbftrg Num Deli Trg D* Number of Delete/Instead OF D* triggers @0DA D QDBQNUT01 165 168U 0 D* Qdb Qdbftrg Num Updi Trg D* Number of Update/Instead OF D* triggers @0DA D QDBQRSV3 169 704 D* Qdb Qdbftrg Reserved3 D* Reserved @0DC D******************************************************************** D*The following structure provides header information for the D*trigger definition. It can appear multiple times depending on D*the number of triggers defined for the file D******************************************************************** D* Trigger Entry - Variable Length D* ----------------------------------------------- D* | | D* | TRIGGER DEFINITION HEADER - Fixed Length | D* | | D* | Total length of this trigger definition. | D* | This length plus the offset to this | D* | trigger definition header will get | D* | addressability to the next trigger | D* | definition. | D* | | D* | Length of the trigger definition header. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Trigger attributes | D* | - TYPE - System or SQL | D* | - ORIENTATION - Column, Row, Statement | D* | - TIME - Before/After | D* | - EVENT - Insert/Update/Delete/Read | D* | - STATE - Enabled/Disabled | D* | | D* | Trigger program name and library | D* | | D* | Offsets to appended trigger areas for | D* | this trigger definition. These offsets | D* | are relative to the beginning of this | D* | trigger definition header. | D* | - Trigger name area | D* | - SQL Path area | D* | - List of Update Columns | D* | - List of WHEN Referenced Columns | D* | - List of BODY Referenced Columns | D* | - List of Dependent Objects area | D* | - Transition area | D* | - SQL Trigger STMT area | D* | - Trigger Text | D* | | D* | NOTE: A SYSTEM TRIGGER will have a | D* | trigger header and a | D* | trigger name area. The text section | D* | can only be added via the COMMENT | D* | ON SQL statement and is therefore | D* | optional. All other sections are | D* | not applicable to a system trigger. | D* | | D* | An SQL TRIGGER may have all of the | D* | above structures with the following | D* | restrictions/dependencies: | D* | 1 - The trigger definition header, | D* | the trigger name area, the SQL | D* | path, and the SQL trigger STMT | D* | are all required. | D* | 2 - Only an SQL trigger with an | D* | Update event will have a list of | D* | update columns. | D* | 3 - The list of WHEN columns, the | D* | list of BODY columns, the list | D* | of dependent objects, and the | D* | transition area are optional. | D* | More correctly, they are | D* | dependent on if there is any | D* | of that type of information to | D* | be included in the trigger | D* | definition entry. | D* | 4 - The text section can only be | D* | added via the COMMENT ON SQL | D* | statement and is therefore | D* | optional. | D* | | D* |---------------------------------------------| D* | | D* | TRIGGER NAME AREA - Fixed Length | D* | | D* | Length of the TRIGGER NAME AREA. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Library name | D* | Trigger name - fixed length | D* | | D* |---------------------------------------------| D* | | D* | SQL PATH AREA - Variable Length | D* | | D* | Length of the SQL PATH Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* |---------------------------------------------| D* | | D* | LIST OF UPDATE COLUMNS AREA - Var Length | D* | This is the list of the columns specified | D* | for an Update event trigger. | D* | | D* | Length of the LIST OF UPDATE COLUMNS Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in List | D* | Array of Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF WHEN COLUMNS AREA | D* | Variable length. | D* | This is the list of the columns in the | D* | WHEN portion of the CREATE TRIGGER | D* | statement. | D* | | D* | Length of the LIST OF WHEN COLUMNS area | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in WHEN List | D* | Array of WHEN Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF BODY COLUMNS AREA | D* | Variable length. | D* | This is the list of the columns in the | D* | BODY portion of the CREATE TRIGGER | D* | statement. | D* | | D* | Length of the LIST OF BODY COLUMNS area | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in BODY List | D* | Array of BODY Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF DEPENDENT OBJECTS AREA - Var Length | D* | | D* | NOTE: This is not the actual list but a | D* | set of offsets into the SQL CREATE | D* | TRIGGER STMT that will position one | D* | to a dependent object. | D* | | D* | Length of the LIST of DEP OBJs Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of objects in List | D* | Array of Object information | D* | - Offsets to dependent object | D* | - Type of object (table, UDT, UDF, etc) | D* | - Attributes (eg library qualified) | D* | | D* | NOTE: All offsets are relative to the | D* | beginning of the CREATE TRIGGER | D* | string located in the TRIGGER SQL | D* | STMT AREA. | D* | | D* |---------------------------------------------| D* | | D* | TRANSITION AREA - Variable Length | D* | | D* | This area contains the old/new correlation | D* | names and the old/new transition | D* | table names that can be used by the action | D* | to reference the affected rows. | D* | | D* | Length of the TRANSITION Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Old Correlation variable name | D* | New Correlation variable name | D* | Old Transition Table name | D* | New Transition Table name | D* | | D* |---------------------------------------------| D* | | D* | SQL TRIGGER STMT AREA - Variable Length | D* | | D* | Length of the SQL TRIGGER STMT Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Length of the SQL CREATE TRIGGER STMT | D* | Length of the SQL WHEN CLAUSE | D* | Offset to the SQL WHEN CLAUSE relative to | D* | the start of the SQL CREATE TRIGGER STMT | D* | Length of the SQL TRIGGER BODY | D* | Offset to the SQL TRIGGER BODY relative to | D* | the start of the SQL CREATE TRIGGER STMT | D* | SQL CREATE TRIGGER STMT | D* | | D* |---------------------------------------------| D* | | D* | SQL TRIGGER TEXT AREA - Variable Length | D* | | D* | Length of the SQL TRIGGER TEXT Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Length of the SQL TEXT | D* | SQL TRIGGER TEXT | D* | | D* | NOTE: The text for a trigger can only be | D* | added via the COMMENT ON Statement. | D* | | D* ----------------------------------------------- D* D* D******************************************************************* D******************************************************************** D*This section can be located using offset Qdb_qdbftrg_off_ent_£1 D******************************************************************** DQDBQDH DS D* Qdb Qdbftrg Def Head D* Trigger definition header D* @ADA D QDBQRSV4 1 20 D* Qdb Qdbftrg Reserved4 D* Reserved. @ADA D QDBQDL 21 24U 0 D* Qdb Qdbftrg Def Len D* Length of the trigger D* definition entry. D* This includes all structures. D* NOTE: This length will also D* include any padding needed D* to get a length divisable by D* 16. This is done in order to D* get the next trigger D* definition entry on a 16 byte D* boundary. D* D* @ADA D QDBQHL 25 28U 0 D* Qdb Qdbftrg Head Len D* Length of the trigger D* definition header - D* Qdb_qdbftrg_def_head @ADA D QDBQRSV5 29 80 D* Qdb Qdbftrg Reserved5 D* Reserved @ADA D QDBQDP00 81 90 D* Qdb Qdbftrg Def Pgm D* Trigger program name @ADA D QDBQDL00 91 100 D* Qdb Qdbftrg Def Lib D* Trigger program library @ADA D QDBQRSV6 101 104 D* Qdb Qdbftrg Reserved6 D* Reserved @ADA D QDBQDON 105 108U 0 D* Qdb Qdbftrg Def Ord Num D* Trigger ordinal number. @ADA D QDBQDS 109 109 D* Qdb Qdbftrg Def State D* Trigger state. @ADA D* 'E' = Enabled D* 'D' = Disabled D* Value restricted to enabled. D* Disabled is not yet supported. D* D QDBQDO 110 110 D* Qdb Qdbftrg Def Operative D* Trigger is operative. @ADA D* 'O' = Operative Trigger. D* 'I' = Inoperative Trigger. D* D* An Operative trigger indicates D* the trigger can be fired. D* An Inoperative trigger cannot D* be fired. D* D QDBQDT 111 111 D* Qdb Qdbftrg Def Type D* Trigger type D* 'N' = Native/System (added D* using ADDPFTRG) D* 'S' = SQL (added using CREATE D* TRIGGER) @ADA D QDBQDM 112 112 D* Qdb Qdbftrg Def Mode D* Trigger mode. @ADA D* Used only when the trigger D* type QDBFTRG_DEF_TYPE is set D* to an SQL trigger. D* The mode is used to determine D* the I/O model used during D* the trigger program D* execution. D* '00'X = Not applicable. D* '01'X = DB2 SQL. D* '02'X = DB2 Row. D QDBQDO00 113 113 D* Qdb Qdbftrg Def Orient D* Trigger orientation D* 'R' = Row trigger D* 'C' = Column trigger @ADA D QDBQDT00 114 114 D* Qdb Qdbftrg Def Time D* Trigger time D* '1' = After D* '2' = Before @ADA D* '3' = Instead Of D QDBQDE 115 115 D* Qdb Qdbftrg Def Event D* Trigger event D* '1' = Insert D* '2' = Delete D* '3' = Update D* '4' = Read @ADA D QDBQRSV7 116 160 D* Qdb Qdbftrg Reserved7 D* Reserved @ADA D QDBQDOTN 161 164U 0 D* Qdb Qdbftrg Def Off Trg Name D* Offset to the trigger name D* structure. @ADA D QDBQRSV8 165 168U 0 D* Qdb Qdbftrg Reserved8 D* Reserved. @ADA D QDBQDOSP 169 172U 0 D* Qdb Qdbftrg Def Off Sql Path D* Offset to the SQL path. @ADA D QDBQDOUC 173 176U 0 D* Qdb Qdbftrg Def Off Upd Cols D* Offset to the update columns D* structure. @ADA D QDBQDOWC 177 180U 0 D* Qdb Qdbftrg Def Off When Col D* Offset to the structure D* containing the list of D* columns referenced in the D* WHEN condition. @ADA D QDBQDOBC 181 184U 0 D* Qdb Qdbftrg Def Off Body Col D* Offset to the structure D* containing the list of D* columns referenced in the D* trigger body. @ADA D QDBQDODO 185 188U 0 D* Qdb Qdbftrg Def Off Dep Objs D* Offset to the structure D* containing the list of D* dependent objects referenced D* in the trigger body. @ADA D QDBQDOT 189 192U 0 D* Qdb Qdbftrg Def Off Transiti D* Offset to the structure D* containing the transition D* tables. @ADA D QDBQDOTS 193 196U 0 D* Qdb Qdbftrg Def Off Trg Stmt D* Offset to the structure D* containing the CREATE TRIGGER D* statement. @ADA D QDBQDOTL 197 200U 0 D* Qdb Qdbftrg Def Off Trg Long D* Offset to the structure D* containing the trigger long D* comment area. The long D* comment can only be added D* via the COMMENT ON statement. D* 0 => No Trigger Long Comment. D* @ADA D QDBQRSV9 201 264 D* Qdb Qdbftrg Reserved9 D* Reserved @ADA D QDBQDU 265 265 D* Qdb Qdbftrg Def Updcond D* Trigger update condition. For D* system/native triggers only. D* This field is only valid for D* UPDATE event. This field will D* be ignored for INSERT or D* DELETE or READ events. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. @ADA D QDBQDAR 266 266 D* Qdb Qdbftrg Def Allow Repchg D* Allow repeated change. D* '00'X = *NO (not allowed) D* '01'X = *YES (allows change) D* @ADA D QDBQDT01 267 267 D* Qdb Qdbftrg Def Threadsafe D* Threadsafe indicator. D* X'00' = *UNKNOWN (Threadsafe D* status is not known) D* X'01' = *NO (Not threadsafe) D* X'10' = *YES (Threadsafe) D* @ADA D QDBQDM00 268 268 D* Qdb Qdbftrg Def Multijob D* Multithreaded Job Action D* Indicator D* X'00' = *SYSVAL (default) D* X'01' = *MSG (Run, diagnostic) D* X'10' = *NORUN (Escape) D* X'11' = *RUN (Run, no message) D* @ADA D QDBQDOT00 269 269 D* Qdb Qdbftrg Def Old Tvar D* Old transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDNT 270 270 D* Qdb Qdbftrg Def New Tvar D* New transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDOT01 271 271 D* Qdb Qdbftrg Def Old Ttable D* Old transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDNT00 272 272 D* Qdb Qdbftrg Def New Ttable D* New transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDSR 273 273 D* Qdb Qdbftrg Def Self Ref D* Indicates if this trigger is D* self-referencing. That is, D* did the user explicitly D* specify this file's name in D* the trigger body. D* X'00' => Not self-referencing D* X'01' => Self-referencing D* @ADA D QDBQDCT 274 286 D* Qdb Qdbftrg Def Crt Ts D* Trigger creation timestamp D* @ADA D QDBQDCU 287 296 D* Qdb Qdbftrg Def Crt User D* User profile that created the D* trigger @ADA D QDBQDPO 297 306 D* Qdb Qdbftrg Def Pgm Owner D* User profile that owns the D* trigger program @ADA D* For SQL triggers only D QDBQDTC 307 310U 0 D* Qdb Qdbftrg Def Trg Ccsid D* CCSID that the trigger D* statement was created with. D* @ADA D QDBQR34 311 311 D* Qdb Qdbftrg Reserved34 D* Reserved. @ADA D QDBQDMT 312 312 D* Qdb Qdbftrg Def Mod Tvar D* Indicates if the trigger D* contains a SET statement that D* modifies the new correlation D* variable. D* X'00' = No D* X'01' = Yes D* For SQL Before Update triggers D* only. @ADA D QDBQR10 313 464 D* Qdb Qdbftrg Reserved10 D* Reserved @ADA D******************************************************************** D*The following structure maps the trigger name area D******************************************************************** DQDBQNA DS D* Qdb Qdbftrg name area D QDBQR11 1 20 D* Qdb Qdbftrg Reserved11 D* Reserved. @ADA D QDBQNATL 21 24U 0 D* Qdb Qdbftrg Name Area Tot Le D* Total length of the trigger D* name area. @ADA D QDBQNLL 25 28U 0 D* Qdb Qdbftrg Name Lib Len D* Length of the trigger library D* name. @ADA D QDBQNL 29 32U 0 D* Qdb Qdbftrg Name Len D* Length of the trigger @ADA D* name. D QDBQNS 33 33 D* Qdb Qdbftrg Name Sysgen D* Trigger name generated by D* the system. D* X'00' => User GENed name. D* X'01' => Originally, user D* GENed name but D* collision occured D* and system Re-GENed D* the name. D* X'02' => System GENed name. D* @ADA D QDBQND 34 34 D* Qdb Qdbftrg Name Delim D* Trigger name is a delimited D* name. If a delimited name, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* @ADA D QDBQLD 35 35 D* Qdb Qdbftrg Lib Delim D* Trigger library is a delimited D* name. If delimited, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* @ADA D QDBQNT 36 36 D* Qdb Qdbftrg Name Type D* Trigger naming convention. D* X'00' => System naming. D* X'01' => SQL naming. @ADA D QDBQR12 37 94 D* Qdb Qdbftrg Reserved12 D* Reserved @ADA D QDBQNQ 95 362 D* Qdb Qdbftrg Name Qual D* Qualified trigger name. D* The trigger name and library D* are in 2 parts. D* The first part contains the D* trigger library name (10 D* characters). D* The second part contains the D* trigger name (258 characters). D* Qdb_Qdbftrg_Name_Len contains D* the length of the trigger D* name. D* D* The trigger name may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Name_Delim D* indicates whether it is D* delimited. If it is D* delimited, the the name in D* this field does contain D* double quotes. D* D* The trigger library may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Lib_Delim D* indicates whether it is D* delimited. @ADA D******************************************************************** D*The following structure maps the SQL path structure D******************************************************************** DQDBQPA DS D* Qdb Qdbftrg Path Area D QDBQR13 1 20 D* Qdb Qdbftrg Reserved13 D* Reserved. @ADA D QDBQPTL 21 24U 0 D* Qdb Qdbftrg Path Tot Len D* Length of the trigger path D* area. @ADA D QDBQPL 25 28U 0 D* Qdb Qdbftrg Path Len D* Length of the path structure. D* @ADA D QDBQR14 29 64 D* Qdb Qdbftrg Reserved14 D* Reserved @ADA D*QDBQP 65 65 D* D* SQL Path (varying length). D* @ADA D******************************************************************* D* D*List of Update Columns D* D*This is the list of columns specified for an Update trigger. D*The columns in this list must be present in the file's record D*format. The list will contain both the short and long column D*names. D* D*A seperate structure will be used to reference the column D*names since the long name can be variable length. D* D*NOTE: Each column entry name is unique. There will not be any D* duplicate name entries. D* D******************************************************************* D******************************************************************* D*The following structure maps the UPDATE columns list entry D******************************************************************* DQDBFQULE DS D* Qdbf Qdbftrg Updc List Ent D QDBQULL 1 4U 0 D* Qdb Qdbftrg Updc Le Len D* List Entry Length. D* Addressability to this entry D* plus this length gets D* addressability to the next D* column list entry. @ADA D* D QDBQULSN 5 14 D* Qdb Qdbftrg Updc Le Short Na D* Short name of the column. D* @ADA D QDBQULSD 15 15 D* Qdb Qdbftrg Updc Le Short De D* Short name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQULLD 16 16 D* Qdb Qdbftrg Updc Le Long Del D* Long name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQULLS 17 17 D* Qdb Qdbftrg Updc Le Long Sam D* Short name and long name are D* the same. D* X'00' => Names are different. D* X'01' => Names are the same. D* @ADA D QDBQULLL 18 21U 0 D* Qdb Qdbftrg Updc Le Long Len D* Length of the long name - D* qdbfTRG_UPDC_LE_LONG_NAME D* @ADA D QDBQR17 22 48 D* Qdb Qdbftrg Reserved17 D* Reserved @ADA D*QDBQULLN 49 49 D* Qdb Qdbftrg Updc Le Long Nam D* D* Long name of the column D* (varying length). D* @ADA D* D******************************************************************** D*The following structure maps the UPDATE columns structure D******************************************************************** DQDBQUA DS D* Qdb Qdbftrg Updc Area D QDBQR15 1 20 D* Qdb Qdbftrg Reserved15 D* Reserved. @ADA D QDBQUTL 21 24U 0 D* Qdb Qdbftrg Updc Tot Len D* Length of the update columns D* area. @ADA D QDBQUNC 25 28U 0 D* Qdb Qdbftrg Updc Num Cols D* Number of columns in the list. D* @ADA D QDBQR16 29 80 D* Qdb Qdbftrg Reserved16 D* Reserved @ADA D*QDBQULS 81 81 D* Qdb Qdbftrg Updc List Struc D* D* Update column list structure D* (varying length). @ADA D******************************************************************** D*List of WHEN Reference Columns D* D*This is the list of the columns in the WHEN portion of the D*CREATE TRIGGER statement. Actually, the name is NOT part of the D*list. Rather, there is an offset to the column name in the WHEN D*statement of the expanded CREATE TRIGGER string. D* D*Each WHEN column entry consists of a set of offsets into the D*CREATE TRIGGER expanded string. The following is an example D*of the offsets. D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* SQL will generate correlation variables X and Y. D* D* If the user codes the following: D* D* CREATE TRIGGER ... D* AFTER INSERT ON T1 ... D* WHEN(COL1 = COL2) ... D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* AFTER INSERT ON LIB1.T1 X ... D* WHEN(X.COL1 = X.COL2) ... D* D* The correlation variable X is used to qualify the D* column names with the library and file. The table in D* the expanded string are qualified with the library D* name. D* D* The list entries will have offsets into the expanded D* CREATE TRIGGER string. D* D* --------------------- D* | WHEN entry 1 | D* | Offset to col ----|--------------+ D* | Offset to file ---|--------+ | D*+------| Offset to lib | | | D*| |-------------------| | | D*| | WHEN entry 2 | | | D*| | Offset to col ----|--------|-----|--------+ D*| | Offset to file ---|----+ | | | D*| +--| Offset to lib | | | | | D*| | --------------------- | | | | D*| | | | | | D*| | | | | | D*+-->+---------------+ +------+<--+ | | D* | | | | D*CREATE TRIGGER string V V V V D*---------------------------------------------------------------- D*| ... AFTER INSERT ON LIB1.T1 X ... WHEN(X.COL1 = X.COL2) ... | D*---------------------------------------------------------------- D* D*NOTE: The list of WHEN columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the WHEN columns array entry D******************************************************************** DQDBQWA DS D* Qdb Qdbftrg When Array D QDBQWCO 1 4U 0 D* Qdb Qdbftrg When Col Off D* WHEN column name offset into D* the WHEN portion of the CREATE D* TRIGGER statement. @ADA D QDBQWCL 5 8U 0 D* Qdb Qdbftrg When Col Len D* WHEN column name length. @ADA D QDBQWFO 9 12U 0 D* Qdb Qdbftrg When File Off D* Offset to the column's file D* name. @ADA D QDBQWFL 13 16U 0 D* Qdb Qdbftrg When File Len D* Length of the column's file D* name in the trigger string. D* @ADA D QDBQWLO 17 20U 0 D* Qdb Qdbftrg When Lib Off D* Offset to the column's file D* library name. @ADA D QDBQWLL 21 24U 0 D* Qdb Qdbftrg When Lib Len D* Length of the column's file D* library name. @ADA D QDBQW1E 25 25 D* Qdb Qdbftrg When 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. @ADA D QDBQWTF 26 26 D* Qdb Qdbftrg When This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* @ADA D QDBQWCL00 27 27 D* Qdb Qdbftrg When Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWCD 28 28 D* Qdb Qdbftrg When Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQWFL00 29 29 D* Qdb Qdbftrg When File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWFD 30 30 D* Qdb Qdbftrg When File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQWLL00 31 31 D* Qdb Qdbftrg When Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWLD 32 32 D* Qdb Qdbftrg When Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR20 33 64 D* Qdb Qdbftrg Reserved20 D* Reserved @ADA D******************************************************************** D*The following structure maps the WHEN columns structure D******************************************************************** DQDBQWA00 DS D* Qdb Qdbftrg When Area D QDBQR18 1 20 D* Qdb Qdbftrg Reserved18 D* Reserved. @ADA D QDBQWTL 21 24U 0 D* Qdb Qdbftrg When Tot Len D* Length of the WHEN D* referenced columns area. @ADA D QDBQWNC 25 28U 0 D* Qdb Qdbftrg When Num Cols D* Number of columns in the list. D* @ADA D QDBQWSR 29 29 D* Qdb Qdbftrg When Self Ref D* Indicates columns in the D* WHEN list belong to this file. D* That is, this is a self- D* referencing dependency. D* X'00' => All self-referencing. D* All columns belong D* to the ON table. D* X'01' => Self-referencing. D* Some of the columns D* belong to the ON D* table. D* X'02' => Not self-referencing. D* None of the columns D* belong to the ON D* table. D* D QDBQR19 30 80 D* Qdb Qdbftrg Reserved19 D* Reserved @ADA D*QDBQWA01 64 D* Qdb Qdbftrg When Array D QDBQWCO00 81 84U 0 D* Qdb Qdbftrg When Col Off D QDBQWCL01 85 88U 0 D* Qdb Qdbftrg When Col Len D QDBQWFO00 89 92U 0 D* Qdb Qdbftrg When File Off D QDBQWFL01 93 96U 0 D* Qdb Qdbftrg When File Len D QDBQWLO00 97 100U 0 D* Qdb Qdbftrg When Lib Off D QDBQWLL01 101 104U 0 D* Qdb Qdbftrg When Lib Len D QDBQW1E00 105 105 D* Qdb Qdbftrg When 1st Entry D QDBQWTF00 106 106 D* Qdb Qdbftrg When This File D QDBQWCL02 107 107 D* Qdb Qdbftrg When Col Long D QDBQWCD00 108 108 D* Qdb Qdbftrg When Col Del D QDBQWFL02 109 109 D* Qdb Qdbftrg When File Long D QDBQWFD00 110 110 D* Qdb Qdbftrg When File Del D QDBQWLL02 111 111 D* Qdb Qdbftrg When Lib Long D QDBQWLD00 112 112 D* Qdb Qdbftrg When Lib Del D QDBQR2000 113 144 D* Qdb Qdbftrg Reserved20 D* WHEN column list array. @ADA D******************************************************************** D*The following structure maps the BODY columns structure D* D*List of Columns referenced in the BODY D* D*This is the list of the columns in the BODY portion of the D*CREATE TRIGGER statement. D* D*The columns in this list may be in this file or another file. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* column name in the BODY. D* D* See the WHEN columns prologue for an example of how D* column entry offsets are tied to the CREATE TRIGGER string. D* D*NOTE: The list of BODY columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the BODY column array entry D******************************************************************** DQDBQBA00 DS D* Qdb Qdbftrg Body Array D* Individual BODY Column Entry. D* Note: This structure does D* not contain the name of a D* column in the trigger body, D* but an offest into the D* trigger body where the D* column is referenced. D* Each entry is 64 bytes long. D* @ADA D QDBQBCO 1 4U 0 D* Qdb Qdbftrg Body Col Off D* BODY Column Name offset into D* the BODY portion of the D* CREATE TRIGGER statement. @ADA D QDBQBCL 5 8U 0 D* Qdb Qdbftrg Body Col Len D* Length of the column name in D* the trigger string. @ADA D QDBQBFO 9 12U 0 D* Qdb Qdbftrg Body File Off D* Offset to the column's file D* name. @ADA D QDBQBFL 13 16U 0 D* Qdb Qdbftrg Body File Len D* Length of the column's file D* name in the trigger string. D* @ADA D QDBQBLO 17 20U 0 D* Qdb Qdbftrg Body Lib Off D* Offset to the column's library D* name. @ADA D QDBQBLL 21 24U 0 D* Qdb Qdbftrg Body Lib Len D* Length of the column's library D* name in the trigger string. D* @ADA D QDBQB1E 25 25 D* Qdb Qdbftrg Body 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. @ADA D QDBQBTF 26 26 D* Qdb Qdbftrg Body This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* @ADA D QDBQBCL00 27 27 D* Qdb Qdbftrg Body Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBCD 28 28 D* Qdb Qdbftrg Body Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQBFL00 29 29 D* Qdb Qdbftrg Body File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBFD 30 30 D* Qdb Qdbftrg Body File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQBLL00 31 31 D* Qdb Qdbftrg Body Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBLD 32 32 D* Qdb Qdbftrg Body Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR23 33 64 D* Qdb Qdbftrg Reserved23 D* Reserved area-future use. @ADA D******************************************************************** D*The following structure maps the BODY columns structure D******************************************************************** DQDBQBA01 DS D* Qdb Qdbftrg Body Area D QDBQR21 1 20 D* Qdb Qdbftrg Reserved21 D* Reserved. @ADA D QDBQBTL 21 24U 0 D* Qdb Qdbftrg Body Tot Len D* Total length of the list of D* WHEN reference columns D* substructure D* Qdb_qdbftrg_body_area. @ADA D QDBQBNC 25 28U 0 D* Qdb Qdbftrg Body Num Cols D* Number of columns in the list. D* 0 = No columns in the list. D* @ADA D QDBQBSR 29 29 D* Qdb Qdbftrg Body Self Ref D* Indicates columns in the D* BODY list belong to this file. D* That is, this is a self- D* referencing dependency. @ADA D* X'00' => All self-referencing. D* X'01' => Some self-referencing D* X'10' => Not self-referencing. D QDBQR22 30 80 D* Qdb Qdbftrg Reserved22 D* Reserved. @ADA D*QDBQBA02 64 D* Qdb Qdbftrg Body Array D QDBQBCO00 81 84U 0 D* Qdb Qdbftrg Body Col Off D QDBQBCL01 85 88U 0 D* Qdb Qdbftrg Body Col Len D QDBQBFO00 89 92U 0 D* Qdb Qdbftrg Body File Off D QDBQBFL01 93 96U 0 D* Qdb Qdbftrg Body File Len D QDBQBLO00 97 100U 0 D* Qdb Qdbftrg Body Lib Off D QDBQBLL01 101 104U 0 D* Qdb Qdbftrg Body Lib Len D QDBQB1E00 105 105 D* Qdb Qdbftrg Body 1st Entry D QDBQBTF00 106 106 D* Qdb Qdbftrg Body This File D QDBQBCL02 107 107 D* Qdb Qdbftrg Body Col Long D QDBQBCD00 108 108 D* Qdb Qdbftrg Body Col Del D QDBQBFL02 109 109 D* Qdb Qdbftrg Body File Long D QDBQBFD00 110 110 D* Qdb Qdbftrg Body File Del D QDBQBLL02 111 111 D* Qdb Qdbftrg Body Lib Long D QDBQBLD00 112 112 D* Qdb Qdbftrg Body Lib Del D QDBQR2300 113 144 D* Qdb Qdbftrg Reserved23 D* Array used to access the list D* of BODY referenced columns. D* @ADA D******************************************************************* D* D*List of Dependent Objects for the WHEN/BODY clauses. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* dependent object. D* D*NOTE: All offsets in this list are relative to the beginning of D* the CREATE TRIGGER string located in the TRIGGER SQL STMT D* variable Qdb_qdbftrg_stmt_crt_trg. D* D*NOTE: The list of dependent objects will identify all instances D* of an object in the list. That is, there may be multiple D* entries for the same object name. The first entry flag D* can be used to differentiate between the first occurrence D* of an object in the list and subsequent entries. D* D******************************************************************* D******************************************************************** D*The following structure maps the dependent objects array entry D******************************************************************** DQDBFQDA DS D* Qdbf Qdbftrg Depo Array D QDBQDT02 1 2 D* Qdb Qdbftrg Depo Type D* Type of dependent object. D* TB = Table D* PF = Physical File D* VW = View D* LF = Logical File D* IX = Index D* UF = UDF D* UT = UDT D* PR = Procedure D* AL = Alias @ADA D QDBQDO01 3 6U 0 D* Qdb Qdbftrg Depo Off D* Offset to the dependent D* object - relative to the D* beginning of the CREATE D* TRIGGER string D* Qdb_qdbftrg_stmt_crt_trg D* @ADA D QDBQDL01 7 10U 0 D* Qdb Qdbftrg Depo Len D* Length of the dependent D* object's name. @ADA D QDBQDLO 11 14U 0 D* Qdb Qdbftrg Depo Lib Off D* Offset to the qualifying D* library name of the dependent D* object. D* Offset relative from start of D* Qdb_qdbftrg_stmt_crt_trg D* 0 => No qualifying library. D* @ADA D QDBQDLL 15 18U 0 D* Qdb Qdbftrg Depo Lib Len D* Length of the qualifying D* library name of the dependent D* object. D* 0 => No qualifying library. D* @ADA D QDBQD1E 19 19 D* Qdb Qdbftrg Depo 1st Entry D* Indicates if the object name D* is the first in the list of D* entries. Criteria is based on D* object name, library name and D* object type. D* X'00' => Object is 2nd or D* greater occurance D* in the list. D* X'01' => Object is the first D* in the list. @ADA D QDBQDTF 20 20 D* Qdb Qdbftrg Depo This File D* Indicates if the object is D* this FILE. D* X'00' => Object Not THIS FILE. D* X'01' => Object is THIS FILE. D* @ADA D QDBQDOL 21 21 D* Qdb Qdbftrg Depo Obj Long D* Indicates if the object name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQDOD 22 22 D* Qdb Qdbftrg Depo Obj Del D* Indicates if the object name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQDLL00 23 23 D* Qdb Qdbftrg Depo Lib Long D* Indicates if the object's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQDLD 24 24 D* Qdb Qdbftrg Depo Lib Del D* Indicates if the object's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR26 25 64 D* Qdb Qdbftrg Reserved26 D* Reserved. @ADA D******************************************************************** D*The following structure maps the dependent objects area D******************************************************************** DQDBFQDA00 DS D* Qdbf Qdbftrg Depo Area D QDBQR24 1 20 D* Qdb Qdbftrg Reserved24 D* Reserved. @ADA D QDBQDTL 21 24U 0 D* Qdb Qdbftrg Depo Tot Len D* Total length of the list of D* dependent objects D* substructure D* Qdb_qdbftrg_depo_area. @ADA D QDBQDNO 25 28U 0 D* Qdb Qdbftrg Depo Num Off D* Number of dependent object D* offsets in the following D* array. @ADA D QDBQDSR00 29 29 D* Qdb Qdbftrg Depo Self Ref D* Indicates this file is D* referenced at least once D* somewhere in the WHEN or D* BODY. That is, this is a D* self-referencing dependency. D* X'00' => Not self-referencing. D* X'01' => Is self-referencing. D* @ADA D QDBQR25 30 80 D* Qdb Qdbftrg Reserved25 D* Reserved. @ADA D*QDBQDA 64 D* Qdb Qdbftrg Depo Array D QDBQDT03 81 82 D* Qdb Qdbftrg Depo Type D QDBQDO02 83 86U 0 D* Qdb Qdbftrg Depo Off D QDBQDL02 87 90U 0 D* Qdb Qdbftrg Depo Len D QDBQDLO00 91 94U 0 D* Qdb Qdbftrg Depo Lib Off D QDBQDLL01 95 98U 0 D* Qdb Qdbftrg Depo Lib Len D QDBQD1E00 99 99 D* Qdb Qdbftrg Depo 1st Entry D QDBQDTF00 100 100 D* Qdb Qdbftrg Depo This File D QDBQDOL00 101 101 D* Qdb Qdbftrg Depo Obj Long D QDBQDOD00 102 102 D* Qdb Qdbftrg Depo Obj Del D QDBQDLL02 103 103 D* Qdb Qdbftrg Depo Lib Long D QDBQDLD00 104 104 D* Qdb Qdbftrg Depo Lib Del D QDBQR2600 105 144 D* Qdb Qdbftrg Reserved26 D* Array used to access the list D* of dependent objects offsets. D* @ADA D******************************************************************* D* D*TRANSITION AREA for OLD/NEW Correlation Variable names and D* OLD/NEW Transistion Table names. D* D*This area contains the old/new correlation variable names and the D*old/new transition table names that can be used by the action to D*reference the affected rows. D* D******************************************************************* DQDBFQTA DS D* Qdbf Qdbftrg Trns Area D* Transition area. @ADA D QDBQR27 1 20 D* Qdb Qdbftrg Reserved27 D* Reserved. @ADA D QDBQTTL 21 24U 0 D* Qdb Qdbftrg Trns Tot Len D* Total length of the transition D* area substructure D* Qdb_qdbftrg_trns_area; @ADA D QDBQTOL 25 28U 0 D* Qdb Qdbftrg Trns Oldvar Len D* Old correlation variable name D* length. @ADA D* 0 => No old transition var. D QDBQTNL 29 32U 0 D* Qdb Qdbftrg Trns Newvar Len D* New correlation variable name D* length. D* 0 => No new correlation var. D* @ADA D QDBQTOL00 33 36U 0 D* Qdb Qdbftrg Trns Oldtbl Len D* Old transition table name D* length. D* 0 => No old transition table. D* @ADA D QDBQTNL00 37 40U 0 D* Qdb Qdbftrg Trns Newtbl Len D* New transition table name D* length. D* 0 => No new transition table. D* @ADA D QDBQTOO 41 44U 0 D* Qdb Qdbftrg Trns Oldvar Off D* Offset to the Old correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old correlation var. D* @ADA D QDBQTNO 45 48U 0 D* Qdb Qdbftrg Trns Newvar Off D* Offset to the New correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition var. D* @ADA D QDBQTOO00 49 52U 0 D* Qdb Qdbftrg Trns Oldtbl Off D* Offset to the Old transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old transition table. D* @ADA D QDBQTNO00 53 56U 0 D* Qdb Qdbftrg Trns Newtbl Off D* Offset to the New transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition table. D* @ADA D QDBQTOD 57 57 D* Qdb Qdbftrg Trns Oldvar Del D* Old correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTND 58 58 D* Qdb Qdbftrg Trns Newvar Del D* New correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTOD00 59 59 D* Qdb Qdbftrg Trns Oldtbl Del D* Old transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTND00 60 60 D* Qdb Qdbftrg Trns Newtbl Del D* New transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTNL01 61 64U 0 D* Qdb Qdbftrg Trns Names Len D* Total length of the transition D* names in the structure D* Qdb_Qdbftrg_Trns_Names. @ADA D QDBQR28 65 112 D* Qdb Qdbftrg Reserved28 D* Reserved. @ADA D*QDBQTN 113 113 D* Qdb Qdbftrg Trns Names D* D* Old/new transition @ADA D* variable/table names reside D* here. See offsets for D* substringing the names D* (varying length). @ADA D* @ADA D******************************************************************* D* D*SQL TRIGGER STMT AREA D* D*NOTE: This is the complete CREATE TRIGGER statement and expanded D* to include library information. D* D*NOTE: All offsets are relative to the beginning of the CREATE D* TRIGGER string. D* D*DESIGN NOTE: The expanded string for the CREATE TRIGGER will be D* library qualified for both SQL names and system names. D* That is, for those object names not library qualified, D* one will be added before the object name. All names D* (short, long, delimited, non-delimited) will be left as D* the user specified them. D* D* The design point will be to store the image of what the D* user defined but with all names library qualified. D* D* For column names, correlation variables will be used D* for each column to qualify the names. D* D* For example: D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* Given Table T2 in LIB2 with columns COL3 and COL4 D* SQL will generate correlation variables X and Y D* D* If the user codes the following: D* D* CREATE TRIGGER ... SELECT * FROM T1, T2 WHEN COL1 = 10 D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* SELECT X.COL1, X.COL2, Y.COL3, Y.COL4 D* FROM LIB1.T1 X, LIB2.T2 Y D* WHEN X.COL1 = 10 D* D* The correlation variables X and Y are used to qualify D* the column names with the library and file. The tables D* in the expanded string are qualified with the library D* name. D* D******************************************************************* DQDBQSA DS D* Qdb Qdbftrg Stmt Area D* SQL Trigger statement area. D* @ADA D QDBQR29 1 20 D* Qdb Qdbftrg Reserved29 D* Reserved. @ADA D QDBQSTL 21 24U 0 D* Qdb Qdbftrg Stmt Tot Len D* Total length of the SQL D* Trigger statement area - D* substructure D* Qdb_Qdbftrg_Stmt_Area. @ADA D QDBQSOO 25 28U 0 D* Qdb Qdbftrg Stmt Onfile Off D* Offset to the user specified D* file/table name in the D* CREATE TRIGGER STMT. D* This is the ON table-name D* that specifies the table D* the trigger is being added D* to. See the prologue of this D* structure for the layout of D* the data. @ADA D* D QDBQSOL 29 32U 0 D* Qdb Qdbftrg Stmt Onfile Len D* Length of the qualified D* library.file name of the D* ON file/table name. This is D* not the MAX length but the D* actual lenght of the name. D* This name also takes into D* accout the period seperator. D* @ADA D QDBQSOD 33 33 D* Qdb Qdbftrg Stmt Onfile Del D* The ON table/file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQSOD00 34 34 D* Qdb Qdbftrg Stmt Onlib Del D* The ON table-file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQSOL00 35 35 D* Qdb Qdbftrg Stmt Onfile Long D* The ON table-file name is D* a long name. D* X'00' => Name not long name. D* X'01' => Name is a long name. D* @ADA D QDBQR30 36 36 D* Qdb Qdbftrg Reserved30 D* Reserved. @ADA D QDBQSCTL 37 40U 0 D* Qdb Qdbftrg Stmt Crt Trg Len D* Length of the SQL CREATE D* TRIGGER string in variable D* Qdb_Qdbftrg_stmt_crt_trg @ADA D QDBQSWL 41 44U 0 D* Qdb Qdbftrg Stmt When Len D* Length of the WHEN clause D* for the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSWO 45 48U 0 D* Qdb Qdbftrg Stmt When Off D* Offset to the WHEN clause D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D* This offset is relative to D* the beginning of variable D* WDBFTRG_STMT_CRT_TRG D QDBQSBL 49 52U 0 D* Qdb Qdbftrg Stmt Body Len D* Length of the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSBO 53 56U 0 D* Qdb Qdbftrg Stmt Body Off D* Offset to the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg D* This offset is relative to D* the beginning of variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSR31 57 112 D* Qdb Qdbftrg Stmt Reserved31 D* Reserved. @ADA D*QDBQSCT 113 113 D* Qdb Qdbftrg Stmt Crt Trg D* D* SQL CREATE TRIGGER string D* (varying length). @ADA D******************************************************************* D* D*SQL TRIGGER LONG COMMENT AREA D* D*NOTE: The Trigger Long comment can only be added via the D* COMMENT ON SQL statement. D* D******************************************************************* DQDBQLA DS D* Qdb Qdbftrg Long Area D* SQL Trigger Long Comment area. D* @ADA D QDBQR32 1 20 D* Qdb Qdbftrg Reserved32 D* Reserved. @ADA D QDBQLTL 21 24U 0 D* Qdb Qdbftrg Long Tot Len D* Total length of the SQL D* Trigger long comment area D* substructure D* Qdb_qdbftrg_long_area @ADA D QDBQLL 25 28U 0 D* Qdb Qdbftrg Long Len D* Length of the Trigger Long D* comment area which is located D* in variable D* Qdb_qdbftrg_long_comment @ADA D QDBQLC 29 30U 0 D* Qdb Qdbftrg Long Ccsid D* Text CCSID. @ADA D QDBQR33 31 64 D* Qdb Qdbftrg Reserved33 D* Reserved. @ADA D*QDBQLC00 65 65 D* Qdb Qdbftrg Long Comment D* D* Trigger long comment (varying D* length). @ADA D******************************************************************* D* D*SQL Materialized Query Table Dependency Entry. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section repeats in the dependency array for the number D*of depended-on files (Qdbfmqtd_num_deps) defined in structure D*Qdb_Qdbfmqtd_Head. The first dependency entry follows the D*dependency header Qdb_Qdbfmqtd_Head. Use length Qdbfmqtd_len D*to get to the next dependency entry. D******************************************************************* DQDBFMQTD DS D* SQL Materialized Query Table D* Dependency Entry. D QDBR117 1 16 D* Reserved. D QDBFL00 17 20U 0 D* Length, in bytes, of this D* dependency entry. Use this D* length to get to the next D* entry. D QDBFFIL 21 30 D* Name of depended-on file. D QDBFL01 31 40 D* Name of depended-on file's D* library. D QDBR116 41 96 D* Reserved. D******************************************************************* D* D*SQL Materialized Query Table Dependency Header. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section can be located with the offset Qdbfmqtd_o, which D*is located in the SQL Area, Qdb_Qdbfv. This structure exists D*only if the file is a SQL materialized query table. D******************************************************************* DQDBQH00 DS D* SQL Materialized Query Table D* Dependency Header. D QDBFLS 1 4U 0 D* Qdbfmqt len sum D* Total length, in bytes, of D* the dependency area. This D* includes both the dependency D* header and the dependency D* array. D QDBFNBRD 5 8U 0 D* Qdbfmqt num deps D* Number of file entries in the D* dependency array. D QDBRSV1601 9 64 D* Reserved. D*QDBQA 65 65 D* D* Dependency array. D******************************************************************* D* D*SQL Partitioned Table Header Area. D* D*This section contains information about the files that D*are SQL Partitioned Tables. D* D* D******************************************************************* D*This section can be located with the offset Qdbfoff_sqpt D*This structure exists only if the file is a SQL Partitioned D*Table. D******************************************************************* DQDBQH01 DS D* SQL Partitoned Table D* Header. D QDBFLS00 1 4U 0 D* Qdbfsqpt Len Sum D* Total length, in bytes, of D* the partitioned table area. D* This includes all structures D* that follow. D QDBFSR4 5 8U 0 D* Reserved. D QDBFRH 9 9 D* 'R' = Range Partitioning. D* 'H' = Hash Partitioning. D QDBFL02 10 10 D* 'Y' = Field has long name. D* 'N' = No long name. D QDBFR230 11 240 D* Reserved. D QDBFNBRP 241 244U 0 D* Qdbfsqpt Num Parts D* Number of file partitions. D* This is the number of D* Qdb_Qdbfsqpt_Part structures D* that follow. D QDBFPO 245 248U 0 D* Qdbfsqpt Part Offset D* The offset to the first D* partition. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFHO 249 252U 0 D* Qdbfsqpt Hk Offset D* The offset to the partition D* key structure if hash D* partitioning is specified. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFSR400 253 256U 0 D* Reserved. D QDBFHR4 257 260U 0 D* Reserved. D QDBFFR4 261 264U 0 D* Reserved. D QDBFR88 265 352 D* Reserved. D*QDBQHHA 353 353 D* Qdb Qdbfsqpt head hash array D* D* Header Hash key array. D*QDBQPA00 354 354 D* D* Partition array. D******************************************************************* D* D*SQL Partition Area. D* D*This section contains information about the partitions D*of a Partitioned Table. D* D******************************************************************* D*This section repeats for the number of partitons. D*The next partition can be addressed by the total length of the D*partition. The total length of the partition includes all D*sub-structures that can be included. D* D******************************************************************* DQDBQP00 DS D* SQL Partitioned Table D* Partition Structure. D QDBFPL 1 4U 0 D* Qdbfsqpt Part Len D* Length, in bytes of this D* partition and all sub-structs. D* Use this length to get to the D* next partition. D QDBFPDSN 5 8U 0 D* The partition data D* space number. D QDBFPNBR 9 12U 0 D* The partition number. D QDBFPL00 13 16U 0 D* Qdbfsqpt Pname Len D* Length of the partition name. D QDBFP 17 144 D* Name of the partition. D QDBFMR80 145 224 D* Reserved. D QDBFNBRK 225 228U 0 D* Qdbfsqpt Num Keys D* Number of range keys. D* If the partitioning is range, D* this is the number of range D* key structures that will D* follow. If hash partitioning D* was being done, this value is D* 0. D QDBFRO 229 232U 0 D* Qdbfsqpt Range Offset D* Offset to the first range D* key structure. If hash D* partitioning was being done, D* this value will be 0. D QDBFRSV8 233 240 D* Reserved. D*QDBQRA00 241 241 D* D* Range array. D******************************************************************* D* D*SQL Range Key Area. D* D*This section contains information about the partitions D*range key(s). D* D******************************************************************* D*This section repeats for the number of range keys. D*The next range key structure can be addressed by the total length D*of the range key information. D* D******************************************************************* DQDBQR DS D* SQL Partitioned Table D* Range Key Structure. D QDBFRL 1 4U 0 D* Qdbfsqpt Range Len D* Length, in bytes of this D* structure and all sub-structs. D* Use this length to get to the D* next range key structure. D QDBFR12 5 16 D* Reserved. D QDBFRK 17 26 D* Range key name. D* ******************************* D QDBFRRSV 27 28U 0 D* Qdbfsqpt Range Reserved D* Element. D* ******************************* D QDBFR01 29 29 D* Range minimum value: D* Start value minimum: D* 'Y' = Yes. D* 'N' = No. D QDBFR02 30 30 D* Range maximum value: D* End value maximum: D* 'Y' = Yes. D* 'N' = No. D QDBFR03 31 31 D* Range start value inclusive: D* Start inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR04 32 32 D* Range end value inclusive: D* End inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR15 33 47 D* Reserved. D QDBFR05 48 48 D* Range null option: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR06 49 52U 0 D* Length in bytes of the D* starting range value string. D QDBFR07 53 56U 0 D* Length in bytes of the D* ending range value string. D QDBFRO00 57 60U 0 D* Qdbfsqpt Rstart Offset D* Offset to the D* starting range value string. D QDBFRO01 61 64U 0 D* Qdbfsqpt Rend Offset D* Offset to the D* ending range value string. D QDBFR14 65 78 D* Reserved. D QDBFR08 79 80U 0 D* Qdbfsqpt Rccsid D* Coded Character Set D* Identifier, CCSID, For D* the range start-end D* values string. D*QDBQRSA 81 81 D* D* Start value string. D*QDBQREA 82 82 D* D* End value string. D******************************************************************* D* D*SQL Head Hash Key Area. D* D*This section contains information about the partitions D*hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQHH DS D* Qdb Qdbfsqpt Head Hash D* SQL Partitioned Table D* Header Hash Key Structure. D QDBFHHL 1 4U 0 D* Qdbfsqpt Head Hash Len D* Total length of the header D* and all entries. D QDBFHNK 5 8B 0 D* Qdbfsqpt Head Num Keys D* Total number of keys, D* or entries that follow. D QDBHR56 9 64 D* Reserved. D*QDBQHA 65 65 D* D* Hash Partition Key Array. D******************************************************************* D* D*SQL Hash Key Area. D* D*This section contains the hash key information about the D*partitions hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQH02 DS D* Qdb Qdbfsqpt Hash D* SQL Partitioned Table D* Hash Key Structure. D QDBFHK 1 10 D* Hash key name. D QDBFHR22 11 32 D* Reserved. D******************************************************************* D* D*SQL Field Format Information D* D*This section contains the format information about each D*partition key field. The information is the same that is stored D*in the format for the file. D* D******************************************************************* DQDBQF00 DS D* Qdb Qdbfsqpt Fldinfo D* SQL Partitioned Field Format D* Information Structure. D QDBFFR400 1 4U 0 D* Reserved. D QDBFFN 5 14 D* Field name. D QDBFFNBR 15 16U 0 D* Field number. D QDBFFT 17 18B 0 D* Field type. D QDBFFB 19 20B 0 D* Field buffer offset. D QDBFFF 21 22U 0 D* Field length, bytes. D QDBFFF00 23 24U 0 D* Field digits. D QDBFFF01 25 26B 0 D* Field precision. D QDBFFK 27 27 D* Field KBS. D QDBFFV 28 28 D* Field varlen, Y/N. D QDBFFN00 29 29 D* Field null, Y/N. D QDBFFR 30 30 D* Field rowid, Y/N. D QDBFFI 31 31 D* Field ident, Y/N. D QDBTF816 32 32 D* Field UTF8/16 Y/N. D QDBDTFMT02 33 33 D* Field date format. D QDBDTSEP02 34 34 D* Field seperator. D QDBFFC 35 36U 0 D* Field Ccsid. D QDBFFL 37 38U 0 D* Long field length. D QDBFFL00 39 68 D* Long name. D QDBFFR76 69 144 D* Reserved. D*£ifndef __ILEC400__ è @RKR //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(QDBRTVFD72) FILETYPE(*SRC) ENDCHAR('//ENDSRC') D*begin_generated_IBM_copyright_prolog D*This is an automatically generated copyright prolog. D*After initializing, DO NOT MODIFY OR MOVE D*----------------------------------------------------------------- D* D*Product(s): D*5722-SS1 D*5770-SS1 D* D*(C)Copyright IBM Corp. 1994, 2013 D* D*All rights reserved. D*US Government Users Restricted Rights - D*Use, duplication or disclosure restricted D*by GSA ADP Schedule Contract with IBM Corp. D* D*Licensed Materials-Property of IBM D* D*--------------------------------------------------------------- D* D*end_generated_IBM_copyright_prolog D*** START HEADER FILE SPECIFICATIONS **************************** D* D*Header File Name: H/QDBRTVFD.h D* D*Descriptive Name: Retrieve file description API. D* D*Description: The Retrieve File Description (QDBRTVFD) API D* allows the user to get complete and specific D* information about a file on a local or remote D* system. D* D*Header Files Included: None D* D*Macros List: None D* D*Structure List: Qdb_Rfd_Input_Parms_t D* Qdb_Qdbfh_t D* Qdb_Qdbfphys_t D* Qdb_Qdbftrg_t D* Qdb_Qdbf_Constraint_t D* Qdb_Qdbf_Keyn_t D* Qdb_Qdbf_Riafk_Afkd_t D* Qdb_Qdbf_Chk_Cst_t D* Qdb_Qdbf_Chk_Cst_Violation_t D* Qdb_Qdbfdtalnk_t D* Qdb_Qdbfdlcole_t D* Qdb_Qdbfdrae_t D* Qdb_Qdbfdrtb_t D* Qdb_Qdbflogl_t D* Qdb_Qdbfv_t D* Qdb_Qdbfj_t D* Qdb_Qdbfjfld_t D* Qdb_Qdbfjdup_t D* Qdb_Qdbfacs_t D* Qdb_Qdbfdic_t D* Qdb_Qdbflngn_t D* Qdb_Qdbfb_t D* Qdb_Qdbfss_t D* Qdb_Qdbfsp_t D* Qdb_Qdbfk_t D* Qdb_Qdbf_dis_t D* Qdb_Qdbfjoal_t D* Qdb_Qddfmt_t D* Qdb_Qddffld_t D* Qdb_Qddfrefi_t D* Qdb_Qddfedcw_t D* Qdb_Qddfdfne_t D* Qdb_Qddfcolh_t D* Qdb_Qddfvchk_t D* Qdb_Qddfvcst_t D* Qdb_Qddfvcpr_t D* Qdb_Qddfcpli_t D* Qdb_Qddfftxt_t D* Qdb_Qddfalis_t D* Qdb_Qddfdft_t D* Qdb_Qddfdicf_t D* Qdb_Qddfdvof_t D* Qdb_Qddfdvoc_t D* Qdb_Qddfdvo_t D* Qdb_Qddfderv_t D* Qdb_Qddfdvst_t D* Qdb_Qddfdvtx_t D* Qdb_Qddfxl_t D* Qdb_qddfcsl_t D* Qdb_Qddfdic_t D* Qdb_Qdbwhrec_t D* Qdb_Qdbwh_t D* Qdb_Qdbwhkattr_t D* Qdb_Qdbwhkatt1_t D* Qdb_Qdbwhkey_t D* Qdb_Qbftrg_Head D* Qdb_Qdbftrg_Def_Head D* Qdb_Qdbftrg_Name_Area D* Qdb_Qdbftrg_Path_Area D* Qdb_Qdbftrg_Updc_Area D* Qdb_Qdbftrg_Updc_List_Ent D* Qdb_Qdbftrg_When_Area D* Qdb_Qdbftrg_When_Array D* Qdb_Qdbftrg_Body_Area D* Qdb_Qdbftrg_Body_Array D* Qdb_Qdbftrg_Depo_Area D* Qdb_Qdbftrg_Depo_Array D* Qdb_Qdbftrg_Trns_Area D* Qdb_Qdbftrg_Stmt_Area D* Qdb_Qdbftrg_Long_Area D* Qdb_Qdbfrcac_Head D* Qdb_Qdbfrcac_Def_Head D* Qdb_Qdbfrcac_Name_Area D* Qdb_Qdbfrcac_Crutx_Area D* Qdb_Qdbfrcac_Col_Rutx_Array D* Qdb_Qdbfrcac_Depo_Area D* Qdb_Qdbfrcac_Depo_Array D* Qdb_Qdbfrcac_Ace_Area D* Qdb_Qdbfrcac_Long_Area D* Qdb_Qdbfrcac_Label_Area D* Qdb_Qdbfmqtd_Head D* Qdb_Qdbfmqtd D* Qdb_Qdbfvflgs D* Qdb_Qdbfsqpt_Head D* Qdb_Qdbfsqpt_Part D* Qdb_Qdbfsqpt_Range D* Qdb_Qdbfsqpt_Head_Hash D* Qdb_Qdbfsqpt_Hash D* D*Function Prototype List: QDBRTVFD D* D*Change Activity: D* D*CFD List: D* D*FLAG REASON LEVEL DATE DEPT/PGMR CHANGE DESCRIPTION D*---- ------------ ----- ------ --------- ---------------------- D*$A0= D2862000 3D10 940102 45H R P: New Include D*$01= PTH01678 3P10 940818 45H JRA: Correct ALWNULL flag D* definition. D*$A2= D9196200 3D60 941104 45H JRA: Large Access Path D* support. D*$A3= D2871000 3D60 941104 45H JRA: UCS-2 support. D*$02= P3979527 3P10 950119 45H JRA: Correct field text D* definition. D*$03= PSA42574 3P10 950411 45H JRA: Correct ACST/SST D* definition and D* separate Record ID D* Code array. D*$04= P 3D60 950630 45H PSN: Add Default for Date, D* Time, Timestamp of D* CURRENT_xxxx D*$A4= D9410100 3D70 950713 45H KRB: Distributed File D* support. D*$05= P3617238 3D70 960430 45H KRS: Add missing operands D* to derived operator D* comments. D*$06= P3629488 4D10 960930 45H KLW: Add missing comments D* for concatenated D* fields and number of D* digits. D*$A5= D28540 4D20 970127 45H randy: Add Check Constraint D* support D*$A6= D9495801 4D20 970215 45H KRS: UCS-2 sort sequence D*$07= P3640846 4D20 970227 45H KRS: Fix comment. D*$08= P3651248 4D20 970729 RAMLER : Add v4r2 QQ support D* CAST, CASE D*$09= P3652103 4D20 970811 45H KRS: Add "Allow Repeated D* Change" flag to D* trigger section. D*$A7= d9491500 4D30 971215 45H DMK: Add EVI support. D*$A8= P3663202 4D30 980302 SBURRICH: Add comment for V4R3 D* QQ FLOOR support. D*$A9= D9586707 4D40 980713 45H KRS: Add THDSAFE and D* MLTTHDACN support. D*$AA= D9703200 4D40 980713 45H MWT: Complex Objects. D*$AB= P3684590 4D40 981117 45H KRS: Add Qddfsqfd. D*$AC= P3684760 4D40 981209 Bestgen: UDF support. D*$AD= D9759300 5D10 990801 45H RKS: Triggers D*$AE= P9934931 5D10 001010 45H RKS: Teraspace State II D*$AF= P9938576 5D10 001129 45H RKS: Fix comment D*$AG= D9844202 5D20 010530 45H RKS: Identity Columns D*$AH= D9899500 5D20 010625 VPZ MJA: Longer alias names D*$AI= D9913201 5D30 020613 45H KRS: SQL materialized query D* tables. D*$AJ= D9923300 5D30 021010 45H MWT: SQL Partitioned Table D*$AK= D9922600 5D30 030107 45H RLN: Binary Character D* support. D*$AL= D9924906 5D30 030226 45H KRS: UTF8. D*$0A= P9A32647 5D30 030616 45H KRS: Return Qddfflgs in D* field header. D*$0B= P9A35914 5D30 030729 45H KRS: Fix values for ROWID D* and ID generate fields. D*$0C= P9A42662 5D30 031010 ISA MJA: Add info for SQL view D* text. D*$0D= D9977201 5D40 031206 45H BAC: Instead OF triggers D*$AM= D9307400 5D40 041206 45H MWT: Added for V5R4. D*$AN= D9342302 5D50 051214 45H KRS: LF/PF Restore Ordering D*$0D= PSE24623 5D50 060427 45H KRS: Add QDDFFVLN. D*$0E= P9B29769 5D50 060627 45H MWT: Change 2000 to 32768. D*$AP= D9995800 5D50 061010 45H MWT: SQL Index with a D* derived key, or a D* Where clause(SQLI). D*$AQ= D9354900 5D50 061122 45H JAV: DECFLOAT D*$AR= D9356200 5D50 070108 45H RLN: Row Change Timestamp D* and Hidden Column D* support. D*$AS= P9C30998 7D10 080908 GEY MJA: Enable constraint type D* and Secure Data D*$AT= D9230000 7D10 081119 47U RLN: Restricted XML Data D* Type. D*$AU= D9223900 7D10 081202 47U RLN: Database Encryption D* Via Field Procedures. D*$AV= P9C36148 7D10 081212 47U MWT: Added for QCPIMPRT. D*$0F= P9C42250 7D10 090603 HRG RLN: Keep in memory D* (KEEPINMEM) support. D*$0G= FW482528 7D10 090914 GEY MJA: Change UNIT comment D*$0H= FW562851 7D20 110214 HRG MWT: Access Control. D*$AW= RFW566930 7D20 110707 HRG DFZ: Trigger obfuscation. D*$AX= RFW584565 7D20 120515 HRG MWT: Timestamp. D*$AY= RFW584565 7D20 120801 HRG MWT: Multiple Event triggers D*$0I= PFW595919 7D20 121205 HRG SAM: Update MET doc D*$0J= PFW596595 7D20 121221 HRG DFZ: fix Current START WITH D*$0K= PFW604249 7D20 130630 HRG JAV: Cst with violation D* D*End CFD List. D* D*Additional notes about the Change Activity D*End Change Activity. D***************************************************************** D******************************************************************** D*Prototypes for calling Retrieve File Description API QDBRTVFD D******************************************************************** D QDBRTVFD C 'QDBRTVFD' D****************************************************************** D*Input structure for QDBRTVFD API header section D****************************************************************** DQDBRIP DS D* Qdb Rfd Input Parms D*QDBRV 1 1 D* D* varying length D QDBLORV 2 5I 0 D* Length Of Receiver Var D QDBRFAL 6 25 D* Returned File And Library D QDBFN00 26 33 D* Format Name D QDBFALN 34 53 D* File And Library Name D QDBRFN00 54 63 D* Record Format Name D QDBFILOF 64 64 D* File Override Flag D QDBYSTEM 65 74 D* System D QDBFT 75 84 D* Format Type D*QDBEC 85 85 D* D* varying length D**************************************************************** D* Record Structure for QDBRTVFD FILD0100 format D**************************************************************** D******************************************************************** D* FDT HEADER DECLARATIONS D******************************************************************** D* The following typedef structs are pointed to by the header D* typedef struct. They are defined outside of the header for D* LAN/DE compatibility and to ensure alignment on a 16-byte D* boundary. D**************************************************************** D** Attribute Bytes ******************************************* DQDBQ DS D* Attribute Bytes D QDBBITS 1 2 D* QDBRSV1 2 BITS D* Reserved. D* QDBFHFPL 1 BIT D* Type Of File D* 0 = The file is a physical D* Database file. D* 1 = The file is a logical D* Database file. D* QDBRSV2 1 BIT D* Reserved. D* QDBFHFSU 1 BIT D* File Type (FILETYPE) D* 0 = The file is a data file D* (*DATA). D* 1 = The file is a source D* file (*SRC). D* QDBRSV3 1 BIT D* Reserved. D* QDBFHFKY 1 BIT D* Access Path D* 0 = The file has an arrival D* sequence access path D* 1 = The file has a keyed D* sequence access path D* QDBRSV4 1 BIT D* Reserved. D* QDBFHFLC 1 BIT D* Record Format Level Check D* (LVLCHK) D* 0 = The level identifiers of D* the record formats are D* NOT checked when the file D* is opened (*NO). D* 1 = The level identifiers of D* the record formats are D* checked when the file D* is opened (*YES). D* QDBFKFSO 1 BIT D* Select/Omit D* 0 = The file is NOT a D* select/omit logical file. D* 1 = The file is a select/omit D* logical file. D* QDBRSV5 1 BIT D* Reserved. D* QDBFHSHR 1 BIT D* Reserved. D* QDBRSV6 2 BITS D* Reserved. D* QDBFIGCD 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any DBCS or Graphic data D* fields. D* 1 = The record format(s) for D* the file does contain D* DBCS or Graphic data D* fields. D* QDBFIGCL 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The file definition for D* the file does NOT contain D* DBCS or Graphic literals. D* 1 = The file definition for D* the file does contain D* DBCS or Graphic literals. D** Keyed Sequence Access Path Attributes ********************* DQDBQ00 DS D* Keyed Sequence Access Path D* Attributes D QDBBITS00 1 1 D* QDBRSV8 1 BIT D* Reserved. D* QDBFKFCS 1 BIT D* Alternative Collating D* Sequence (ALTSEQ) D* 0 = No alternative collating D* sequence table for the D* file. D* 1 = An alternative collating D* sequence table was D* specified for the file. D* QDBRSV9 4 BITS D* Reserved. D* QDBFKFRC 1 BIT D* Force Keyed Access Path D* (FRCACCPTH) D* 0 = The access path and D* changed records are NOT D* forced to auxiliary D* storage when the access D* path is changed (*NO). D* 1 = The access path and D* changed records are D* forced to auxiliary D* storage when the access D* path is changed (*YES). D* QDBFKFLT 1 BIT D* Floating Point Key Indicator D* 0 = The access path for the D* file contains NO floating D* point keys. D* 1 = The access path for the D* file contains floating D* point keys. D** Keyed Sequence Access Path Description ******************** DQDBQ01 DS D* Keyed Sequence Access Path D* Description D* If this file has an arrival D* sequence access path, these D* fields are NOT applicable. D QDBFKNUM 1 2I 0 D* Number Of Key Fields D* 1-120 = Number of key fields D* for the file. D QDBFKMXL 3 4I 0 D* Maximum Key Length D* 1-32768 = Maximum length of D* the key for the file. D*QDBFKFLG 1 D QDBBITS01 5 5 D* QDBRSV800 1 BIT D* QDBFKFCS00 1 BIT D* QDBRSV900 4 BITS D* QDBFKFRC00 1 BIT D* QDBFKFLT00 1 BIT D* Keyed Sequence Access Path D QDBFKFDM 6 6 D* Access Path Maintenance D* (MAINT) D* 'I' = Immediate maintenance D* (*IMMED). D* 'D' = Delayed maintenance D* (*DLY). D* 'R' = Rebuild maintenance D* (*REBLD). D QDBRSV10 7 14 D* Reserved. D** Additional Attribute Flags ******************************** DQDBQAAF DS D* Additional Attribute Flags D QDBBITS02 1 1 D* QDBRSV12 7 BITS D* Reserved. D* QDBFPGMD 1 BIT D* Program Described File D* Indicator D* 0 = The file is an externally D* described file. D* 1 = The file is a program D* described file. D** Additional Attribute Flags ******************************** DQDBQ2 DS D* Additional Attribute Flags D QDBBITS03 1 2 D* QDBFJNAP 1 BIT D* Access Path Journaled D* 0 = The files access path(s) D* is NOT journaled. D* 1 = The files access path(s) D* is journaled. D* File Capability Attributes D* QDBRSV13 1 BIT D* Reserved. D* File Capability Flags D* QDBFRDCP 1 BIT D* Allow Read Operation D* 0 = Records are allowed to D* be read from the file. D* 1 = Records are NOT allowed D* to be read from the file. D* QDBFWTCP 1 BIT D* Allow Write Operation D* 0 = Records are allowed to D* be written to the file. D* 1 = Records are NOT allowed D* to be written to the D* file. D* QDBFUPCP 1 BIT D* Allow Update Operation D* (ALWUPD) D* 0 = Records are allowed to D* be updated in the file D* (*YES). D* 1 = Records are NOT allowed D* to be updated in the D* file (*NO). D* QDBFDLCP 1 BIT D* Allow Delete Operation D* (ALWDLT) D* 0 = Records are allowed to D* be deleted from the file D* (*YES). D* 1 = Records are NOT allowed D* to be deleted from the D* file (*NO). D* QDBRSV14 9 BITS D* Reserved. D* QDBFKFND 1 BIT D* Null Values Cause Duplicates D* Indicator (UNIQUE) D* 0 = Null values do cause D* duplicate keys in the D* files access path(s) D* (*INCNULL). D* 1 = Null values do NOT cause D* duplicate keys in the D* files access path(s) D* (*EXCNULL). D* Only valid if Qdbfpact is D* equal to 'KU'. D** Additional Attribute Flags ******************************** DQDBQ200 DS D* Additional Attribute Flags D QDBBITS04 1 2 D* QDBFHMCS 1 BIT D* Multiple Coded Character Set D* Identifier Indicator (CCSID). D* 0 = The file has only one D* CCSID for all of its D* input and output D* character type fields. D* 1 = The file has more than D* one CCSID for all of its D* input and output D* character type fields. D* If the file has NO character D* type fields in its record D* format(s), this bit will be D* off. D* QDBRSV15 1 BIT D* Reserved. D* QDBFKNLL 1 BIT D* Allow Null Value Key D* Indicator (ALWNULL) D* 0 = The access path for the D* file contains NO allow D* null value keys. D* 1 = The access path for the D* file contains allow null D* value keys. D* QDBFNFLD 1 BIT D* Allow Null Value Data D* (ALWNULL) D* 0 = The record format(s) for D* the file does NOT contain D* any allow null value D* fields. D* 1 = The record format(s) for D* the file does contain D* allow null value fields. D* QDBFVFLD 1 BIT D* Variable Length Data (VARLEN) D* 0 = The record format(s) for D* the file does NOT contain D* any variable length D* fields. D* 1 = The record format(s) for D* the file does contain D* variable length fields. D* QDBFTFLD 1 BIT D* Date/Time/Timestamp Data D* 0 = The record format(s) for D* the file does NOT contain D* any date, time, or D* timestamp fields. D* 1 = The record format(s) for D* the file does contain D* a date, time, or D* timestamp fields. D* QDBFGRPH 1 BIT D* Graphic Data D* 0 = The record format(s) for D* the file does NOT contain D* any graphic fields. D* 1 = The record format(s) for D* the file does contain D* graphic fields. D* QDBFPKEY 1 BIT D* Primary Key D* 0 = The access path for the D* file is NOT a primary key. D* any graphic fields. D* 1 = The access path for the D* file is a primary key. D* D* QDBFUNQC 1 BIT D* Unique Constraint D* Indicator (ALWNULL) D* 0 = The access path for the D* file is NOT a unique D* constraint. D* 1 = The access path for the D* file is a unique D* constraint. D* QDBR118 2 BITS D* Reserved. D* QDBFAPSZ 1 BIT D* Access Path Size(ACCPTHSIZ). D* 0 = All access paths for the D* file will be allowed to D* occupy a maximum of 4GB D* of auxillary storage. D* 1 = All access paths for the D* file will be allowed to D* occupy a maximum of 1TB D* of auxillary storage. D* QDBFDISF 1 BIT D* File is distributed indicator. D* 0 = File is not a distributed D* file. D* 1 = File is a distributed file. D* D* QDBR119 3 BITS D* Reserved. D** Complex Object Flags. ******************************** DQDBFNBIT DS D* Additional Attribute Flags D QDBBITS70 1 1 D* QDBFHUDT 1 BIT D* User Defined Types in file. D* 0 = The file does not have D* any UDTs. D* 1 = The file has fields with D* UDTs. D* QDBFHLOB 1 BIT D* Large Objects fields in file. D* 0 = The file does not have D* any LOBs. D* 1 = The file has fields with D* LOBs. D* QDBFHDTL 1 BIT D* Datalink fields in file. D* 0 = The file does not have D* any datalinks. D* 1 = The file has fields with D* datalinks. D* QDBFHUDF 1 BIT D* User Defined Functions in file. D* 0 = The file does not have D* any UDFs. D* 1 = The file has UDFs. D* D* QDBFHLON 1 BIT D* Datalink fields in the file D* with FILE LINK CONTROL. D* 0 = The file does not have D* datalink fields with D* FILE LINK CONTROL. D* 1 = The file has datalink fields D* with FILE LINK CONTROL. D* QDBFHLOP 1 BIT D* Logical file without any LOB D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have LOB fields. D* 1 = The based on file has LOB D* fields. D* QDBFHDLL 1 BIT D* Logical file without any datalink D* fields, but the based on file D* has LOB fields. D* 0 = The based on file does D* not have datalink fields. D* 1 = The based on file has D* datalink fields. D* QDBQLVOL 1 BIT D* SQL Volatile Table Indicator D* 0 = The file is NOT an SQL D* volatile table. D* 1 = The file is an SQL D* volatile table. @AMC D** File Text Description ************************************* DQDBQ02 DS D* File Text Description D QDBRSV18 1 2 D* Reserved. D QDBFHTXT 3 52 D* Text Description (TEXT) D** Source File Fields **************************************** DQDBQ03 DS D* Source File Fields D* Must be X'00's if there is D* NO source file information. D QDBFSRCF 1 10 D* Source File Name D QDBFSRCM 11 20 D* Source File Member Name D QDBFSRCL 21 30 D* Source File Library Name D** Sort Sequence Table Flags ********************************* DQDBQ04 DS D* Flags D QDBBITS05 1 1 D* QDBFSSCS 3 BITS D* Sort Sequence Table D* (SRTSEQ) Indicators D* B'000' = No sort sequence D* table for the file. D* However, an D* alternate collating D* sequence table was D* specified for the D* file. D* B'010' = No sort sequence D* table is used for the D* file, and the hexa- D* decimal values of the D* characters will be D* used to determine the D* sort sequence (*HEX). D* B'100' = A sort sequence D* table was specified D* for the file. D* QDBR103 5 BITS D* Reserved D** Sort Sequence Table *************************************** DQDBFSSFP DS D* Sort Sequence Table D*QDBFNLSB00 1 D QDBBITS57 1 1 D* QDBFSSCS01 3 BITS D* QDBR10301 5 BITS D* NLS Flags D QDBFLANG00 2 4 D* Language Identifier (LANGID) D QDBFCNTY00 5 6 D* Country Identifier (CNTRYID) D** Identity/Rowid Flags. ******************************** DQDBFIDFL DS D* Additional Attribute Flags D QDBBITS74 1 2 D* QDBR121 5 BITS D* Reserved. D* QDBFFHIC 1 BIT D* Qdbf File Has Identity Colum D* Identity Column in the file. D* 0 = The file does not have D* an Identity Column. D* 1 = The file has an Identity D* column. D* QDBFFHR 1 BIT D* Qdbf File Has Rowid D* Rowid in the file. D* 0 = The file does not have D* a Rowid Column. D* 1 = The file has a Rowid D* column. D* QDBFRCT 1 BIT D* Qdbfh Row Change Timestamp D* Row Change Timestamp in the D* file. D* 0 = The file does not have D* a Row Change Timestamp D* Column in its format(s). D* 1 = The file has a Row Change D* Timestamp field in its D* format(s). D* QDBR122 6 BITS D* Reserved. D* QDBFKIM 1 BIT D* Qdbf Keep In Memory D* Keep In Memory indicator. D* 0 = The File's Keep In Memory D* state has Not been changed D* to *YES. D* 1 = The File's Keep In Memory D* state has been changed to D* *YES. D* QDBR124 1 BIT D* Reserved. D**************************************************************** D* D*File Definition Template (FDT) Header D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ25 DS D* Header information - The D* FDT starts here D QDBFYRET 1 4I 0 D* Bytes returned - The length D* of the data returned D QDBFYAVL 5 8I 0 D* Bytes available - The number D* of bytes provided for the D* file definition template D* data D*QDBFHFLG 2 D QDBBITS27 9 10 D* QDBRSV100 2 BITS D* QDBFHFPL00 1 BIT D* QDBRSV200 1 BIT D* QDBFHFSU00 1 BIT D* QDBRSV300 1 BIT D* QDBFHFKY00 1 BIT D* QDBRSV400 1 BIT D* QDBFHFLC00 1 BIT D* QDBFKFSO00 1 BIT D* QDBRSV500 1 BIT D* QDBFHSHR00 1 BIT D* QDBRSV600 2 BITS D* QDBFIGCD00 1 BIT D* QDBFIGCL00 1 BIT D* Attribute Bytes D QDBRSV7 11 14 D* Reserved. D QDBLBNUM 15 16I 0 D* Number Of Data Members D* 1 = Externally described D* physical file, or program D* described physical file D* that is NOT linked to a D* Data Dictionary. D* 1-32 = Number of Data D* Dictionary record D* formats for a program D* described physical D* file that is linked to D* a Data Dictionary. D* 1-256= Number of based on D* physical files for D* a logical file. D*QDBFKDAT 14 D QDBFKNUM00 17 18I 0 D QDBFKMXL00 19 20I 0 D* QDBFKFLG00 1 D QDBBITS28 21 21 D* QDBRSV802 1 BIT D* QDBFKFCS02 1 BIT D* QDBRSV902 4 BITS D* QDBFKFRC02 1 BIT D* QDBFKFLT02 1 BIT D QDBFKFDM00 22 22 D QDBRSV1000 23 30 D* Keyed Sequence Access Path D QDBFHAUT 31 40 D* Public Authority (AUT) D* '*CHANGE ' = Public change D* authority. D* '*ALL ' = Public all D* authority. D* '*USE ' = Public use D* authority. D* '*EXCLUDE ' = Public exclude D* authority. D* 'authorization-list-name' D* = Name of the D* authorization D* list whose D* authority is D* used for the D* file. D* This is the original public D* authority that the file was D* created with, NOT the current D* public authority for the file. D QDBFHUPL 41 41 D* Preferred Storage Unit (UNIT) D* X'00'-X'FE' = No storage media D* is preferred. Storage D* will be allocated from D* any available storage D* media. D* X'FF' = Solid state disk storage D* media is preferred. D* Storage may be allocated D* from solid state disk D* storage media, if D* available. D QDBFHMXM 42 43I 0 D* Maximum Members (MAXMBRS) D* 0 = No maximum is specified D* for the number of members, D* the system maximum of D* 32,767 members is used D* (*NOMAX). D* 1-32,767 = The value for the D* maximum number of D* members that the D* file can have D* (maximum-members). D QDBFWTFI 44 45I 0 D* Maximum File Wait Time D* (WAITFILE) D* -1 = The default wait time D* specified in the class D* description is used as D* the wait time for the D* file (*CLS). D* 0 = A program does NOT wait D* for the file, an D* immediate allocation of D* the file is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the file (number- D* of-seconds). D QDBFHFRT 46 47I 0 D* Records To Force A Write D* (FRCRATIO) D* 0 = There is NO force write D* ratio, the system D* determines when the D* records are written to D* auxiliary storage (*NONE). D* 1-32,767 = The number of D* inserted, updated, D* or deleted records D* that are processed D* before they are D* explicitly forced D* to auxiliary D* storage (number- D* of-records-before- D* force). D QDBHMNUM 48 49I 0 D* Number Of Members D* 0-32,767 = The current number D* of members for the D* file. D QDBPSIZE 50 51I 0 D* Access path page size. @AMA D* -1 = NA, 4G Access path. D* 0 = Key length page size. D* 8,16,32,64,128,256,512=Ksize D QDBRSV11 52 58 D* Reserved. D QDBFBRWT 59 60I 0 D* Maximum Record Wait Time D* (WAITRCD) D* -2 = The wait time is the D* maximum allowed by the D* system, 32,767 seconds D* (*NOMAX). D* -1 = A program does NOT wait D* for the record, an D* immediate allocation of D* the record is required D* (*IMMED). D* 1-32,767 = The number of D* seconds that a D* program waits for D* the record D* (number-of- D* seconds). D*QDBQAAF00 1 D QDBBITS29 61 61 D* QDBRSV1200 7 BITS D* QDBFPGMD00 1 BIT D* Additional Attribute Flags D QDBMTNUM 62 63I 0 D* Total Number Of Record D* Formats D* 1-32 = Number of record D* formats for the file. D*QDBFHFL2 2 D QDBBITS30 64 65 D* QDBFJNAP00 1 BIT D* QDBRSV1300 1 BIT D* QDBFRDCP00 1 BIT D* QDBFWTCP00 1 BIT D* QDBFUPCP00 1 BIT D* QDBFDLCP00 1 BIT D* QDBRSV1400 9 BITS D* QDBFKFND00 1 BIT D* Additional Attribute Flags D QDBFVRM 66 67I 0 D* First Supported D* Version Release Modification D* Level D* X'0000' = Pre-Version 2 D* Release 1 D* Modification 0 file. D* X'1500' = Version 2 Release 1 D* Modification 0, D* V2R1M0, file. D* X'1501' = Version 2 Release 1 D* Modification 1, D* V2R1M1, file. D* X'1600' = Version 2 Release 2 D* Modification 0, D* V2R2M0, file. D* X'1700' = Version 2 Release 3 D* Modification 0, D* V2R3M0, file. D* X'1F00' = Version 3 Release 1 D* Modification 0, D* V3R1M0, file. D* X'2000' = Version 3 Release 2 D* Modification 0, D* V3R2M0, file. D* X'2400' = Version 3 Release 6 D* Modification 0, D* V3R6M0, file. D* X'2500' = Version 3 Release 7 D* Modification 0, D* V3R7M0, file. D* X'2900' = Version 4 Release 1 D* Modification 0, D* V4R1M0, file. D* X'2A00' = Version 4 Release 2 D* Modification 0, D* V4R2M0, file. D* X'2B00' = Version 4 Release 3 D* Modification 0, D* V4R3M0, file. D* X'2C00' = Version 4 Release 4 D* Modification 0, D* V4R4M0, file. D* X'2D00' = Version 4 Release 5 D* Modification 0, D* V4R5M0, file. D* X'3300' = Version 5 Release 1 D* Modification 0, D* V5R1M0, file. D* X'3400' = Version 5 Release 2 D* Modification 0, D* V5R2M0, file. D* X'3500' = Version 5 Release 3 D* Modification 0, D* V5R3M0, file. D* X'3600' = Version 5 Release 4 D* Modification 0, D* V5R4M0, file. D* X'3700' = Version 5 Release 5 D* Modification 0, D* V5R5M0, file. D* New Database support is used D* in the file which will D* prevent it from being saved D* and restored to a prior D* Version Release and D* Modification level. D*QDBQAAF2 2 D QDBBITS31 68 69 D* QDBFHMCS00 1 BIT D* QDBRSV1500 1 BIT D* QDBFKNLL00 1 BIT D* QDBFNFLD00 1 BIT D* QDBFVFLD00 1 BIT D* QDBFTFLD00 1 BIT D* QDBFGRPH00 1 BIT D* QDBFPKEY00 1 BIT D* QDBFUNQC00 1 BIT D* QDBR11800 2 BITS D* QDBFAPSZ00 1 BIT D* QDBFDISF00 1 BIT D* QDBR11900 3 BITS D* Additional Attribute Flags D QDBFHCRT 70 82 D* File Level Identifier D* The date of the file in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D*QDBFHTX 52 D QDBRSV1800 83 84 D QDBFHTXT00 85 134 D* File Text Description D QDBRSV19 135 147 D* Reserved D*QDBFSRC 30 D QDBFSRCF00 148 157 D QDBFSRCM00 158 167 D QDBFSRCL00 168 177 D* Source File Fields D QDBFKRCV 178 178 D* Access Path Recovery D* (RECOVER) D* 'A' = The file has its access D* path built after the D* IPL has been completed D* (*AFTIPL). D* 'N' = The access path of the D* file is NOT built D* during or after an IPL D* (*NO). The file's D* access path is built D* when the file is next D* opened. D* 'S' = The file has its access D* path built during the D* IPL (*IPL). D QDBFDR 179 179 D* Qdbfh dfp round D* Decimal floating point D* rounding mode. Set for D* logical files and MQTs that D* reference decimal floating D* point fields. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFDW 180 180 D* Qdbfh dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBRSV20 181 201 D* Reserved. D QDBFTCID 202 203U 0 D* Coded Character Set D* Identifier, CCSID, For D* Text Description (TEXT) D* 0 = There is NO text D* description for the file. D* 1-65,535 = The CCSID for the D* file's text D* description. D QDBFASP 204 205 D* Auxiliary Storage Pool (ASP) D* X'0000' = The file is D* located on the D* system auxiliary D* storage pool. D* X'0002'-X'0010' = The user D* auxiliary storage D* pool the file is D* located on D* (asp-identifier). D*QDBFNBIT00 1 D QDBBITS71 206 206 D* QDBFHUDT00 1 BIT D* QDBFHLOB00 1 BIT D* QDBFHDTL00 1 BIT D* QDBFHUDF00 1 BIT D* QDBFHLON00 1 BIT D* QDBFHLOP00 1 BIT D* QDBFHDLL00 1 BIT D* QDBQLVOL00 1 BIT D* Complex Object flags. D QDBXFNUM 207 208I 0 D* Maximum Number Of Fields D* 1-8000 = The number of fields D* in the file's record D* format that contains D* the largest number D* of fields. D QDBRSV22 209 282 D* Reserved. D*QDBFIDFL00 2 D QDBBITS75 283 284 D* QDBR12100 5 BITS D* QDBFFHIC00 1 BIT D* QDBFFHR00 1 BIT D* QDBFRCT00 1 BIT D* QDBR12200 6 BITS D* QDBFKIM00 1 BIT D* QDBR12400 1 BIT D* Identity/Rowid flags. D QDBFODIC 285 288I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* IDDU/SQL Data Dictionary D* Area, Qdbfdic. D QDBRSV23 289 302 D* Reserved. D QDBFFIGL 303 304I 0 D* File Generic Key Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFMXRL 305 306I 0 D* Maximum Record Length D* 1-32766 = The length of the D* record in the D* file's record D* format that D* contains the D* largest number of D* bytes. D QDBRSV24 307 314 D* Reserved. D QDBFGKCT 315 316I 0 D* File Generic Key Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the file. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFOS 317 320I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* File Scope Array, Qdbfb. D QDBRSV25 321 328 D* Reserved. D QDBFOCS 329 332I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Alternative Collating D* Sequence Table section, D* Qdbfacs. D QDBRSV26 333 336 D* Reserved. D QDBFPACT 337 338 D* Access Path Type D* 'AR' = Arrival sequence D* access path. D* 'KC' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* changed-first-out D* (FCFO) order. D* 'KF' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in first- D* in-first-out D* (FIFO) order. D* 'KL' = Keyed sequence access D* path with duplicate D* keys allowed. D* Duplicate keys are D* accessed in last- D* in-first-out D* (LIFO) order. D* 'KN' = Keyed sequence access D* path with duplicate D* keys allowed. D* No order is guaranteed D* when accessing D* duplicate keys. D* Duplicate keys are D* accessed in one of the D* following methods: D* (FCFO) (FIFO) (LIFO). D* 'KU' = Keyed sequence access D* path with NO duplicate D* keys allowed (UNIQUE). D* 'EV' = Encoded Vector with a D* 1, 2, or 4 byte vector D* D QDBFHRLS 339 344 D* File Version Release D* Modification Level D* 'VxRyMz' = Where x is the D* Version, y is the D* Release, and z is D* the Modification D* level D* example V2R1M1 D* Version 2 Release D* 1 Modification 1 D QDBRSV27 345 364 D* Reserved. D QDBPFOF 365 368I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Physical File Specific D* Attributes section, Qdbfphys. D QDBLFOF 369 372I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Logical File Specific D* Attributes section, Qdbflogl. D*QDBFSSFP00 6 D* QDBFNLSB01 1 D QDBBITS58 373 373 D* QDBFSSCS02 3 BITS D* QDBR10302 5 BITS D QDBFLANG01 374 376 D QDBFCNTY01 377 378 D* Sort Sequence Table D QDBFJORN 379 382I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Journal Section, Qdbfjoal. D QDBFEVID 383 386U 0 D* Initial number of distinct D* values an encoded vector D* access path was allowed at D* creation. Default will be set D* to hex zeros D QDBRSV28 387 400 D* Reserved. D**************************************************************** D* D*The FDT header ends here. D* D**************************************************************** D******************************************************************** D* PHYSICAL FILE DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBQ05 DS D* Flags D QDBBITS06 1 1 D* QDBFRDEL 1 BIT D* Reuse Deleted Records D* (REUSEDLT) D* 0 = The deleted record space D* in the file's members is D* NOT used again by the D* system on Write (Insert) D* requests to the file's D* members (*NO). D* 1 = The deleted record space D* in the file's members is D* used again by the system D* on Write (Insert) D* requests to the file's D* members (*YES). D* QDBRSV30 3 BITS D* Reserved. D* QDBFSQLT 1 BIT D* SQL Table Indicator D* 0 = The file is NOT an SQL D* table. D* 1 = The file is an SQL table. D* QDBFMQT 1 BIT D* SQL Materialized Query Table D* Indicator D* 0 = The file is not an MQT. D* 1 = The file is an MQT. D* QDBFSQPT 1 BIT D* SQL Partitioned Table D* Indicator D* 0 = The file is not an SQL D* Partitioned Table. D* 1 = The file is an SQL D* Partitioned Table. D* QDBACCCT 1 BIT D* Row and column access control D* indicator. D* 0 = The file does not have D* accesss control. D* 1 = The file has access control. D* @0HA D**************************************************************** D* D*Physical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset QDBPFOF, which is D*located in the FDT header section. D**************************************************************** DQDBQ26 DS D* Physical File Attributes D QDBFPALC 1 2 D* Allocate/Contiguous Storage D* (ALLOCATE and CONTIG) D* 'DN' = New members added to D* the file allow the D* system to determine D* storage space that is D* allocated for the D* member (ALLOCATE(*NO)). D* 'IC' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is D* attempted to be D* allocated contiguously D* (CONTIG(*YES)). D* 'IN' = New members added to D* the file use the D* initial number of D* records (SIZE D* parameter) to D* determine storage D* space that is D* allocated for the D* member D* (ALLOCATE(*YES)), and D* the storage is NOT D* attempted to be D* allocated contiguously D* (CONTIG(*NO)). D QDBFCMPS 3 3 D* Maximum Percentage Of Deleted D* Records Allowed (DLTPCT) D* X'00' = The number of deleted D* records in the file's D* member is NOT checked D* when the member is D* closed (*NONE). D* X'01'-X'64' = The largest D* percentage of D* deleted records D* that the file's D* member should D* have (deleted- D* records- D* threshold- D* percentage). D QDBFS00 4 7U 0 D* For SQL Partitioned Tables D* offset from the start D* of the FDT header, Qdbfh, to D* the SQL Partitioned Area. D QDBRSV29 8 11 D* Reserved. D QDBPRNUM 12 15I 0 D* Initial Number Of Records D* (SIZE) D* 0 = The number of records D* that can be inserted into D* each member of the file D* is NOT limited by the D* user. The maximum size D* of each member is D* determined by the system D* (*NOMAX). D* 1-2,147,483,646 = The number D* of records that can be D* inserted before an D* automatic extension D* occurs (number-of- D* records). D QDBFPRI 16 17I 0 D* Increment Number Of Records D* (SIZE) D* 0-32,767 = The maximum number D* of additional D* records that can D* be inserted into D* the member after D* an automatic D* extension occurs D* (increment-value). D QDBRINUM 18 19I 0 D* Maximum Number Of Increments D* (SIZE) D* 0-32,767 = The maximum number D* of increments D* that can be D* automatically D* added to the D* member (number-of- D* increments). D QDBFORID 20 23I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Record ID Codes for program D* described physical files, D* Qdbforid. D*QDBFLAGS 1 D QDBBITS33 24 24 D* QDBFRDEL00 1 BIT D* QDBRSV3000 3 BITS D* QDBFSQLT00 1 BIT D* QDBFMQT00 1 BIT D* QDBFSQPT00 1 BIT D* QDBACCCT00 1 BIT D* Flags D QDBFOTRG 25 28I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg D QDBFTRGN 29 30I 0 D* Number of triggers D QDBFOFCS 31 34I 0 D* This is the offset from the D* start of the FDT header, D* Qdbfh, to the Constraint D* Definition Area, D* Qdb_Qdbf_constraint D QDBFCSTN 35 38I 0 D* Number of constraint for the D* File D QDBFODL 39 42I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* datalinks area, D* Qdb_Qdbfdtalnk. D QDBFM 43 46U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL Area. D QDBRSV32 47 48 D* Reserved. D******************************************************************** D* TRIGGER DECLARATIONS D******************************************************************** D** Trigger Flags ******************************************** DQDBFTRGF DS D* Trigger Flags D QDBBITS68 1 1 D* QDBFALRC 1 BIT D* Allow Repeated Change Indicator D* 0 = *NO (not allowed) D* 1 = *YES (allows change) D* QDBFTTHS 2 BITS D* Threadsafe Indicator D* B'00' = *UNKNOWN (Threadsafe D* status is not known) D* B'10' = *NO (Not threadsafe) D* B'11' = *YES (Threadsafe) D* QDBFTMTA 2 BITS D* Multithreaded Job Action D* Indicator D* B'01' = *MSG (Run, diagnostic) D* B'10' = *NORUN (Escape) D* B'11' = *RUN (Run, no message) D* QDBFTQMT 1 BIT D* QMLTTHDACN system value usage D* 0 = Not used D* 1 = Used D* QDBFMTI 1 BIT D* Qdbf more trg info D* Indicates more trigger D* information is available if D* format FILD0400 is requested. D* 0 = No more info available D* 1 = More information available D* @ADA D* QDBR202 1 BIT D* Reserved. @ADC D**************************************************************** D* D*Trigger Description Area D* D*The Trigger information for this file. D* D**************************************************************** D*This section can be located with the offset Qdbfotrg, D*located in the Physical File Specific Attributes section, D*or with the offset Qdbflotrg, located in the Logical File D*Specific Attributes section. D*This is repeated by the number of triggers Qdbftrgn or D*Qdbfltrgn. D**************************************************************** DQDBQ27 DS D* Trigger Section D QDBFTRGT 1 1 D* Trigger Time D* '1' = Run a trigger AFTER the D* change operation. D* '2' = Run a trigger BEFORE the D* change operation. D* '3' = Run a trigger INSTEAD OF D* the operaton D QDBFTRGE 2 2 D* Trigger Event D* '1' = INSERT operation. D* '2' = DELETE operation. D* '3' = UPDATE operation. D* '4' = READ operation D QDBFTPGM 3 12 D* Trigger Program Name D QDBFTPLB 13 22 D* Trigger Program Library D QDBFTUPD 23 23 D* Trigger update condition. This D* field is only valid for UPDATE D* event. This field will be D* ignored for INSERT or DELETE D* event. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. D*QDBFTRGF00 1 D QDBBITS69 24 24 D* QDBFALRC00 1 BIT D* QDBFTTHS00 2 BITS D* QDBFTMTA00 2 BITS D* QDBFTQMT00 1 BIT D* QDBFMTI00 1 BIT D* QDBR20200 1 BIT D* Trigger Flags D QDBR201 25 48 D* Reserved. D**************************************************************** D* D*Constraint Definition Area D* D*The constraint definition area information about D*constraints for this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfofcs, which D*is located in the Physical File Specific Attributes section. D**************************************************************** D******************************************************************* D*Constraint Definition Header D* D******************************************************************* DQDBQC DS D* File Constraint Definition D* Area. D QDBFC 1 4I 0 D* Offset from D* Qdb_Qdbf_Constraint D* to the next section for D* this constraint D QDBFH 5 8I 0 D* Constraint Entry Header D* Length in Bytes. D QDBFT00 9 9 D* Constraint Type D* (TYPE) D* 'P' = Primary Unique D* Constraint D* 'F' = Referential Constraint D* 'U' = Unique Constraint. D* 'C' = Check Constraint D QDBFC00 10 10 D* Check Pending Attribute D* 'N' = The constraint is not D* in check pending. D* 'Y' = The constraint is in D* check pending. D QDBFS 11 11 D* Constraint State D* 'D' = The constraint is D* defined. D* 'E' = The constraint is D* established. D QDBFA 12 12 D* Constraint State D* (STATE) D* 'D' = The constraint is D* disabled. D* 'E' = The constraint is D* enabled. D QDBFAT 13 25 D* Constraint Date D* The Constraint Date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBFCL 26 35 D* Constraint library name D QDBFCL2 36 39I 0 D* Constraint Name (delimited) D* Length. D QDBFCC 40 40 D* Enable Constraint Type D* (CHECK) D* 'U' = The constraint is D* enabled without checking. D* ' ' = The constraint is D* enabled with checking or D* is disabled. @ASA D QDBR2 41 64 D* Reserved. @ASC D QDBFCN 65 322 D* Constraint name (CST) D******************************************************************* D*Constraint Definition Body which follows the Constraint Header D* D* ------------------------------------ D* ||| --Constraint Definition ||| D* ||| Body, variable length. ||| D* ||| - 'F' = Referential ||| D* ||| constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| 2) Qdb_Qdbf_Keyn ||| D* ||| 3) Qdb_Qdbf_Riafk_Afkd||| D* ||| ||| D* ||| - 'U' = Unique ||| D* ||| Constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| ||| D* ||| - 'P' = Primary Unique ||| D* ||| Constraint ||| D* ||| The structures used ||| D* ||| will be ordered: ||| D* ||| 1) Qdb_Qdbf_Keyn ||| D* ||| ||| D* ||| - 'C' = Check Constraint ||| D* ||| 1) Qdb_Qdbf_Chk_Cst ||| D* ||| ||| D* ------------------------------------ D* D******************************************************************* D******************************************************************* D*Structure for the Constraint Keys. D******************************************************************* D*This section can be located with the offset Qdbf_Hlen, which is D*located in the Constraint Definition Header section, or with the D*with the offset Qdbf_Kslen when this is a Referential Constraint. D******************************************************************* DQDBQN DS D* Key Name Array D QDBFK 1 10 D* KEY Name (PRNKEY KEY) D QDBR6 11 32 D* Reserved DQDBQK DS D* Constraint Key Structure D QDBFK00 1 4I 0 D* Constraint Key Structure D* Length. The length, in bytes, D* of this Constraint Key D* Structure. This is also the D* offset from Qdb_Qdbf_Keyn D* to the next structure for D* this constraint. D* D QDBFN01 5 8I 0 D* Number of Keys. D* 1-120 = The count of the D* number of key fields for the D* Constraints key. D* D QDBFK01 9 12I 0 D* Constraint Key Length. D* D QDBR7 13 64 D* Reserved D*QDBFN02 32 D QDBFK02 65 74 D QDBR600 75 96 D* Key Name Array D******************************************************************* D*Structure for Referential Constraint D******************************************************************* D*This section can be located with the offset Qdbf_Kslen when this D*is a Referential Constraint. D******************************************************************* DQDBQRA DS D* Referential Constraint D* Definition D* D QDBFRP 1 10 D* Parent File Name (PRNFILE) D* D QDBFRP00 11 20 D* Parent File Library Name. D* D QDBR3 21 64 D* Reserved D* D QDBFRF 65 65 D* Delete Rule D* (DLTRULE) D* 'C' = *CASCADE D* 'D' = *SETDFT D* 'L' = *SETNULL D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D QDBR4 66 66 D* Reserved. D* D QDBFRF00 67 67 D* Update Rule. D* (UPDRULE) D* 'N' = *NOACTION Default D* Value D* 'R' = *RESTRICT D* D QDBR5 68 128 D* Reserved. D* ************************************************************ D* Structure for a Check Constraint expression D* ************************************************************ DQDBQCC DS D* Qdb Qdbf Chk Cst D QDBFCL00 1 4I 0 D* Structure Length D QDBFCL01 5 8I 0 D* Expression Length D QDBFCDR 9 9 D* Decimal floating point D* rounding mode. D* Possible values: D* '0' - Round half even D* '1' - Round half up D* '2' - Round down D* '3' - Round ceiling D* '4' - Round floor D* '5' - Round half down D* '6' - Round up D* ' ' - Not applicable D QDBFCDW 10 10 D* Qdbf chk dfp warnings D* Indicates how DECFLOAT D* computations and conversions D* involving division by 0, D* overflow, underflow, an D* invalid operation, an inexact D* result, or a subnormal number D* are handled and returned to D* the caller. D* Possible values: D* ' ' - Not applicable D* '0' - Return an error for D* division by 0, D* overflow, underflow, D* or invalid operation. D* Ignore inexact results D* or subnormal numbers. D* '1' - Return warning(s) for D* any of the conditions. D* D QDBFCVIO 11 14I 0 D* Qdbf chk viol insert offset D* Offset from the start of the D* check constraint area, D* Qdb_Qdbf_Chk_Cst, to the Check D* Constraint Insert Violation D* section, D* Qdb_Qdbf_Chk_Cst_Violation D QDBFCVUO 15 18I 0 D* Qdbf chk viol update offset D* Offset from the start of the D* check constraint area, D* Qdb_Qdbf_Chk_Cst, to the Check D* Constraint Update Violation D* section, D* Qdb_Qdbf_Chk_Cst_Violation D QDBR8 19 32 D* .. reserved D*QDBQC00 33 33 D* D* First character of D* expression D* (varying length) D* ************************************************************ D* Structure for a Check Constraint Violation Action D* ************************************************************ DQDBQCCV DS D* Qdb Qdbf Chk Cst Violation D QDBFVL 1 4I 0 D* Violation clause length D QDBR9 5 16 D* Reserved D* char qdbf_viol_clause[]; D* ************************************************************ D* Structure for datalink header information. D* ************************************************************ DQDBTALNK DS D* Qdb Qdbfdtalnk D QDBLCOLN 1 4I 0 D* Number of datalink D* columns with links to D* servers. D QDBOCOLE 5 8I 0 D* Offset fromQdb_Qdbfdtalnk D* to the Qdb_dbfdlcole D* area. D QDBLINKP 9 9 D* Link pending staus. D* 'N' The file is not in D* link pending. D* 'Y' The file is in D* link pending. D QDBR127 10 32 D* .. reserved D* ************************************************************ D* Structure for datalink column information. D* ************************************************************ DQDBLCOLE DS D* Qdb Qdbfdlcole D QDBCELEN 1 4I 0 D* Length of this entry. D* Use this length to get D* to the next entry. D QDBLSEVN 5 8I 0 D* Number of servers linked D* for this column. D QDBCOLNM 9 18 D* Column name. D QDBR02 19 32 D* .. reserved D QDBSEVNM 33 286 D* Array of server names. D**************************************************************** D*Record ID Code Array Entry D**************************************************************** DQDBFDRAE DS D* Record ID Code Array D QDBRSV3400 1 4 D* Reserved. D QDBFDRNM00 5 14 D* External Name D QDBFDRRP00 15 16I 0 D* Relative Field Position D* 1-8000 = The relative D* position of the D* field in the record D* format. D QDBFDRCO00 17 18 D* Comparison Operator D* 'EQ' = Compare equal. D* 'NE' = Compare NOT equal. D* 'ZN' = Compare zone. D* 'NZ' = Compare NOT zone. D* 'DG' = Compare digit. D* 'ND' = Compare NOT digit. D QDBFDRLN00 19 20I 0 D* Length Of Test Value D* 1 = Test value length must be D* 1. D QDBFDRTV00 21 21 D* Test Value D QDBFDRAO00 22 22 D* AND/OR/Last Operator D* '0' = Last array entry. D* '1' = AND with next array D* entry. D* '2' = OR with next array D* entry. D QDBRSV3500 23 32 D* Reserved. D**************************************************************** D* D*Record ID Codes D* D*The Record ID Codes for program described physical D*files. The Record ID Code information is an array with D*variable length entries. D* D**************************************************************** D*This section can be located with the offset Qdbforid, which D*is located in the Physical File Specific Attributes section. D**************************************************************** DQDBQ28 DS D* Record ID Codes D* Record ID Code Header D QDBDRNUM 1 2I 0 D* The Number Of Record ID Code D* Array Entries D* 0-70 = The number of elements D* in the Record ID Code D* array. D QDBFDRTL 3 6I 0 D* Size Of This Record ID Code D* Table D* 0-2256 = The Record ID Code D* table size in bytes. D QDBRSV33 7 16 D* Reserved. D*QDBFDRAE00 32 D QDBRSV3401 17 20 D QDBFDRNM01 21 30 D QDBFDRRP01 31 32I 0 D QDBFDRCO01 33 34 D QDBFDRLN01 35 36I 0 D QDBFDRTV01 37 37 D QDBFDRAO01 38 38 D QDBRSV3501 39 48 D* Record ID Code Array Entry D******************************************************************** D* LOGICAL FILE DECLARATIONS FOR SQL INDEX D******************************************************************** DQDBQS DS D* SQL Index Attributes @APA D QDBBITS82 1 1 D* QDBFSI 1 BIT D* SQL Index with a derived key D* indicator: D* 0 = The file is NOT an SQL D* Index with a derived Key. D* 1 = The file is an SQL Index D* with a derived key. D* @APA D* QDBFSIU 1 BIT D* SQL Index with a derived key D* with a user defined UDF D* indicator: D* 0 = The file does NOT use a D* user defined UDF. D* 1 = The file does use a user D* defined UDF. D* @APA D* QDBFSW 1 BIT D* SQL Index with a Where D* clause indicator: D* 0 = The file does NOT have a D* Where clause. D* 1 = The file has a Where clause. D* @APA D* QDBFSWU 1 BIT D* SQL Index with a Where D* clause uses a user defined UDF D* indicator: D* 0 = The file does NOT use a user D* defined UDF. D* 1 = The file does use a user D* defined UDF. D* @APA D* QDBR501 4 BITS D* Reserved. @APA D******************************************************************** D* LOGICAL FILE DECLARATIONS D******************************************************************** D** Logical File Attributes *********************************** DQDBQLFA DS D* Logical File Attributes D QDBBITS07 1 1 D* QDBRSV36 2 BITS D* Reserved. D* QDBFJOIN 1 BIT D* Join Logical File Indicator D* (JFILE) D* 0 = The file is NOT a join D* logical file. D* 1 = The file is a join D* logical file. D* QDBFDYNS 1 BIT D* Dynamic Selection Indicator D* (DYNSLT) D* 0 = The selection and D* omission tests specified D* for the file are done D* when the access path is D* updated. D* 1 = The selection and D* omission tests specified D* for the file are done D* when the record is read D* (retrieved). D* QDBFSQLV 1 BIT D* SQL View Indicator D* 0 = The file is NOT an SQL D* view. D* 1 = The file is an SQL view. D* QDBFSQLI 1 BIT D* SQL Index Indicator D* 0 = The file is NOT an SQL D* index. D* 1 = The file is an SQL index. D* QDBRSV37 2 BITS D* Reserved. D**************************************************************** D* D*Logical File Specific Attributes D* D**************************************************************** D*This section can be located with the offset Qdblfof, which is D*located in the FDT header section. D**************************************************************** DQDBQ29 DS D* Logical File Attributes D QDBFOJ 1 4I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj. D QDBFSCSN 5 6I 0 D* Total Number Of Select/Omit D* Statements For All Record D* Formats D* 1-32767 = The number of D* Select/Omit D* statements for all D* of the files D* record formats. D QDBFLXP 7 16 D* Record Format Selector D* Program (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFLXL 17 26 D* Record Format Selector D* Program's Library (FMTSLR) D* X'00's = NO record format D* selector program D* (*NONE). D QDBFOVW 27 30I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Area, Qdbfv. D*QDBQLFA00 1 D QDBBITS34 31 31 D* QDBRSV3600 2 BITS D* QDBFJOIN00 1 BIT D* QDBFDYNS00 1 BIT D* QDBFSQLV00 1 BIT D* QDBFSQLI00 1 BIT D* QDBRSV3700 2 BITS D* Logical File Attributes D QDBFJTYP 32 32 D* Join File Type D* 'I' = Inner join. No default D* entries will be D* supplied if a join D* value does NOT exist. D* 'P' = Partial outer join. D* Default values D* (JDFTVAL) will be D* supplied if a join D* value does NOT exist. D QDBFSRCD 33 34U 0 D* Coded Character Set D* Identifier, CCSID, For D* Select/Omit Constants D* 0 = There are NO Select/Omit D* constants for the file. D* 1-65,535 = The CCSID for the D* file's Select/Omit D* constants. D QDBFWCHK 35 35 D* With Check Option D* 'C' = The With Check Option D* was specified with D* CASCADE. D* 'L' = The With Check Option D* was specified with D* Local. D* 'N' = No With Check Option D* was specified. D* This value will be set D* for all logical files. The D* values of 'C' and 'L' will D* only apply for SQL views. D QDBLOTRG 36 39I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Trigger Description Area, D* Qdbftrg @0DA D QDBLTRGN 40 41I 0 D* Number of triggers @0DA D*QDBQS00 1 D QDBBITS83 42 42 D* QDBFSI00 1 BIT D* QDBFSIU00 1 BIT D* QDBFSW00 1 BIT D* QDBFSWU00 1 BIT D* QDBR50100 4 BITS D* Logical File Attributes for D* an SQL Index with derived keys, D* or a WHERE clause. @APA D QDBRSV38 43 48 D* Reserved. @0DC D******************************************************************** D* SQL AREA FLAG DECLARATIONS D******************************************************************** D** Flags ***************************************************** DQDBVFLGS DS D* Flags D QDBBITS76 1 1 D* QDBFI 1 BIT D* SQL materialized query table D* initial data indicator: D* 0 = Deferred. Data is not D* inserted into the table as D* part of the Create Table D* statement. D* 1 = Immediate. Data is inserted D* initially. D* QDBFM00 1 BIT D* SQL materialized query table D* maintenance indicator: D* 0 = Reserved. D* 1 = User-maintained. D* QDBFR 1 BIT D* SQL materialized query table D* refresh indicator: D* 0 = Refresh-deferred. D* 1 = Reserved. D* QDBFO 1 BIT D* SQL materialized query table D* optimization indicator: D* 0 = Enabled for optimization. D* 1 = Disabled for optimization. D* QDBR123 1 BIT D* Reserved. D* QDBFR09 1 BIT D* SQL materialized query table D* restore deferred indicator: D* 0 = MQT is not deferred. D* 1 = MQT is deferred because D* it was restored without D* its based-on files, and D* the based-on files have D* not yet been resolved. D* QDBRSV8800 2 BITS D* Reserved. D**************************************************************** D* D*SQL Area D* D*The SQL Area contains the SQL select statement. D* D**************************************************************** D*For SQL views, or indexes D*this section can be located with the offset D*Qdbfovw, which is located in the Logical file specific D*attributes section. For SQL materialized query tables, this D*section can be located with the offset Qdbfovw_mqt, in the D*Physical file specific attributes section. D**************************************************************** DQDBQ30 DS D* SQL Area D QDBRSV39 1 16 D* Reserved. D QDBFS01 17 20U 0 D* Starting offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFE 21 24U 0 D* Ending offset of the SELECT D* statement within CREATE TABLE D* statement. D QDBFC03 25 26U 0 D* Coded Character Set D* Identifier, CCSID, for the D* Select Statement D QDBFO00 27 30U 0 D* For SQL materialized query D* tables, offset from the start D* of the FDT header, Qdbfh, to D* the SQL materialized query D* table dependency area. D QDBFC02 31 32 D* For SQL materialized query D* tables, the isolation level D* in effect for the table: D* 'NC' - *NONE no commit D* 'UR' - *CHG uncommitted read D* 'CS' - *CS cursor stability D* 'CL' - *CS with keep locks D* 'RS' - *ALL read stability D* 'RR' - *RR repeatable read D* Null if not an MQT. D*QDBFVLGS 1 D QDBBITS77 33 33 D* QDBFI00 1 BIT D* QDBFM01 1 BIT D* QDBFR00 1 BIT D* QDBFO01 1 BIT D* QDBR12300 1 BIT D* QDBFR10 1 BIT D* QDBRSV8801 2 BITS D* Flags D QDBFSWS 34 37U 0 D* Qdbfvs sqli wh start D* Starting offset of the WHERE D* condition within CREATE INDEX D* statement. D QDBFSWL 38 41U 0 D* Qdbfvs sqli wh len D* Length of the WHERE D* condition within CREATE INDEX D* statement. D QDBRSV8901 42 56 D* Reserved D* SQL Select Statement, or D* SQL Create Index D* Structure D QDBFVSSL 57 60I 0 D* Select, or Create Index D* Length D*QDBFVSST 61 61 D* Qdbfvsst D* D* SQL Select, or Create Index D* (varying length) D******************************************************************** D* JOIN SPECIFICATION DECLARATIONS D******************************************************************** D** Join Specifications Header ******************************** DQDBQ06 DS D* Join Specifications Header D QDBFJNHO 1 4I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specifications, Qdbfj, D* for the next join to-file. D QDBRSV40 5 8 D* Reserved. D QDBJKNUM 9 10I 0 D* Number Of Join Field D* Specifications (JFLD) D* 1-32767 = The number of join D* field statements D* that identify the D* from and to fields D* used to join the D* from-file and D* to-file. D QDBJDNUM 11 12I 0 D* Number Of Join Duplicate D* Sequence Specifications D* (JDUPSEQ) D* 1-32767 = The number of join D* duplicate sequence D* statements that D* specify the order D* in which records D* with duplicate join D* fields are returned D* to your program. D QDBFFNUM 13 14I 0 D* Join From-File Number (JOIN) D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical file to D* join the to-file from. D QDBTFNUM 15 16I 0 D* Join To-File Number (JOIN) D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement. D* This number indicates which D* based on physical to-file D* this Join Specification D* relates to. D QDBRSV41 17 40 D* Reserved. D QDBFJSAO 41 44I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Specification Array, D* Qdbfjfld, for this join D* to-file. D QDBFJDAO 45 48I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Join Duplicate Sequence D* Array, Qdbfjdup, for this D* join to-file. D**************************************************************** D* D*Join Specifications D* D*The Join Specifications are a linked list. There is one D*entry in the linked list for each join to-file. Each D*entry defines the join logical file's based on physical D*files, and the fields in the from-file and the to-file that D*are used to join the based on physical files. D* D**************************************************************** D*This section can be located with the offset Qdbfoj, which is D*located in the FDT header section. D**************************************************************** DQDBQ31 DS D* Join Specifications D*QDBFJHDR 48 D QDBFJNHO00 1 4I 0 D QDBRSV4000 5 8 D QDBJKNUM00 9 10I 0 D QDBJDNUM00 11 12I 0 D QDBFFNUM00 13 14I 0 D QDBTFNUM00 15 16I 0 D QDBRSV4100 17 40 D QDBFJSAO00 41 44I 0 D QDBFJDAO00 45 48I 0 D* Join Specifications Header D**************************************************************** D* D*Join Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjsao, which D*is located in the Join header section. D**************************************************************** DQDBQ32 DS D* Join Specification Array D QDBFJFNM 1 10 D* Join From-Field-Name (JFLD) D QDBJFNUM 11 12I 0 D* Join From-Field Reference D* Number D* 0 = The join from-field is D* a field in the join D* logical file's record D* format. D* 1-256= The number of the D* based on physical D* from-file corresponding D* with its position in D* the JFILE statement D* that this join D* from-field is D* contained in. D QDBRSV42 13 14 D* Reserved. D QDBFJOP 15 16 D* Join Operation D* 'EQ' = The join operation is D* always equal. D QDBFJTNM 17 26 D* Join To-Field-Name (JFLD) D QDBJTNUM 27 28I 0 D* Join To-Field Reference D* Number D* 0 = The join to-field is a D* field in the join logical D* file's record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* to-field is contained D* in. D QDBRSV43 29 48 D* Reserved. D**************************************************************** D*Join Duplicate Sequence Specification D**************************************************************** D** Join Sequencing-Field-Name Attributes ********************* DQDBQ07 DS D* Join Sequencing-Field-Name D* Attributes D QDBBITS08 1 1 D* QDBFJDD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The join sequencing- D* field-name is an D* ascending sequence field. D* 1 = The join sequencing- D* field-name is a D* descending sequence field D* (*DESCEND). D* QDBRSV44 7 BITS D* Reserved. D**************************************************************** D* D*Join Duplicate Sequence Specification Array D* D**************************************************************** D*This section can be located with the offset Qdbfjdao, which D*is located in the Join header section. D**************************************************************** DQDBQ33 DS D* Join Duplicate Sequence D* Specifications Array D QDBFJDNM 1 10 D* Join Sequencing-Field-Name D* (JDUPSEQ) D QDBDJNUM 11 12I 0 D* Join Sequencing-Field-Name D* Reference Number D* 0 = The join sequencing- D* field-name is a field in D* the join logical file's D* record format. D* 2-256= The number of the D* based on physical D* to-file corresponding D* with its position in D* the JFILE statement D* that this join D* sequencing-field-name D* is contained in. D*QDBJSFNA 1 D QDBBITS35 13 13 D* QDBFJDD00 1 BIT D* QDBRSV4400 7 BITS D* Join Sequencing-Field-Name D QDBRSV45 14 32 D* Reserved. D******************************************************************** D* SORT SEQUENCE TABLE DECLARATIONS D******************************************************************** D** Sort Sequence Table Fields ******************************** DQDBFSRTS00 DS D* Sort Sequence Table Fields D QDBFTBLN00 1 10 D* Sort Sequence Table Name. D QDBFTBLL00 11 20 D* Sort Sequence Table's. D* Library Name D** Sort Sequence Table Flag ********************************** DQDBQ08 DS D* Sort Sequence Table Flag D QDBBITS09 1 1 D* QDBFWGHT 1 BIT D* Weight Indicator for Single- D* byte Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBFSUBC 1 BIT D* Substitution Character D* Indicator for Single-byte D* Sort Sequence Table D* 0 = The sort sequence D* table for the file does D* not have substitution D* characters. D* 1 = The sort sequence D* table for the file has D* substitution characters. D* QDBUCS2W 1 BIT D* Weight Indicator for UCS-2 D* Sort Sequence Table D* 0 = The sort sequence D* table for the file is D* shared weighted. D* 1 = The sort sequence D* table for the file is D* unique weighted. D* QDBR104 5 BITS D* Reserved D**************************************************************** D* D*Alternative Collating Sequence Table or Sort Sequence Table. D* D**************************************************************** D*This section can be located with the offset Qdbfocs, which is D*located in the FDT header section. D**************************************************************** DQDBQ34 DS D* Qdb Qdbfacs D QDBFACST 1 256 D* Alternative Collating D* Sequence Table (ALTSEQ), or D* Sort Sequence Table (SRTSEQ) D* Information. Single-byte. D QDBFCCSD 257 258U 0 D* Coded Charactor Set D* Identifier, CCSID, for the D* Single-byte Table. D*QDBFSRTS 20 D QDBFTBLN01 259 268 D QDBFTBLL01 269 278 D* Sort Sequence Table Fields D*QDBFSRTF 1 D QDBBITS36 279 279 D* QDBFWGHT00 1 BIT D* QDBFSUBC00 1 BIT D* QDBUCS2W00 1 BIT D* QDBR10400 5 BITS D* Sort Sequence Table Flag D QDBCS2SL 280 283I 0 D* Length of UCS-2 Sort Sequence D* table, Qdbf_UCS2_Srtseq. D QDBUCS2C 284 285U 0 D* Qdbf UCS2 Ccsd D* Coded Character Set ID, CCSID, D* of UCS-2 sort sequence table. D QDBR101 286 304 D* Reserved D*QDBUCS2S 305 305 D* D* UCS-2 Sort Sequence Table. D* (Varying length.) D**************************************************************** D* D*IDDU/SQL Data Dictionary Area D* D*The IDDU/SQL data dictionary area is present for all Database D*files. D* D**************************************************************** D*This section can be located with the offset Qdbfodic, which D*is located in the FDT header section. D**************************************************************** DQDBFDIC DS D* IDDU/SQL Data Dictionary D* Area D QDBFDILK 1 1 D* Data Dictionary Link Status D* 'L' = The file is linked to D* a Data Dictionary. D* 'U' = The file is NOT linked D* to a Data Dictionary. D QDBFDINM 2 11 D* Data Dictionary/Library Name D QDBFDIFD 12 21 D* Data Dictionary File D* Definition Name D QDBFDIID 22 32 D* Data Dictionary Internal File D* Definition Identifier D QDBRSV46 33 36 D* Reserved. D QDBFDICL 37 40I 0 D* Data Dictionary File D* Definition Comment Length D QDBFDICC 41 42U 0 D* Data Dictionary File D* Definition Comment Coded D* Character Set Identifier D* (CCSID) D* 0 = There is NO file D* definition comment for D* the file. D* 1-65,535 = The CCSID for the D* file's definition D* comment. D QDBFOLNG 43 46I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* SQL Long/Alias File Names D* Area, Qdbflngn. D QDBLNNUM 47 48I 0 D* Number of Long/Alias File D* Names for the file D QDBRSV47 49 64 D* Reserved. D*QDBFDICT 65 65 D* D* Data Dictionary File D* Definition Comment Text D* (varying length) D******************************************************************** D* SQL LONG ALIAS FILE NAME DECLARATIONS D******************************************************************** D** Long/Alias File Name Flag Byte **************************** DQDBQ09 DS D* Long/Alias File Name Flag D* Byte D QDBBITS10 1 1 D* QDBFLNDL 1 BIT D* Long/Alias File Name D* Input Delimited Indicator D* 0 = Long/Alias File Name was D* NOT delimited when D* supplied as input. D* 1 = Long/Alias File Name was D* delimited when supplied D* as input. D* QDBR111 7 BITS D* Reserved D**************************************************************** D* D*SQL Long/Alias File Names Area D* D*The SQL Long/Alias File Names Area contains the files D*alternate names that can be used to access the file when D*using the systems SQL interfaces. D**************************************************************** D*This section can be located with the offset Qdbfolng, which D*is located in the IDDU/SQL Data Dictionary Area section. D**************************************************************** DQDBQ35 DS D* SQL Long/Alias File Names D* Area D* Long/Alias File Names Entry D QDBFLNEL 1 2I 0 D* Long/Alias File Name Entry D* Length. The length, in bytes, D* of this Long/Alias File Name D* Entry. This also is the D* offset from Qdb_Qdbflngn to D* the next Long/Alias File Name D* Entry. D*QDBFLNFL 1 D QDBBITS37 3 3 D* QDBFLNDL00 1 BIT D* QDBR11100 7 BITS D* Long/Alias File Name Flag D QDBFLNLG 4 5I 0 D* Long/Alias File Name D* (non-delimited) Length D QDBR112 6 16 D* Reserved D*QDBFLNAM 17 17 D* D* The Long/Alias File Name D* (non-delimited) D* (varying length) D**************************************************************** D* D*File Scope Array D* D*The file scope array is present for all Database files. D*The number of data members, Qdbflb#, contains the number of D*file scope array entries. Each entry contains a based on D*physical file name, and optionally a record format name. D* D*Externally Described Physical Files: D* There is only one entry. The entry names the physical D* file record format. The file name portion of the entry D* is NOT used. D* D*Program Described Physical Files: D* There is one entry for each Data Dictionary record format. D* The entry names the Data Dictionary record format. The D* file name portion of the entry is NOT used. D* D*Non-Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file and describes the D* logical file record format to use with the based on file. D* D*Join Logical Files: D* There is one entry for each based on physical file. Each D* entry names the based on physical file. Only the first D* entry describes the logical file record format to use with D* the join logical file. D* D*SQL View Logical Files: D* There is one entry for each based on physical file. Each D* entry names the base on file which will be either an D* externally described physical file, or another view D* logical file. Only the first entry describes the logical D* file record format to use with the view logical file. D* D**************************************************************** D*This section can be located with the offset Qdbfos, which is D*located in the FDT header section. D**************************************************************** DQDBQ36 DS D* Qdb Qdbfb D QDBRSV48 1 48 D* Reserved. D QDBFBF 49 58 D* Based On Physical File Name D QDBFBFL 59 68 D* Based On Physical File's D* Library Name D QDBFT01 69 78 D* Record Format Name D* The name of this particular D* record format for the file. D QDBRSV49 79 115 D* Reserved. D QDBFBGKY 116 117I 0 D* Record Format Generic Key D* Field Count D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV50 118 119 D* Reserved. D QDBFBLKY 120 121I 0 D* Record Format Maximum Key D* Length D* 1-32768 = Maximum length of D* the key for the D* record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV51 122 123 D* Reserved. D QDBFFOGL 124 125I 0 D* Record Format Generic Key D* Length D* 0-32768 = The length of the D* key before the first D* *NONE key field for D* the record format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBRSV52 126 128 D* Reserved. D QDBFSOON 129 130I 0 D* Number Of Select/Omit D* Statements D* 1-32767 = The number of D* Select/Omit D* statements for this D* record format. D QDBFSOOF 131 134I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Specification D* Array, Qdbfss. D QDBFKSOF 135 138I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Key Specification Array, D* Qdbfk. D QDBFKYCT 139 140I 0 D* Record Format Full Key Field D* Count D* 0-120 = The count of the D* total number of key D* fields for the record D* format. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFGENF 141 142I 0 D* Generic Key Field Count For D* All Record Formats With This D* Record Format Name D* 0-120 = The count of the D* number of key fields D* before the first D* *NONE key field for D* all the record D* formats with this D* record format's name. D* If this file has an arrival D* sequence access path, this D* field is NOT applicable. D QDBFODIS 143 146I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Distributed File Definition D* Section Qdbf_dis, which D* contains the Partition Key D* Array, Qdbf_dis_pkeyarr. D QDBRSV53 147 160 D* Reserved. D******************************************************************** D* SELECT/OMIT STATEMENT DECLARATIONS D******************************************************************** D** Select/Omit Statement Attribute Flags ********************* DQDBQ10 DS D* Select/Omit Statement D* Attribute Flags D QDBBITS11 1 1 D* QDBRSV55 7 BITS D* Reserved. D* QDBFSSFI 1 BIT D* Select/Omit Statement D* External Or Internal Name D* Indicator D* 0 = The Select/Omit statement D* field name is an internal D* record format name. D* 1 = The Select/Omit statement D* field name is an external D* record format name. D**************************************************************** D* D*Select/Omit Specification Array D* D*The Select/Omit specification array entries describe the D*record format's fields that the Select/Omit statements D*refer to. D* D*Non-Join Logical Files: D* There can be one Select/Omit specification array for D* each file scope array entry. D* D*Join Logical Files: D* There can only be one Select/Omit specification array D* for the join logical file. The first scope array entry D* for the join logical file will contain the offset to the D* file's Select/Omit specification array. D* D*All Select/Omit specification arrays will end with an D*'AL' operation. D* D*Select/Omit constant operands have the following form: D* D* Character - Quoted character string (imbedded quotes D* must be double quoted 'ISN''T'). D* Blank padding will be done if the character D* constant passed is shorter than the field. D* D* Hexadecimal - X followed by a quoted string of valid D* hexadecimal values (X'F1F2F3'). D* No padding will be done for a hexadecimal D* constant. The length of a hexadecimal D* constant must exactly match the field D* length. D* D* Floating - External form of floating point D* Point (1.234 E+10). D* D* Packed or - String of 0 through 9 without decimal point. D* Zoned or The decimal point is assumed at the D* Binary appropriate precision. The string must be D* Preceded by a - if negative and may be D* preceded by a + if positive (+1234 or D* -1234 would be +1.234 or -1.234 if the field D* was defined to have 3 decimal places). D* D**************************************************************** D*This section can be located with the offset Qdbfsoof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ37 DS D* Select/Omit Specification D* Array D QDBRSV54 1 2 D* Reserved. D QDBFSSSO 3 3 D* Select/Omit Statement Rule D* 'A' = Select/Omit ANDed D* statement D* 'O' = Select/Omit omit D* statement D* 'S' = Select/Omit select D* statement D QDBFSSOP 4 5 D* Select/Omit Statement D* Comparison (ALL COMP VALUES) D* 'AL' = The Select/Omit D* statement comparison D* is for all (ALL) D* 'EQ' = The Select/Omit D* statement comparison D* is for equal to D* (COMP EQ). D* 'GE' = The Select/Omit D* statement comparison D* is for greater than D* or equal to (COMP GE). D* 'GT' = The Select/Omit D* statement comparison D* is for greater than D* (COMP GT). D* 'LE' = The Select/Omit D* statement comparison D* is for less than or D* equal to (COMP LE). D* 'LT' = The Select/Omit D* statement comparison D* is for less than D* (COMP LT). D* 'NE' = The Select/Omit D* statement comparison D* is for NOT equal to D* (COMP NE). D* 'NG' = The Select/Omit D* statement comparison D* is for NOT greater D* than (COMP NG). D* 'NL' = The Select/Omit D* statement comparison D* is for NOT less than D* (COMP NL). D* 'VA' = The Select/Omit D* statement comparison D* is for values (VALUES) D QDBFSSFN 6 15 D* Select/Omit Statement Field D* Name D QDBSPNUM 16 17I 0 D* Number Of Select/Omit D* Statement Parameters D* 1-32767 = The number of D* Select/Omit D* parameters for this D* Select/Omit D* statement. D*QDBSOSAF 1 D QDBBITS38 18 18 D* QDBRSV5500 7 BITS D* QDBFSSFI00 1 BIT D* Select/Omit Statement D QDBFSSFJ 19 20I 0 D* Select/Omit Statement Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* statement field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. D QDBRSV56 21 28 D* Reserved. D QDBFSOSO 29 32I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* Select/Omit Parameters, D* Qdbfsp, for this Select/Omit D* statement. D******************************************************************** D* SELECT/OMIT PARAMETER DECLARATIONS D******************************************************************** D** Additional Select/Omit Parameter Attribute Flags ********** DQDBQ11 DS D* Additional Select/Omit D* Parameter Attribute Flags D QDBBITS12 1 1 D* QDBFSIGC 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* Indicator D* 0 = The non-field compare D* value does NOT contain D* any DBCS or Graphic data. D* 1 = The non-field compare D* value does contain DBCS D* or Graphic data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSHEX 1 BIT D* Hexadecimal Data Indicator D* 0 = The non-field compare D* value is NOT hexadecimal D* data. D* 1 = The non-field compare D* value is hexadecimal D* data. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBFSNUL 1 BIT D* Null Value Indicator D* 0 = The non-field compare D* value is NOT the null D* value. D* 1 = The non-field compare D* value is the null value. D* If this is NOT a non-field D* compare value, then this D* field is NOT applicable. D* QDBRSV57 5 BITS D* Reserved. D**************************************************************** D* D*Select/Omit Parameters D* D*This is a linked list of parameter descriptions. This D*section describes the parameter values for this particular D*Select/Omit statement. The Select/Omit parameters are D*either a compare value or another record format field. D* D**************************************************************** D*This section can be located with the offset Qdbfsoso, which D*is located in the Select omit array section. D**************************************************************** DQDBQ38 DS D* Select/Omit Parameter D QDBFSPNO 1 4I 0 D* Offset from the start of the D* FDT header, Qdbfh, to the D* next Select/Omit Parameter, D* Qdbfsp, for this Select/Omit D* statement. D QDBFSPLN 5 6I 0 D* Select/Omit Parameter Length D* 1-32767 = The length of this D* Select/Omit D* parameter structure D* including the D* actual compare D* value. D QDBFSPIN 7 7 D* Select/Omit Parameter D* Attribute Indicator D* X'00' = The Select/Omit D* parameter is NOT D* another record format D* field. It is an D* actual compare value. D* X'01' = The Select/Omit D* parameter is another D* internal record D* format field. D* X'02' = The Select/Omit D* parameter is another D* external record D* format field. D*QDBSOPAF 1 D QDBBITS39 8 8 D* QDBFSIGC00 1 BIT D* QDBFSHEX00 1 BIT D* QDBFSNUL00 1 BIT D* QDBRSV5700 5 BITS D* Additional Select/Omit D QDBFSPPJ 9 10I 0 D* Select/Omit Parameter Join D* Reference Number (JREF) D* 1-256= The number of the D* based on physical D* file corresponding D* with its position in D* the JFILE statement D* that this Select/Omit D* parameter field D* references. D* If this file is NOT a join D* logical file, then this D* field is NOT applicable. Also, D* if this is a non-field D* compare value, then this D* field is NOT applicable. D QDBRSV58 11 20 D* Reserved. D*QDBFSPVL 21 21 D* D* Select/Omit Parameter Compare D*(varying length) Value Or Record Format Field D* Name D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is an actual D* compare value (X'00'), then D* this field is the parameter D* compare value. D* When the Select/Omit D* parameter attribute indicator D* (Qdbfspin) is a record format D* field (X'01' or X'02'), then D* this field is the CHAR(10) D* parameter record format field D* name. D******************************************************************** D* KEY SPECIFICATION ARRAY DECLARATIONS D******************************************************************** D** Key Statement Sequencing Attribute Flags ****************** DQDBQ12 DS D* Key Statement Sequencing D* Attribute Flags D QDBBITS13 1 1 D* QDBFKSAD 1 BIT D* Ascending/Descending D* Sequence Indicator D* 0 = The key field is an D* ascending sequence key. D* 1 = The key field is a D* descending sequence key D* (*DESCEND). D* QDBFKSN 2 BITS D* Numeric Key Field Sequencing D* Indicators D* B'00' = The numeric key field D* will sequence as a D* string of unsigned D* binary data D* (UNSIGNED). D* B'01' = The numeric key field D* will ignore the sign D* of the field and D* sequence as absolute D* value data (ABSVAL). D* B'10' = The numeric key field D* will consider the D* signs of the field D* and sequence as D* signed value data D* (SIGNED). D* QDBRSV60 1 BIT D* Reserved. D* QDBFKSAC 1 BIT D* Alternative Collating D* Sequence Indicator (ALTSEQ) D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field D* (NOALTSEQ). D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating D* sequence table, then this D* field is NOT applicable. D* QDBFKSZF 1 BIT D* Force Zone Sequencing D* Indicators D* 0 = The zone portion of the D* key field will NOT be D* zeroed. D* 1 = The zone portion of the D* key field will be zeroed D* so that only the digit D* portions (farthest right D* 4 bits) of the key values D* will be used in the key D* sequencing (DIGIT). D* QDBFKSDF 1 BIT D* Force Digit Sequencing D* Indicators D* 0 = The digit portion of the D* key field will NOT be D* zeroed. D* 1 = The digit portion of the D* key field will be zeroed D* so that only the zone D* portions (farthest left D* 4 bits) of the key values D* will be used in the key D* sequencing (ZONE). D* QDBFKFT 1 BIT D* Key Statement External Or D* Internal Name Indicator D* 0 = The key statement field D* name is an internal D* record format name. D* 1 = The key statement field D* name is an external D* record format name. D**************************************************************** D* D*Key Specification Array D* D*The key specification array entries describe the record D*format's fields that are used in defining the access path D*for the file. D* D*Non-Join Logical Files: D* There can be one key specification array for each file D* scope array entry. D* D*Join Logical Files: D* There can only be one key specification array for the D* join logical file. The first scope array entry for the D* join logical file will contain the offset to the file's D* key specification array. D* D**************************************************************** D*This section can be located with the offset Qdbfksof, which D*is located in the Scope array entry section. D**************************************************************** DQDBQ39 DS D* Key Specification Array D QDBFKFLD 1 10 D* Key Statement Field Name D* X'40's = The key statement D* field is a *NONE key D* field. D QDBRSV59 11 13 D* Reserved. D*QDBFKSQ 1 D QDBBITS40 14 14 D* QDBFKSAD00 1 BIT D* QDBFKSN00 2 BITS D* QDBRSV6000 1 BIT D* QDBFKSAC00 1 BIT D* QDBFKSZF00 1 BIT D* QDBFKSDF00 1 BIT D* QDBFKFT00 1 BIT D* Key Statement Sequencing D QDBRSV61 15 32 D* Reserved. D******************************************************************* D* D*Distributed File Definition Section and Partition Key Array. D* D*The Distributed File Definition Section and Partition Key D*Array consists of 2 parts - the Distributed File Definition D*Section Header and the Partition Key Array. D******************************************************************* D*The section Qdb_Qdbf_dis is located by the offset Qdbfodis D*which is located in the File Scope Array Section. D******************************************************************* D**************************************************************** D*Partition Key Array D*This array is located in the structure below it, Qdb_Qdbf_dis. D* D**************************************************************** DQDBQDP DS D* Partition key names array D* D QDBFDK 1 10 D* Partition key name D QDBR125 11 32 D* Reserved D**************************************************************** D*Distributed File Definition Section Header D* D**************************************************************** DQDBQD DS D* Distributed File Definition D* Section for this scope D* entry D QDBFDN 1 10 D* Node group name D QDBFDN00 11 20 D* Node group library D QDBFDN01 21 24I 0 D* Number of partition keys D* D QDBR200 25 64 D* Reserved D*QDBFDP 32 D* Qdbf dis pkeyarr D QDBFDK00 65 74 D* Qdbf dis kname D QDBR126 75 96 D* Reserdis 1 D* Partition key names array D* D******************************************************************** D* JOURNAL SECTION DECLARATIONS D******************************************************************** D** Journaling Option Flags *********************************** DQDBQ13 DS D* Journaling Option Flags D QDBBITS14 1 1 D* QDBR106 1 BIT D* Reserved. D* QDBFJBIM 1 BIT D* Before Images Indicator. D* 0 = The before images are not D* being journaled. D* 1 = Before images are D* being journaled D* QDBFJAIM 1 BIT D* After Images Indicator. D* 0 = The after images are not D* being journaled. D* 1 = The after images are D* being journaled. D* QDBR107 1 BIT D* Reserved. D* QDBFJOMT 1 BIT D* Omit Journal Entries D* Indicator. D* 0 = All entries are being D* journaled. D* 1 = The open and close entries D* are being omitted from D* the journal. D* QDBR108 3 BITS D* Reserved. D**************************************************************** D* D*Journal Section D* D*The journal information of this physical file. D* D**************************************************************** D*This section can be located with the offset Qdbfjorn, which is D*located in the FDT header section. D**************************************************************** DQDBQ40 DS D* Journal Section D QDBFOJRN 1 10 D* Journal Name D QDBFOLIB 11 20 D* Journal Library Name D*QDBFOJPT 1 D QDBBITS41 21 21 D* QDBR10600 1 BIT D* QDBFJBIM00 1 BIT D* QDBFJAIM00 1 BIT D* QDBR10700 1 BIT D* QDBFJOMT00 1 BIT D* QDBR10800 3 BITS D* Journaling Option Flags D QDBFJACT 22 22 D* Journaling Options. D* '0' = The file is not being D* journaled. D* '1' = The file is being D* journaled. D QDBFLJRN 23 35 D* Last Journaling date D* Stamp-This is the date D* that corresponds to the most D* recent time that journaling D* was started for the file. D* The date is in D* internal standard format D* (ISF), CYYMMDDHHMMSS. D QDBR105 36 64 D* Reserved. D******************************************************************** D* QDBRTVFD FILD0200 FORMAT DECLARATIONS D******************************************************************** D** Record format DBCS flags ********************************** DQDBQ14 DS D* Record format DBCS flags D QDBBITS15 1 1 D* QDBFRITY 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic Data D* 0 = The format does NOT D* contain DBCS or graphic D* data fields. D* 1 = The format does contain D* DBCS or graphic data D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRILT 1 BIT D* Double-Byte Character Set D* (DBCS) and/or Graphic D* Literals D* 0 = The format definition for D* the format does NOT D* contain DBCS or graphic D* literals. D* 1 = The format definition for D* the format does contain D* DBCS or graphic literals. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRITX 1 BIT D* Double-Byte Character Set D* (DBCS) Record Format Text D* Description D* 0 = The text description D* (TEXT) for the format D* does NOT contain DBCS D* data. D* 1 = The text description D* (TEXT) for the format D* does contain DBCS data. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRMEP 1 BIT D* Mapping Error Possible D* 0 = The format does NOT D* contain fields which may D* return data mapping D* errors. D* 1 = The format does contain D* fields which may return D* data mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFRDRV 1 BIT D* Derived Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields derived D* from fields in the D* physical file the logical D* file is based on, or from D* fields in this logical D* file (CONCAT or SST). D* 1 = The format does contain D* fields derived from D* fields in the physical D* file the logical file is D* based on, or from fields D* in this logical file D* (CONCAT or SST). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBDFRNI 1 BIT D* Neither or Input-Only Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which can D* be used neither for input D* nor output operations, D* nor does it contain D* fields which can be used D* for input operations D* only. D* 1 = The format does contain D* fields which can be used D* neither for input nor D* output operations, or it D* does contain fields which D* can be used for input D* operations only. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFRDFI 1 BIT D* Default Values D* (Physical files only) D* 0 = The format does NOT D* contain fields with D* default values (DFT). D* 1 = The format does contain D* fields with default D* values (DFT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFCATO 1 BIT D* Concatenated Fields D* (Logical files only) D* 0 = The format does NOT D* contain fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* 1 = The format does contain D* fields which are D* concatinations of two or D* more fields from the D* physical file record D* format (CONCAT). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D** Format Flags ********************************************** DQDBTFLGS DS D* Format Flags D QDBBITS64 1 1 D* QDBR11304 1 BIT D* Reserved D* QDBFUCSD 1 BIT D* UCS-2 fields D* 0 = The format does NOT D* contain fields which are D* UCS-2. D* 1 = The format does contain D* fields which are UCS-2. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLNK 1 BIT D* Datalink fields. D* 0 = The format does NOT D* contain fields which are D* datalinks. D* 1 = The format does contain D* fields which are D* datalinks. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDUDT 1 BIT D* User Defined Type fields. D* 0 = The format does NOT D* contain fields which are D* UDTs. D* 1 = The format does contain D* fields which are UDTs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFDLOB 1 BIT D* Large Object fields. D* 0 = The format does NOT D* contain fields which are D* LOBs. D* 1 = The format does contain D* fields which are LOBs. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFUTFD 1 BIT D* UTF-8 or UTF-16 fields. D* 0 = The format does NOT D* contain fields which are D* UTF-8 or UTF-16. D* 1 = The format does contain D* fields which are UTF-8 D* or UTF-16. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBR114 2 BITS D* Reserved D** Flags ***************************************************** DQDBQ15 DS D* Flags D QDBBITS16 1 1 D* QDBRSV65 1 BIT D* Reserved D* QDBFRVAR 1 BIT D* Variable Length Fields D* 0 = The format does NOT D* contain fields which are D* variable length (VARLEN). D* 1 = The format does contain D* fields which are variable D* length (VARLEN). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRGPH 1 BIT D* Graphic Fields D* 0 = The format does NOT D* contain graphic data D* fields. D* 1 = The format does contain D* graphic data fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRDTT 1 BIT D* Date, Time or Timestamp D* Fields. D* 0 = The format does NOT D* contain date, time or D* timestamp fields. D* 1 = The format does contain D* date, time or timestamp D* fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRNUL 1 BIT D* Null Capable Fields D* 0 = The format does NOT D* contain fields which D* allow the null value D* (ALWNULL). D* 1 = The format does contain D* fields which allow the D* null value (ALWNULL). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFRSID 1 BIT D* Common Coded Character Set D* Identifier Flag D* 0 = NOT all character fields D* in the format use the D* same coded character set D* identifier (CCSID). D* 1 = All character fields in D* the format use the same D* coded character set D* identifier (CCSID). The D* actual CCSID can be found D* in variable Qddfrcid. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBFESID 1 BIT D* Explicit Coded Character Set D* Identifier Flag D* 0 = NO coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, nor for any D* fields within the format. D* 1 = A coded character set D* identifier (CCSID) was D* specified for the D* physical file containing D* the format, or for one or D* more fields within the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D* QDBYIMRT 1 BIT D* Use for QCPIMPRT. @AVA D**************************************************************** D* Record Structure for QDBRTVFD FILD0200 format D**************************************************************** D**************************************************************** D* D* FMTD HEADER D* D**************************************************************** D*This section is always located at the beginning of the D*returned data. D**************************************************************** DQDBQ41 DS D* Header information D* The FMTD starts here. D QDBBYRTN00 1 4I 0 D* Bytes Returned D* The length, in bytes, of the D* data returned. D QDBBYAVA00 5 8I 0 D* Bytes Available D* The total length, in bytes, D* of the format. D QDBRSV62 9 32 D* Reserved D* Record status flags D*QDBFFMTF 1 D QDBBITS42 33 33 D* QDBFRITY00 1 BIT D* QDBFRILT00 1 BIT D* QDBFRITX00 1 BIT D* QDBFRMEP00 1 BIT D* QDBFRDRV00 1 BIT D* QDBDFRNI00 1 BIT D* QDBFRDFI00 1 BIT D* QDBFCATO00 1 BIT D* Record format DBCS flags D QDBFXLTO 34 37I 0 D* Offset from start of FMTD D* header to the translate table D* specifications (Qddfxl). D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCAO 38 41I 0 D* OFFSET to the SELECTION D* specifications for CASE D* operators in this record D* format(Qddfcsl). This is only D* valid for query formats D* (DB) CREATE: N EXTRACT: N D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFDICO 42 45I 0 D* Offset from start of FMTD D* header to the IDDU/SQL D* dictionary format D* information (Qddfdic). D* (DB) CREATE : Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D QDBFRCID 46 47U 0 D* Common Coded Character Set D* Identifier. D* Note: Before using this D* field, you should check D* Qddfrsid, if it is zero, then D* NOT all character fields in D* the format use the same coded D* character set identifier D* (CCSID), and this field is D* not valid. D* 65535 = The format contains D* no character fields. D* nnnnn = All character fields D* in the format use D* this coded character D* set identifier D* (CCSID). D* (QQ) QUERY: Y D QDBFSRCD00 48 49U 0 D* Source File Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) specified for D* the character portion D* of the source file D* which contained the D* DDS used to create D* the format. (CCSID). D* This CCSID should be used for D* the Qddfdtxt field also. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRTCD 50 51U 0 D* Format Text Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the text D* description (TEXT) of D* the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBFRLCD 52 53U 0 D* Long Comment Coded Character D* Set Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for the D* information about the D* content and purpose D* of the format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBRSV64 54 60 D* Reserved D*QDBTFLGS00 1 D QDBBITS65 61 61 D* QDBR11305 1 BIT D* QDBFUCSD00 1 BIT D* QDBFDLNK00 1 BIT D* QDBFDUDT00 1 BIT D* QDBFDLOB00 1 BIT D* QDBFUTFD00 1 BIT D* QDBR11400 2 BITS D* Format flags D*QDBDFLGS 1 D QDBBITS43 62 62 D* QDBRSV6500 1 BIT D* QDBFRVAR00 1 BIT D* QDBFRGPH00 1 BIT D* QDBFRDTT00 1 BIT D* QDBFRNUL00 1 BIT D* QDBFRSID00 1 BIT D* QDBFESID00 1 BIT D* QDBYIMRT00 1 BIT D* Flags D QDBRSV67 63 66 D* Reserved D QDBFRLEN 67 70I 0 D* Record Length D* The sum of the lengths of all D* fields the format contains, D* excluding neither fields. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFNAME 71 80 D* Record Format Name D* The name associated with the D* format. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBDFSEQ 81 93 D* Level Identifier D* The modification level D* identifier of the format. It D* is used to verify the format D* has not been changed since D* compile time, if LVLCHK(*YES) D* is requested. D* (DB) CREATE: N EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFTEXT 94 143 D* Text Description (TEXT) D* The text description of the D* format. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: Y D QDBLDNUM 144 145I 0 D* Number of Fields D* The number of fields in the D* format. There is one field D* header for each field. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBQIO 146 149I 0 D* Offset from start of Format D* header to the Identity column D* information (Qdb_Qddfidcl). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBRSV68 150 256 D* Reserved D*QDBFFLDX 257 257 D* D* Start of Field Definitions D* (varying length) D******************************************************************** D* FIELD HEADER DECLARATIONS D******************************************************************** D** Field Status Byte 1 ************************************** DQDBQ1 DS D* Field Status Byte 1 D* Field DBCS Status D QDBBITS17 1 1 D* QDBFFIAT 1 BIT D* Double-Byte Character Set D* (DBCS) Alternate Type Field D* 0 = The alternate type for D* the field does NOT D* contain DBCS data. D* 1 = The alternate type for D* the field does contain D* DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFITX 1 BIT D* Double-Byte Character Set D* (DBCS) Field Text Description D* 0 = The text description D* (TEXT) for the field does D* NOT contain DBCS data. D* 1 = The text description D* (TEXT) for the field does D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFICH 1 BIT D* Double-Byte Character Set D* (DBCS) Column Headings D* 0 = The column headings D* (COLHDG) for the field do D* NOT contain DBCS data. D* 1 = The column headings D* (COLHDG) for the field do D* contain DBCS data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFIVC 1 BIT D* Double-Byte Character Set D* (DBCS) Validity Checking D* Literals D* 0 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do NOT contain DBCS D* data. D* 1 = The compare (COMP), range D* (RANGE) or values D* (VALUES) literals for the D* field do contain DBCS D* data. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBFFRND 1 BIT D* Rounding D* Rounding method for the D* field. Currently not D* supported through DDS. D* 0 = Truncate D* Insignificant decimal D* digits will be truncated. D* 1 = Round D* Insignificant decimal D* digits will be rounded to D* the nearest decimal D* digit. D* (QQ) QUERY: Y D* QDBFFCID 1 BIT D* Character Identifier Flag D* 0 = A character identifier D* (CHRID) was NOT D* specified. D* 1 = A character identifier D* (CHRID) was specified. D* (DF) EXTRACT: Y D* (QQ) QUERY: N D* QDBRSV69 2 BITS D* Reserved D** Field Status Byte 2 ************************************** DQDBQ201 DS D* Field Status Byte 2 D* Field Default Value and Null D* Value Allowed Indicator D* 00 = Not NULL with default D* 01 = Not NULL D* 10 = NULL capable D* 11 = Invalid D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: N D QDBBITS18 1 1 D* QDBFFNUL 1 BIT D* Allow Null Value (ALWNULL) D* 0 = The null value is NOT D* allowed for this field. D* 1 = The null value is allowed D* for this field. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBFFDFT 1 BIT D* Column Default Value D* 0 = The column has a default D* value. D* 1 = The column does NOT have D* a default value. D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBFFVAR 1 BIT D* Variable Field D* 0 = The field is NOT a D* variable field. D* 1 = The field is a variable D* field for a query format. D* Qddffvarx has meaning. D* (DF) EXTRACT: N D* (QQ) QUERY: Y D* QDBRSV70 1 BIT D* Reserved D* QDBFFVLN 1 BIT D* Variable Length Field D* 0 = The field is NOT a D* variable length field. D* 1 = The field is a variable D* length field. D* (DB) CREATE: X EXTRACT: A D* (DF) EXTRACT: N D* (QQ) QUERY: N D* QDBRSV7001 3 BITS D* Reserved D** Flags **************************************************** DQDBQ202 DS D* Flags D QDBBITS19 1 1 D* QDBFCORR 1 BIT D* Correlated Field D* 0 = This is NOT a correlated D* field. D* 1 = This is a correlated D* field. D* (QQ) QUERY: Y D* QDBFFRRN 1 BIT D* File Relative Record Number D* field. D* 0 - This is NOT a relative D* record number field. D* 1 - This is a relative record D* number field. D* (QQ) QUERY: Y D* QDBRSV71 5 BITS D* Reserved D* QDBFFMEP 1 BIT D* Mapping Errors Possible D* 0 = The field can NOT return D* data mapping errors. D* 1 = The field may return data D* mapping errors. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D** Flags **************************************************** DQDBFFLGS DS D* These flags indicate the user D* specified value for the field D* at the time the format was D* created. These flags only D* apply to date, time, and D* timestamp fields. D* CAUTION: If the format has D* ever been shared, these flags D* may not be applicable to the D* file for which the API was D* called. D QDBBITS78 1 1 D* QDBQD03 1 BIT D* If on, DATFMT was defaulted. D* D* QDBQJ 1 BIT D* If on, DATFMT(*JOB) was D* specified. D* QDBQD04 1 BIT D* If on, DATSEP was defaulted. D* D* QDBQJ00 1 BIT D* If on, DATSEP(*JOB) was D* specified. D* QDBQD05 1 BIT D* If on, TIMFMT was defaulted. D* D* QDBQD06 1 BIT D* If on, TIMSEP was defaulted. D* D* QDBQJ01 1 BIT D* If on, TIMSEP(*JOB) was D* specified. D* QDBQSAA 1 BIT D* If on, SAA format was D* specified. D******************************************************************** D* Complex Object Field Flags D******************************************************************** D** Default Attributes *************************************** DQDBLAGCO DS D* Complex Objects D QDBBITS72 1 1 D* QDBRSV6400 3 BITS D* Reserved. D* QDBDFUCS 1 BIT D* UCS-2 field. D* 0 = The field is not a D* UCS-2 field. D* 1 = The field is a UCS-2 field. D* D* QDBDFUDT 1 BIT D* User Defined Type field. D* 0 = The field is not a UDT field. D* 1 = The field is a UDT field. D* D* QDBQIC 1 BIT D* Identity Column field. D* 0 = The field is not an D* Identity column. D* 1 = The field is an Identity D* column. D* QDBQRC 1 BIT D* ROWID Column field. D* 0 = The field is not a D* ROWID column. D* 1 = The field is a ROWID D* column. D* QDBDFUTF 1 BIT D* UTF-8 or UTF-16 field. D* 0 = The field is not a D* UTF-8 or UTF-16 field. D* 1 = The field is a UTF-8 or D* UTF-16 field. D******************************************************************** D* UCS-2 Field Values D******************************************************************** DQDBQ208 DS D* UCS-2 fields values. @AMA D QDBFDSPL 1 2U 0 D* Field-display-length: D* Used with a UCS-2 field when D* the CCSID keyword modifies D* the display length. @AMA D QDBBITS80 3 3 D* QDBFUCSP 1 BIT D* UCS2_conversion_flag: D* When referenced by a printer D* file,indicates whether UCS-2 D* characters are to be D* converted before printing. D* 1 = do not convert. D* @AMA D* QDBFUCSM 1 BIT D* Minimum-display-length-flag: D* When referenced by a display D* file. D* 1 = Qddfdspl contains the D* number of display D* positions allowed equal D* to the field length D* defined in the DDS. D* Example: 5G CCSID(13488). D* The Qddfdspl value is 5.@AMA D* QDBFUCSL 1 BIT D* Length-of-display-field_flag D* When referenced by a display D* file. D* 1 = the DDS for the field D* provided the allowed number D* of display positions. D* This number is in Qddfdspl. D* @AMA D* QDBQRCT 1 BIT D* Row Change D* Timestamp. D* 0 = This field/column is Not D* a Row Change Timestamp. D* 1 = This field/column is a Row D* Change Timestamp. D* QDBQHC 1 BIT D* Hidden Column. D* 0 = This field/column is Not D* a Hidden Column. D* 1 = This field/column is a D* Hidden Column. D* QDBQSD 1 BIT D* Secure Data. D* Indicates that this column D* contains data of a secure D* nature (for example credit D* card number). D* If this bit is on for a column D* referenced in a statement, it D* will prevent ANY variable D* from being stored in a D* database monitor file or or D* returned from the plan cache D* unless it is the security D* officer starting the monitor D* looking at the plan cache. D* 0 = Not secure data. D* 1 = Secure data. @ASA D* QDBQXMLC 1 BIT D* XML Column. D* 0 = This field/column is NOT D* an XML Column. D* 1 = This field/column is an D* XML Column. D* QDBR130 1 BIT D* Reserved. D QDBNCODE 4 5 D* Encoding scheme for field's D* CCSID. D* '0000'X = No encoding scheme. D* @AMA D QDBQRCTG 6 6 D* Row Change D* Timestamp GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQFPP 7 16 D* Field Procedure D* program name. D QDBQFPL 17 26 D* Field Procedure D* library name. D**************************************************************** D* D* FIELD HEADER D* D**************************************************************** D*This section is located immediately after the FMTD header D**************************************************************** DQDBQ42 DS D* Field Definition D* The definition for a field in D* format. There is a linked D* list of these field D* definitions, one for each D* field. The number of fields D* is stored in the variable D* Qddffldnum. D QDBFDEFL 1 4I 0 D* Length of Field D* The length of the entire D* field structure, including D* all sub-sections. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDI 5 34 D* Internal Field Name D* The name of the field in the D* logical format, if this is a D* logical format. If this is a D* physical format, this name is D* a duplicate of Qddfflde. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFLDE 35 64 D* External Field Name D* The name of the field in the D* physical format, if this is a D* physical format. If this is D* a logical format, this name D* is the name of the field in D* a physical format, on which D* this field is based. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFTYP 65 66 D* Data Type D* The data type of the field. D* X'0000' = BINARY . . . . . . D* X'0001' = FLOAT . . . . . . D* X'0002' = ZONED DECIMAL . . D* X'0003' = PACKED DECIMAL . . D* X'0004' = CHARACTER . . . . D* X'8004' = VAR CHARACTER . . D* X'0005' = GRAPHIC . . . . D* X'0006' = DBCS-CAPABLE . . . D* X'8005' = VAR GRAPHIC . . . D* X'8006' = VAR DBCS-CAPABLE . D* X'000B' = DATE . . . . . . . D* X'000C' = TIME . . . . . . . D* X'000D' = TIMESTAMP . . . . D* X'4004' = BLOB/CLOB . . . . D* X'4005' = DBCLOB . . . . . . D* X'4006' = CLOB-OPEN . . . . D* X'8044' = DATALINK-CHAR . . D* X'8046' = DATALINK-OPEN . . D* X'FFFF' = NULL . . . . . . . D* NULL is only valid D* for data base query D* formats. If NULL is D* specified, query D* will determine the D* type and attributes D* of the field from D* the based on fields D* if Qddffvar is off. D* If Qddffvar is on D* then the attributes D* are set from the D* variable's operand. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFIOB 67 67 D* Usage D* X'01' = Input-Only D* The field can be used D* for input operations D* only. D* X'02' = Output Only D* The field can be used D* for output operations D* only. D* X'03' = Both D* The field can be used D* for both input and D* output operations. D* X'04' = Neither D* The field can be used D* for neither input nor D* output operations. D* X'FF' = Unknown D* The usage is set D* appropriately during D* query processing. D* This value is only D* valid for query. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R D QDBFFOBO 68 71I 0 D* Output Buffer Offset D* The offset from the start of D* the output buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFIBO 72 75I 0 D* Input Buffer Offset D* The offset from the start of D* the input buffer, indicating D* the position of this field D* within the buffer. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFFLDB 76 77I 0 D* Length D* The length of the field. D* - For character fields, this D* is the number of D* characters. D* - For float fields: D* 4 = Single D* 8 = Double D* - For variable length fields, D* this is the maximum length D* the field can be, plus two D* for the length. D* - For date/time/timestamp D* fields, this is the length D* of the formatted data. So D* this may vary, depending on D* the format specified. D* - For graphic data fields, D* this is the number of D* bytes. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is X'FFFF'. D QDBFFLDD 78 79I 0 D* Number of Digits D* The number of digits in the D* field. D* - For numeric fields, this D* is the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFLDP 80 81I 0 D* Decimal Positions D* The number of decimal D* positions to the right of the D* decimal point. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D QDBFFKBS 82 82 D* Keyboard Shift (REFSHIFT) D* The keyboard shift attribute D* of the field. D* 'X' = Alphabetic only D* 'A' = Alphameric shift D* 'N' = Numeric shift D* 'S' = Signed numeric D* 'Y' = Numeric only D* 'D' = Digits only D* 'M' = Numeric only character D* 'W' = Katakana D* 'H' = Hexadecimal D* 'I' = Inhibit keyboard entry D* 'J' = DBCS only D* 'E' = DBCS either D* 'O' = DBCS open D* 'B' = Binary character D* X'00' = No shift specified D* (DB) CREATE: Y EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: R, unless data D* type (Qddffldt) is x'FFFF'. D*QDBQ100 1 D QDBBITS44 83 83 D* QDBFFIAT00 1 BIT D* QDBFFITX00 1 BIT D* QDBFFICH00 1 BIT D* QDBFFIVC00 1 BIT D* QDBFFRND00 1 BIT D* QDBFFCID00 1 BIT D* QDBRSV6900 2 BITS D* Field Status Byte 1 D QDBFJREF 84 85I 0 D* Join Reference (JREF) D* (Logical files only) D* For fields whose names are D* specified in more than one D* physical file, this value D* identifies which physical D* file contains the field. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file D* format, an error is D* signalled. This value is D* only allowed on a query D* format. D* n = The external field name D* is to be found in the D* file format referenced D* by using this value as a D* join reference index into D* the file list. D* (DB) CREATE: R EXTRACT: Y D* (DF) N D* (QQ) QUERY: R D*QDBQ203 1 D QDBBITS45 86 86 D* QDBFFNUL00 1 BIT D* QDBFFDFT00 1 BIT D* QDBFFVAR00 1 BIT D* QDBRSV7000 1 BIT D* QDBFFVLN00 1 BIT D* QDBRSV7002 3 BITS D* Field Status Byte 2 D*QDBQ204 1 D QDBBITS46 87 87 D* QDBFCORR00 1 BIT D* QDBFFRRN00 1 BIT D* QDBRSV7100 5 BITS D* QDBFFMEP00 1 BIT D* Flags D QDBFVARX 88 89I 0 D* Variable Field Index D* Index into the list of all D* variable field values for the D* query. D* (QQ) QUERY: Y D QDBRSV72 90 91 D* Reserved D QDBFLALC 92 93I 0 D* Allocated Length D* The number of bytes allocated D* for the field in the fixed D* portion of the file. D* or... D* Date/Time/Timestamp Length D* The number of bytes the D* based-on field for the date/ D* time/timestamp occupies. D* (QQ) QUERY: R, unless field D* type (Qddffldt) is x'FFFF' D QDBFDTTF 94 94 D* Date Format (DATFMT) D* The format of the date field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Format (TIMFMT) D* The format of the time field. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D* (QQ) QUERY: Y D QDBFDTTS 95 95 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* Note: Before using this D* field, you should D* check Qddfftyp, if it D* is not '000B'X, D* '000C'X or '000D'X, D* then this field is not D* valid. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D* (QQ) QUERY: Y D QDBFCSID 96 97U 0 D* Common Coded Character Set D* Identifier (CCSID) D* 00000 = The CCSID associated D* with the job is to be D* used for data D* translation. D* 65535 = No data translation D* is to be done. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for data translation. D* (QQ) QUERY: Y D QDBFTSID 98 99U 0 D* Text Description Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the text description. D* 65535 = The text description D* is not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* text description. D* (QQ) QUERY: Y D QDBFHSID 100 101U 0 D* Column Heading Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the column headings. D* 65535 = The column headings D* are not to be D* translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* column headings. D* (QQ) QUERY: Y D QDBFLSID 102 103U 0 D* Long Comment Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the long comment. D* 65535 = The long comment is D* not to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* long comment. D* (QQ) QUERY: Y D QDBFLDUR 104 104 D* Labeled Duration D* The type of labeled duration D* this field defines. D* '00'X = The field is not a D* labeled duration. D* '0D'X = Year/Years. D* '0E'X = Month/Months. D* '0F'X = Day/Days. D* '10'X = Hour/Hours. D* '11'X = Minute/Minutes. D* '12'X = Second/Seconds. D* '13'X = Microsecond/ D* Microseconds. D* (QQ) QUERY: Y D*QDBFFLGS00 1 D QDBBITS79 105 105 D* QDBQD07 1 BIT D* QDBQJ02 1 BIT D* QDBQD08 1 BIT D* QDBQJ03 1 BIT D* QDBQD09 1 BIT D* QDBQD10 1 BIT D* QDBQJ04 1 BIT D* QDBQSAA00 1 BIT D* Flags. D QDBFWSID 106 107U 0 D* Edit Word Common Coded D* Character Set Identifier D* 00000 = The CCSID associated D* with the job is to be D* used for translating D* the edit word. D* 65535 = The edit word is not D* to be translated. D* nnnnn = This coded character D* set identifier D* (CCSID) is to be used D* for translating the D* edot word. D* (QQ) QUERY: Y D QDBRSV6100 108 108 D* Reserved D QDBRSV6200 109 109 D* Reserved D QDBRSV6300 110 111U 0 D* Reserved. D*QDBLAGCO00 1 D QDBBITS73 112 112 D* QDBRSV6401 3 BITS D* QDBDFUCS00 1 BIT D* QDBDFUDT00 1 BIT D* QDBQIC00 1 BIT D* QDBQRC00 1 BIT D* QDBDFUTF00 1 BIT D* Complex Object flags. D*QDBQ209 26 D QDBFDSPL00 113 114U 0 D QDBBITS81 115 115 D* QDBFUCSP00 1 BIT D* QDBFUCSM00 1 BIT D* QDBFUCSL00 1 BIT D* QDBQRCT00 1 BIT D* QDBQHC00 1 BIT D* QDBQSD00 1 BIT D* QDBQXMLC00 1 BIT D* QDBR13000 1 BIT D QDBNCODE00 116 117 D QDBQRCTG00 118 118 D QDBQFPP00 119 128 D QDBQFPL00 129 138 D* UCS-2 field values. @AMA D QDBFTSPC 139 140U 0 D* Qddftspc D* Timestamp precision. If used D* by the the Query API (QQQQRY), D* this value should not be used D* and must be calculated from D* the timestamp length. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* @AXA D QDBRSV74 141 180 D* Reserved @AXC D QDBFCPLX 181 184I 0 D* Offset from start of Field D* header to the Complex Object D* field information D* (Qdb_Qddffcpli). D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBMAXL 185 188I 0 D* Maximum length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBBPADL 189 190U 0 D* Pad length of the LOB. D* (DB) CREATE: R EXTRACT: Y D* (DF) EXTRACT: Y D* (QQ) QUERY: N D QDBFDICD 191 194I 0 D* Offset from start of Field D* header to IDDU/SQL dictionary D* field information (Qddfdicf) D* (QQ) QUERY: Y D QDBFDFTD 195 198I 0 D* Offset from start of Field D* header to default value D* description (Qddfdft) D* (QQ) QUERY: Y D QDBFDERD 199 202I 0 D* Offset from start of Field D* header to derived field D* description (or to the D* concatenated field description D* if its file is externally D* described) (Qddfderv) D* (QQ) QUERY: Y D QDBRSV75 203 208 D* Reserved D QDBFTXTD 209 212I 0 D* Offset from start of Field D* header to field text D* description (Qddfftxt) D* (QQ) QUERY: N D QDBR102 213 214 D* Reserved D QDBFREFD 215 218I 0 D* Offset from start of Field D* header to field reference D* information (Qddfrefi) D* (QQ) QUERY: N D QDBFEDTL 219 220I 0 D* Length of the edit code / D* edit word information for the D* field D* (QQ) QUERY: N D QDBFEDTD 221 224I 0 D* Offset from start of Field D* header to the edit code / D* edit word information D* (Qddfedcw) D* (QQ) QUERY: N D QDBRSV76 225 226 D* Reserved D QDBDFCHD 227 230I 0 D* Offset from start of Field D* header to the column heading D* information (Qddfcolh) D* (QQ) QUERY: N D QDBFVCKL 231 232I 0 D* Length of the validity D* checking data present for the D* field. D* (QQ) QUERY: N D QDBFVCKD 233 236I 0 D* Offset from start of Field D* header to the validity D* checking data (Qddfvchk) D* (QQ) QUERY: N D QDBFXALS 237 240I 0 D* Offset from start of Field D* header to alias name entry D* (QQ) QUERY: N D QDBFFPND 241 244I 0 D* Offset from start of Field D* header to the the field D* prompted numeric editing D* information (Qddfdfne) D* (QQ) QUERY: N D QDBRSV77 245 252 D* Reserved D*QDBDFVPX 253 253 D* D* START OF THE VARIABLE PORTION D* OF THE FIELD DESCRIPTION D* (varying length) D**************************************************************** D* D* Complex Object Field Type Information D* D**************************************************************** D*This section can be located with the offset Qddfcplx, which D*is located in the Field header section. D**************************************************************** DQDBFCPLI DS D* Field text D QDBFLENU 1 4I 0 D* If the field is a UDT, D* this length is the length D* of the UDT name. D QDBFNUDT 5 132 D* UDT name. D QDBFLUDT 133 142 D* UDT library name. D QDBDLINK 143 143 D* If the field is a datalink, D* this is the link control: D* N = No link control. D* Y = Link control. D QDBDINTE 144 144 D* If the field is a datalink, D* this is the link integrity: D* A = All under control. D* S = Selective control. D* This value is not D* supported yet. D QDBDRPER 145 146 D* If the field is a datalink, D* this is the read permisssion: D* FS = File system. D* DB = Database. D QDBDWPER 147 148 D* If the field is a datalink, D* this is the write D* permission: D* FS = File system. D* BL = Blocked. D QDBDRECO 149 149 D* If the field is a datalink, D* the database manager will D* recover the file: D* Y = Yes. This value is not D* supported yet. D* N = No. D QDBDUNLK 150 150 D* If the field is a datalink, D* the database manager will D* restore the file owner on D* an unlink, or delete the file D* when unlinking the file. D* R = Restore the owner. D* D = Delete the file. D QDBQ150 151 160 D* Reserved. D**************************************************************** D* D* IDENTITY Column/ROWID Field Information D* D**************************************************************** D*This section can be located with the offset Qddf_Identity_Off D*which is located in the Field header section. D**************************************************************** DQDBFIDCL DS D* IDENTITY column/ROWID info D* NOTE: Only D* Qddf_ROWID_Generate D* applies to ROWID columns. D QDBQIL 1 2I 0 D* Length of identity column/ D* ROWID information. D QDBQIOSW 3 18P 0 D* Qddf Id Orig Start With D* Identity Original START WITH D* value D QDBQICSW 19 34P 0 D* Qddf Id Curr Start With D* Identity Current START WITH D* value. @0JC D QDBQIIB 35 38I 0 D* Identity INCREMENT BY value. D QDBQIM 39 54P 0 D* Qddf Id Minimum D* Identity MINIMUM value. D QDBQIM00 55 70P 0 D* Qddf Id Maximum D* Identity MAXIMUM value. D QDBQIC01 71 71 D* Identity CYCLE indicator. D* 1 = Cycling will occur. D* 0 = Cycling will not occur. D QDBQIO00 72 72 D* Identity ORDER mode. D* 1 = Values are generated in D* order of request. D* 0 = Values do not need to be D* generated in order of D* request. D QDBQIG 73 73 D* Identity GENERATE indicator. D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQICC 74 77U 0 D* Identity CACHE value D QDBQRG 78 78 D* ROWID GENERATE indicator D* 1 = GENERATED BY DEFAULT. D* 0 = GENERATE ALWAYS. D QDBQIR1 79 131 D* Reserved. D**************************************************************** D* D* FIELD TEXT D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddftxtd, which D*is located in the Field header section. D**************************************************************** DQDBQ43 DS D* Field text D QDBFFTXT 1 50 D* Text (TEXT) D* Text description of the D* field. D******************************************************************** D* REFERENCE INFORMATION DECLARATIONS D******************************************************************** D** Modification Flags *************************************** DQDBQ16 DS D* Modification Flags D QDBBITS20 1 1 D* QDBFDUPE 1 BIT D* Modifications D* 0 = The field has NOT been D* modified. D* 1 = The field has been D* modified. D* QDBFNMEC 1 BIT D* Name Modification D* 0 = The name of the field has D* NOT been modified. D* 1 = The name of the field has D* been modified. D* QDBFTYPC 1 BIT D* Data Type Modification D* 0 = The data type of the D* field has NOT been D* modified. D* 1 = The data type of the D* field has been modified. D* QDBFLENC 1 BIT D* Field Length Modification D* 0 = The length of the field D* has NOT been modified. D* 1 = The length of the field D* has been modified. D* QDBFDECC 1 BIT D* Precision Modification D* 0 = The precision of the D* field has NOT been D* modified. D* 1 = The precision of the D* field has been modified. D* QDBFEDTC 1 BIT D* Edit Information Modification D* 0 = The edit information of D* the field has NOT been D* modified. D* 1 = The edit information of D* the field has been D* modified. D* QDBDDFVC 1 BIT D* Validity Checking Information D* Modification D* 0 = The validity checking D* information of the field D* has NOT been modified. D* 1 = The validity checking D* information of the field D* has been modified. D* QDBFOTHR 1 BIT D* Other Modification D* 0 = Other information of the D* field has NOT been D* modified. D* 1 = Other information of the D* field has been modified. D**************************************************************** D* D* REFERENCE INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfrefd, which D*is located in the Field header section. D**************************************************************** DQDBQ44 DS D* Reference Information D*QDBFRCDE 1 D QDBBITS47 1 1 D* QDBFDUPE00 1 BIT D* QDBFNMEC00 1 BIT D* QDBFTYPC00 1 BIT D* QDBFLENC00 1 BIT D* QDBFDECC00 1 BIT D* QDBFEDTC00 1 BIT D* QDBDDFVC00 1 BIT D* QDBFOTHR00 1 BIT D* Modification Flags D QDBFRFIL 2 11 D* Referenced File Name D* The name of the file the D* field references. D QDBFRLIB 12 21 D* Referenced File Library D* The name of the library D* containing the file the field D* references. D QDBFRFMT 22 31 D* Referenced Record Format D* The name of the record format D* containing the field D* referenced. D QDBFRFLD 32 61 D* Referenced Field D* The name of the field D* referenced. D QDBRSV78 62 80 D* Reserved D******************************************************************** D* EDIT CODE DECLARATIONS D******************************************************************** D** Edit Code Information ************************************ DQDBQ17 DS D* Edit Code Information D QDBFECDE 1 1 D* Edit Code (EDTCDE) D* Edit code for the field when D* it is referred to later D* during display or printer D* file creation. D QDBFECDX 2 2 D* Floating Currency Symbol D* '*' = Asterisk Protection D* Asterisks are displayed D* to the left of D* significant digits. D* floating currency symbol = D* The symbol specified D* appears to the left of D* the first significant D* digit. D**************************************************************** D* D* EDIT CODE / EDIT WORD INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfedtd, which D*is located in the Field header section. D**************************************************************** DQDBQ45 DS D* Edit Information D*QDBFECDI 2 D QDBFECDE00 1 1 D QDBFECDX00 2 2 D* Edit Code Information D QDBRSV79 3 16 D* Reserved D*QDBDFEWD 17 17 D* D* Edit Word (EDTWRD) D* (varying length) The form in which the field D* values are to be displayed. D* Note: Before using this D* field, you should D* check Qddfecde, if it D* is not blank, then D* this field is not D* valid. The length of D* this field, if D* present, is included D* in Qddfedtl. D******************************************************************** D* NUMERIC EDIT DECLARATIONS D******************************************************************** D** Negative Sign Information ******************************** DQDBQNSI DS D* Negative Sign Information D QDBFDNSC 1 1 D* Display Negative Sign D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The negative sign D* character will be D* displayed for negative D* values. D* '2' = The negative sign D* character will NOT be D* displayed for negative D* values. D QDBFDNSL 2 7 D* Left Negative Sign Value D* The symbol to be displayed D* to the left of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDNSR 8 13 D* Right Negative Sign Value D* The symbol to be displayed D* to the right of the digits to D* indicate a negative value. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Currency Symbol Information ***************************** DQDBQCSI DS D* Currency Symbol Information D QDBFDCSY 1 1 D* Display Currency Symbol D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The currency symbol D* will be displayed. D* '2' = The currency symbol D* will NOT be displayed. D QDBFDCSL 2 7 D* Left Currency Symbol Value D* The symbol to be displayed D* to the left of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D QDBFDCSR 8 13 D* Right Currency Symbol Value D* The symbol to be displayed D* to the right of the digits to D* indicate currency. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D** Leading Zero Information ********************************* DQDBQLZI DS D* Leading Zero Information D QDBFDRLZ 1 1 D* Replace Leading Zeros D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced. D* '2' = Leading zeros are NOT D* replaced. D QDBFDRLV 2 2 D* Leading Zero Replacement D* Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = Leading zeros are D* replaced with blanks. D* '2' = Leading zeros are D* replaced with asterisks. D* '3' = Leading zeros are D* replaced with blanks, D* and left currency D* symbol is shifted to D* the right. D QDBFDLZO 3 3 D* Single Leading Zero D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero is displayed to D* the left of the decimal D* point when there are no D* significant digits to D* the left of the decimal D* point. D* '2' = A zero is NOT displayed D* to the left of the D* decimal point when D* there are no D* significant digits to D* the left of the decimal D* point. D**************************************************************** D* D* FIELD PROMPTED NUMERIC EDITING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddffpnd, which D*is located in the Field header section. D**************************************************************** DQDBQ46 DS D* IDDU/SQL Dictionary Field D* Prompted Numeric Editing D* Information. D QDBRSV80 1 2 D* Reserved D QDBFDDTS 3 3 D* Date Separator (DATSEP) D* The separator character to be D* used with a date field. D* or... D* Time Separator (TIMSEP) D* The separator character to be D* used with a time field. D* '00'X = This is not a date D* or time field. The D* numeric editing D* information should be D* used. D* '1' = The period separator D* is to be used. "." D* '2' = The slash separator D* is to be used. "/" D* '3' = The colon separator D* is to be used. ":" D* '4' = The dash separator D* is to be used. "-" D* '5' = The comma separator D* is to be used. "," D QDBFDDPC 4 4 D* Decimal Point Character D* The character to be used to D* separate decimal digits. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period decimal D* is to be used. "." D* '2' = The comma decimal D* is to be used. "," D* '3' = The colon decimal D* is to be used. ":" D* '4' = The dollar decimal D* is to be used. "$" D* '5' = No decimal is to be D* used. D QDBFDTSC 5 5 D* Thousands Separator Character D* The character to be used to D* group digits by threes. D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = The period thousands D* is to be used. "." D* '2' = The comma thousands D* is to be used. "," D* '3' = The apostrophe D* thousands is to be D* used. "'" D* '4' = The blank thousands D* is to be used. " " D* '5' = No thousands is to be D* used. D*QDBQNSI00 13 D QDBFDNSC00 6 6 D QDBFDNSL00 7 12 D QDBFDNSR00 13 18 D* Negative Sign Information D*QDBQCSI00 13 D QDBFDCSY00 19 19 D QDBFDCSL00 20 25 D QDBFDCSR00 26 31 D* Currency Symbol Information D QDBFDPZV 32 32 D* Print Zero Value D* Note: Before using this D* field, you should check D* Qddfddts, if it is not '00'X D* then this field is not valid. D* '1' = A zero value is D* displayed. D* '2' = A zero value is NOT D* displayed. D*QDBQLZI00 3 D QDBFDRLZ00 33 33 D QDBFDRLV00 34 34 D QDBFDLZO00 35 35 D* Leading Zero Information D QDBRSV81 36 64 D* Reserved D**************************************************************** D* D* COLUMN HEADING INFORMATION D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfchd, which D*is located in the Field header section. D**************************************************************** DQDBQ47 DS D* Column Heading (COLHDG) D* Column headings used for this D* field when it is displayed D QDBQ101 1 20 D* Column Heading #1 D* The first column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ205 21 40 D* Column Heading #2 D* The second column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D QDBQ3 41 60 D* Column Heading #3 D* The third column heading, as D* specified on the COLHDG DDS D* keyword, without the quotes. D* (DF) EXTRACT: N D**************************************************************** D* D* VALIDITY CHECKING INFORMATION D* D**************************************************************** D*This section can be located with the offset Qddfvckd, which D*is located in the Field header section. D**************************************************************** DQDBQ48 DS D* Validity Checking Information D* (CHECK), (COMP), (RANGE), and D* (VALUES) D QDBCNUME 1 2I 0 D* Number of Validity Check D* Entries D QDBRSV82 3 16 D* Reserved D*QDBFVCEN 17 17 D* D* Validity Checking Entry Array D* (varying length) DQDBQ49 DS D* Validity Checking Entry D QDBFVCCD 1 1 D* DDSI Keyword Identifier D* '63'X = CHKMSGID D* '64'X = CHECK(ME) D* '66'X = CHECK(FE) D* '67'X = CHECK(MF) D* '71'X = RANGE D* '72'X = VALUES D* '73'X = COMP(GT) D* '74'X = COMP(GE) D* '75'X = COMP(EQ) D* '76'X = COMP(NE) D* '77'X = COMP(LE) D* '78'X = COMP(LT) D* '79'X = COMP(NL) D* '7A'X = COMP(NG) D* 'A0'X = CHECK(M10) D* 'A1'X = CHECK(M11) D* 'A2'X = CHECK(VN) D* 'A3'X = CHECK(AB) D* 'A5'X = CHECK(VNE) D* 'A6'X = CHECK(M10F) D* 'A7'X = CHECK(M11F) D QDBCNUMP 2 3I 0 D* Number of Parameters D QDBFVCEL00 4 5I 0 D* Length of This Validity Check D* Entry D QDBRSV83 6 16 D* Reserved. D*QDBFVCPM 17 17 D* D* Validity Checking Parameter D* Array (varying length) DQDBQ50 DS D* Validity Checking Parameter D QDBFVCPL 1 2I 0 D* Length of the Validity D* Checking Parameter Qddfvcpv D QDBRSV84 3 16 D* Reserved. D*QDBFVCPV 17 17 D* D* Validity Checking Parameter D* Value (varying length) D**************************************************************** D* D* ALIAS NAME STRUCTURE D* (QQ) QUERY: N D* D**************************************************************** D*This section can be located with the offset Qddfxals, which D*is located in the Field header section. D**************************************************************** DQDBQ51 DS D* Alternative Name Information D* (ALIAS) D QDBFALSL 1 2I 0 D* Length of Alternative Name D* Qddfalsn D QDBRSV85 3 16 D* Reserved D*QDBFALSN 17 17 D* D* Alternative Name (ALIAS) D* An alternative name for the D* field. (varying length) D******************************************************************** D* DEFAULT VALUE DESCRIPTION DECLARATIONS D******************************************************************** D** Default Attributes *************************************** DQDBQ18 DS D* Default Attributes D QDBBITS21 1 1 D* QDBFDFIG 1 BIT D* DBCS or Graphic Default D* 0 = The default is NOT a DBCS D* or graphic literal. D* 1 = The default is a DBCS or D* graphic literal. D* QDBFDFHX 1 BIT D* Hex Default D* 0 = The default is NOT a D* hex literal. D* 1 = The default is a hex D* literal. D* QDBFNDFT 1 BIT D* Null Default D* 0 = The default is NOT null. D* 1 = The default is null. D* QDBRSV86 2 BITS D* Reserved D* QDBFDCUR 1 BIT D* Default is CURRENT_DATE, D* CURRENT_TIME or D* CURRENT_TIMESTAMP D* 0 = The default is NOT CURRENT D* 1 = The default is CURRENT. D* QDBR109 1 BIT D* Reserved D* QDBFDFTK 1 BIT D* DFT or DFTVAL Keyword D* 0 = The DFT keyword was D* specified. D* 1 = The DFTVAL keyword was D* specified. D**************************************************************** D* D* DEFAULT VALUE DESCRIPTION INFORMATION D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdftd, which D*is located in the Field header section. D**************************************************************** DQDBQ52 DS D* Default Information (DFT) or D* (DFTVAL) D QDBFDFTL 1 2I 0 D* Length of Default Information D* Qddfdft D*QDBFDFTA 1 D QDBBITS48 3 3 D* QDBFDFIG00 1 BIT D* QDBFDFHX00 1 BIT D* QDBFNDFT00 1 BIT D* QDBRSV8600 2 BITS D* QDBFDCUR00 1 BIT D* QDBR10900 1 BIT D* QDBFDFTK00 1 BIT D* Default Attributes D QDBRSV87 4 16 D* Reserved D*QDBFDFTV 17 17 D* D* Default (DFT) or (DFTVAL) D* The default value of the D* field. (varying length) D******************************************************************** D* IDDU/SQL DICTIONARY ADDITIONAL DECLARATIONS D******************************************************************** D** Field Definition Long Comment **************************** DQDBQ19 DS D* Field Definition Long Comment D QDBFDFCL 1 2I 0 D* Length of Field Definition D* Long Comment Qddfdfco D*QDBFDFCT 3 3 D* D* Field Definition Comment Text D* (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY ADDITIONAL FIELD INFORMATION. D* (QQ) QUERY: Y D* D**************************************************************** D*This section can be located with the offset Qddfdicd, which D*is located in the Field header section. D**************************************************************** DQDBQ53 DS D* IDDU/SQL Dictionary D* Additional Field Information D QDBFDFCH 1 16 D* Reserved D*QDBFDFCO 3 D QDBFDFCL00 17 18I 0 D QDBFDFCT00 19 19 D* Field Definition Long Comment D******************************************************************** D* FORMAT FIELD FLAGS D******************************************************************** D** Field Attributes ************************************** DQDBQFLDF DS D* Field flags D QDBBITS84 1 1 D* QDBR504 2 BITS D* Reserved D* QDBFSIU01 1 BIT D* Derived field D* uses a user defined UDF D* indicator: D* 0 = The field does NOT use a D* user defined UDF. D* 1 = The field does use a D* user defined UDF. D* @APA D* QDBR505 5 BITS D* Reserved @APA D******************************************************************* D* D*These are type definitions which are needed for a UNION in the D*Header Section D* D******************************************************************* DQDBQ54 DS D* Field Operand Entry D QDBFDVON 1 30 D* Field Name D* The external name of the D* field. D QDBFDVJR 31 32I 0 D* Join Reference (JREF) D* Relative file number of the D* physical file containing the D* external field referenced. D* 0 = The fields previously D* defined in this format D* will be searched for the D* external name. If the D* field is not found, the D* based on file formats D* will be searched. If the D* field name is found in D* more than one file format, D* an error is signalled. D* n = The external field name D* is located in the file D* format referenced by D* using this value as a D* join reference index into D* the file list. D QDBQ102 33 34I 0 D* Starting Position D* The starting position in the D* external field, of the D* substring (SST) specified. D QDBQ206 35 36I 0 D* Ending Position D* The ending position in the D* external field, of the D* substring (SST) specified. D QDBDTNUM 37 38I 0 D* QDT from which this D* Only applicable for SQL D QDBR502 39 39 D* Reserved @APA D QDBR503 40 40 D* Reserved @APA D*QDBFLDF 1 D QDBBITS85 41 41 D* QDBR50400 2 BITS D* QDBFSIU02 1 BIT D* QDBR50500 5 BITS D* Field flags. @APA D QDBRSV89 42 58 D* Reserved @APC D******************************************************************** D* CONSTANT OPERAND DECLARATIONS D******************************************************************** D** Constant Attributes ************************************** DQDBQCA DS D* Constant Attributes D QDBBITS22 1 1 D* QDBFDVCI 1 BIT D* DBCS Constant D* 0 = This constant is NOT a D* DBCS - OPEN literal. D* 1 = This constant is a DBCS - D* OPEN literal. D* QDBRSV90 1 BIT D* Reserved D* QDBFDVCC 1 BIT D* Character Constant Type D* 0 = The constant is a quoted D* character string, D* bracketed by single D* quotes. Imbedded quotes D* are represented with two D* single quotes. D* 1 = The constant is an D* unquoted D* character string, NOT D* bracketed by single D* quotes. Imbedded quotes D* are represented with a D* single quote. D* QDBFDVAC 1 BIT D* Assume Character Constant D* 0 = The system will NOT D* assume this is a D* character constant. D* 1 = The system will assume D* this is a character D* constant. D* QDBFDVCO 1 BIT D* DBCS - ONLY Literal D* Note: Before using this D* field, you should D* check Qddfdvci, if it D* is not on, then this D* field is not valid. D* 0 = This constant is a DBCS - D* OPEN literal. D* 1 = This constant is a DBCS - D* ONLY literal. D* QDBFDVSR 1 BIT D* Special register D* 0 = This constant operand is D* not a special register. D* 1 = This constant operand is D* a special register, D* defined by Qddfdvrc D* QDBFDVNL 1 BIT D* Null Indicator D* 0 = This constant is NOT a D* null literal. D* 1 = This constant is a null D* literal. D* QDBRSV91 1 BIT D* Reserved D** Constant Flags ******************************************* DQDBQ20 DS D* Constant Flags D QDBBITS23 1 1 D* QDBRSV93 2 BITS D* Reserved D* QDBFGLIT 1 BIT D* If on, this indicates that D* this is a graphics literal. D* QDBRSV94 5 BITS D* Reserved D** Constant Operand Header ********************************** DQDBQ21 DS D* Constant Operand Header D QDBFDVOL 1 4I 0 D* Length of Constant Qddfdvov D*QDBQCA00 1 D QDBBITS24 5 5 D* QDBFDVCI00 1 BIT D* QDBRSV9000 1 BIT D* QDBFDVCC00 1 BIT D* QDBFDVAC00 1 BIT D* QDBFDVCO00 1 BIT D* QDBFDVSR00 1 BIT D* QDBFDVNL00 1 BIT D* QDBRSV9100 1 BIT D* Constant Attributes D QDBFDVRC 6 6 D* Special register constant D* Defined by special register D* constants, can only be D* specified if Qddfdvsr is on. D QDBFDVFT 7 7 D* Date Constant Format (DATFMT) D* The format of the date D* constant. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Time Constant Format (TIMFMT) D* The format of the time D* constant. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSP 8 8 D* Date Constant Separator D* (DATSEP) D* The separator character to be D* used with the date constant. D* or... D* Time Constant Separator D* (TIMSEP) D* The separator character to be D* used with the time constant. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBRSV92 9 10 D* Reserved D QDBFDVCD 11 12U 0 D* Constant Coded Character Set D* Identifier. D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* constant. D*QDBFCFLG 1 D QDBBITS25 13 13 D* QDBRSV9300 2 BITS D* QDBFGLIT00 1 BIT D* QDBRSV9400 5 BITS D* Constant Flags D QDBRSV95 14 42 D* Reserved DQDBQ55 DS D* Constant Operand Entry D*QDBFDVOH 42 D QDBFDVOL00 1 4I 0 D* QDBQCA01 1 D QDBBITS49 5 5 D* QDBFDVCI03 1 BIT D* QDBRSV9003 1 BIT D* QDBFDVCC03 1 BIT D* QDBFDVAC03 1 BIT D* QDBFDVCO03 1 BIT D* QDBFDVSR03 1 BIT D* QDBFDVNL03 1 BIT D* QDBRSV9103 1 BIT D QDBFDVRC00 6 6 D QDBFDVFT00 7 7 D QDBFDVSP00 8 8 D QDBRSV9200 9 10 D QDBFDVCD00 11 12U 0 D* QDBFCFLG00 1 D QDBBITS50 13 13 D* QDBRSV9303 2 BITS D* QDBFGLIT03 1 BIT D* QDBRSV9403 5 BITS D QDBRSV9500 14 42 D* Constant Operand Header D*QDBFDVOV 43 43 D* D* Derived Constant D* The external form of the D* constant. (varying length) D******************************************************************** D* OPERATOR ENTRY DECLARATIONS D******************************************************************** D** Translation Table Index ********************************** DQDBQ22 DS D* Translation Table Index D* Index into the translation D* table. D* or D* Index into the case selection D* specification D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '0B'X or '3E'X, D* then this field is not D* valid. D QDBDTFMT 1 1 D* Operator Date Format Index D QDBDTSEP 2 2 D* Operator Date Separator Index D** Operator attributes ************************************** DQDBQOA DS D* Operator attributes D QDBBITS26 1 1 D* QDBRSV96 1 BIT D* Reserved D* QDBVDTTM 1 BIT D* Operator Date Format and D* Separator Source D* 1 = Qddfdvdtfmt & Qddfdvdtsep D* are to be used as the D* date format & separator D* for the CHAR operator. D* Similarly, Qddfdvfm & D* Qddfdvsa are to be used D* as the time format & D* separator for the CHAR D* operator. D* 0 = Process only Qddfdvfm & D* Qddfdvsa as the format & D* separator for the CHAR D* operator. D* QDBR113 1 BIT D* Reserved D* QDBFDVDF 1 BIT D* May only be set for D* group by operators. D* 1 = Do not include duplicate D* field values in group by D* operation. D* 0 = Include duplicate field D* values in group by D* operation. D* QDBRSV97 1 BIT D* Reserved D* QDBQC01 1 BIT D* Number of characters D* operator option. D* 0 = Result is computed for D* this operator based on D* number of bytes. D* 1 = Result is computed for D* this operator based on D* number of characters. D* Applicable only when Qddfdvop D* is POSSTR '41'X, LENGTH '23'X D* or SUBSTRING '27'X and either D* of the arguments is IGC. D* QDBR115 2 BITS D* Reserved DQDBQ56 DS D* Operator Entry D QDBFDVOP 1 1 D* Derived Operator D* The type of operation to be D* performed on the operand/s. D* D* Associciated with each value, D* is a list of what operand D* attributes are valid with D* that value. D* N = ALL NUMERIC OPERANDS AR D* C = CHARACTER OPERANDS ARE D* Z = ZONED OPERANDS ARE VAL D* L = DATE OPERANDS ARE VALI D* T = TIME OPERANDS ARE VALI D* S = TIMESTAMP OPERANDS ARE D* LD = DATE DURATION OPERAND D* TD = TIME DURATION OPERAND D* SD = TIMESTAMP DURATION OP D* A = ANY OPERANDS ARE VALID D* G = GRAPHIC OPERANDS ARE VALID D* D* - Operators that require D* three operands: D* '27'X = SUBSTRING (C) D* - Operators that require D* two operands: D* '01'X = CONCATENATION (C) D* '04'X = ADDITION (N,L,LD,T, D* TD,S,SD) D* '05'X = SUBTRACTION (N,L,LD, D* T,TD,S,SD) D* '06'X = MULTIPLICATION (N) D* '07'X = DIVISION (N) D* '08'X = MINIMUM (A) D* '09'X = MAXIMUM (A) D* '1A'X = X TO THE Y POWER (N) D* '1B'X = BINARY OR (C) D* '1C'X = BINARY XOR (C) D* '1D'X = BINARY AND (C) D* '24'X = STRIP LEADING (C) D* '25'X = STRIP TRAILING(C) D* '26'X = STRIP BOTH (C) D* '35'X = COMPUTE (N,L,LD, D* T,TD,S,SD) D* '80'X = REMAINDER (N) D* '41'X = POSSTR(C,G) D* - Operators that require D* one operand: D* '02'X = MAP (A) D* '03'X = DIRECT MAP D* '0A'X = ABSOLUTE VALUE (N) D* '0B'X = TRANSLATE (C) D* '0C'X = NATURAL LOGARITHM (N) D* '0D'X = EXPONENTIAL (N) D* '0E'X = SINE (N) D* '0F'X = COSINE (N) D* '10'X = TANGENT (N) D* '11'X = COTANGENT (N) D* '12'X = ARC SINE (N) D* '13'X = ARC COSINE (N) D* '14'X = ARC TANGENT (N) D* '15'X = HYPERBOLIC SINE (N) D* '16'X = HYPERBOLIC COSINE (N) D* '17'X = HYPERBOLIC TANGENT(N) D* '18'X = HYPERBOLIC ARCTAN (N) D* '19'X = SQUARE ROOT (N) D* '1E'X = BINARY NOT (C) D* '1F'X = NEGATION (N) D* '23'X = LENGTH (A) D* '29'X = YEAR (L,S,LD,SD) D* '2A'X = MONTH (L,S,LD,SD) D* '2B'X = DAY (L,S,LD,SD) D* '2C'X = DAYS (S,L,N,C) D* '2D'X = HOUR (T,S,TD,SD) D* '2E'X = MINUTE (T,S,TD,SD) D* '2F'X = SECOND (T,S,TD,SD) D* '30'X = MICROSECOND (S,SD) D* '31'X = DATE (S,N) D* '32'X = TIME (S,T,C) D* '34'X = HEX (A) D* '36'X = Test-translate CSID D* '37'X = TRANSLATE (Monocase) D* '3C'X = NODENUMBER D* '3D'X = CAST (A) D* '47'X = PARTITION D* '48'X = NODENAME D* '83'X = LOG (BASE 10) (N) D* '84'X = ANTI LOG (BASE 10)(N) D* '85'X = DIGITS (N) D* '86'X = CHAR (L,T,S) D* '8F'X = VARGRAPHIC (C,G) D* '90'X = VARCHAR (C,G) D* '91'X = FLOOR (N) D* - Label duration operators: D* '87'X = Year D* '88'X = Month D* '89'X = Day D* '8A'X = Hour D* '8B'X = Minute D* '8C'X = Second D* '8D'X = Microsecond D* - Operators that require D* two to many operands: D* '28'X = NULL VALUES (A) D* Returns the first D* non-null value. D* '3E'X = CASE Expression (A) D* - Operators that require D* one to many operands: D* '3A'X = HASH D* - Operators that require D* one, or two, operands: D* '33'X = TIMESTAMP D* - Group by operators: D* All require one operand, D* except COUNT, which D* requires no operands. D* 'A1'X = COUNT D* 'A3'X = SUM (N) D* 'A4'X = MINIMUM (A) D* 'A5'X = MAXIMUM (A) D* 'B0'X = AVERAGE (N) D* 'B1'X = STANDARD DEVIATION(N) D* 'B2'X = VARIANCE (N) D*QDBVXNUM 2 D QDBDTFMT00 2 2 D QDBDTSEP00 3 3 D* Translation Table Index D QDBFDVFM 4 4 D* Operator Date Format (DATFMT) D* The format of the date D* operator. D* Note: Before using this D* field, you should D* check Qddfdvop, if it D* is not '31'X, then D* this field is not D* valid. D* 'FE'X = The date format D* associated with the D* job is used. D* 'FF'X = The date format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. mm/dd/yyyy D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. yyyy-mm-dd D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. dd.mm.yyyy D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. yyyy-mm-dd D* '17'X = *MDY (Month/Day/Year) D* format is used. D* e.g. mm/dd/yy D* '18'X = *DMY (Day/Month/Year) D* format is used. D* e.g. dd/mm/yy D* '19'X = *YMD (Year/Month/Day) D* format is used. D* e.g. yy/mm/dd D* '1A'X = *JUL (Julian) format D* is used. D* e.g. yy/ddd D* or... D* Operator Time Format (TIMFMT) D* The format of the time D* operator. D* 'FE'X = The time format D* associated with the D* job is used. D* 'FF'X = The time format D* associated with the D* QDT is used. D* '01'X = *USA (IBM USA D* Standard) format is D* used. D* e.g. hh:mm AM or D* hh:mm PM D* '03'X = *ISO (International D* Standards D* Organization) format D* is used. D* e.g. hh.mm.ss D* '05'X = *EUR (IBM European D* Standard) format is D* used. D* e.g. hh.mm.ss D* '07'X = *JIS Japanese D* Industrial Standard D* Christian Era) format D* is used. D* e.g. hh:mm:ss D* '09'X = The SAA timestamp is D* used. D* '1B'X = *HMS (Hour/Minute/ D* Second) format is D* used. D* e.g. hh:mm:ss D QDBFDVSA 5 5 D* Operator Date Separator D* (DATSEP) D* The separator character to be D* used with the date operator. D* or... D* Operator Time Separator D* (TIMSEP) D* The separator character to be D* used with the time operator. D* '00'X = The default separator D* associated with the D* job is to be used. D* 'EE'X = The implied separator D* is to be used. D* '/' = The slash separator D* is to be used. D* '-' = The dash separator D* is to be used. D* '.' = The period separator D* is to be used. D* ',' = The comma separator D* is to be used. D* ' ' = The blank separator D* is to be used. D* ':' = The colon separator D* is to be used. D QDBFDVNO 6 7I 0 D* Number of Operands D*QDBQOA00 1 D QDBBITS51 8 8 D* QDBRSV9600 1 BIT D* QDBVDTTM00 1 BIT D* QDBR11302 1 BIT D* QDBFDVDF02 1 BIT D* QDBRSV9700 1 BIT D* QDBQC02 1 BIT D* QDBR11500 2 BITS D* Operator attributes D QDBVED98 9 10 D* Reserved D QDBQD00 11 11 D* Specifies the character to use D* for the decimal point, D* if the operation is a CAST and D* one of the operands is numeric D* and the other is character. D* Also used for CHAR operator D* when the first operand is D* a decimal expression. Only D* used for these two operator D* types. D QDBQFD 12 15U 0 D* Offset to function referenced D* information. D* 0 - Reference information not D* given. Use derived operator D* specified above. D* <>0 - function reference section D* is provided. It is located at D* this offset from the beginning D* of this derived entry. D QDBR10100 16 26 D* Reserved D**************************************************************** D* D*This is the function reference information. If the derived D*operator section specifies that a function reference is D*specified, this structure defines that reference. D* D**************************************************************** DQDBQD02 DS D* Defines the structure of a D* function reference. D QDBR120 1 20 D* Reserved D QDBQL 21 30 D* Library name of function D* - x'40's D* Use path to determine D* function. D* - name D* search only specified D* library for function D QDBQN00 31 32U 0 D* Length of function name D QDBQF 33 160 D* Function name D**************************************************************** D* D* DERIVED FIELD DESCRIPTION INFORMATION D* D*The derived field structure is a stack of operators and D*operands in Reverse Polish Notation. For example: D* D* A + B would be: D* D* A B + D* D* ((A * B) + 14)/(X - Y) would be: D* D* A B * 14 + X Y - / D* D*NOTE: Numeric operands and character operands can not be D*mixed in one derived field description. If numeric operands D*are specified, the resulting field attributes must be D*numeric. If character operands are specified, the resulting D*field attributes must be character or DBCS. Character and D*DBCS only fields cannot be mixed in one derived field D*description. D* D*Substringing DBCS fields will be allowed, although the data D*will be treated as character data, i.e. there is no true D*Double-Byte substring support. This applies to query formats D*only. D* D* (QQ) QUERY: Y D**************************************************************** D*This section can be located with the offset Qddfderd, which D*is located in the Field header section. D**************************************************************** DQDBQ57 DS D* Derived Field Information D QDBFDVTL 1 4I 0 D* Length of Derived Field D* Information Qddfderv D QDBVNUME 5 6I 0 D* Number of Derived Field D* Entries. Zero indicates it is D* a concatenated field. D QDBFDVOT 7 10I 0 D* Offset from start of Derived D* field header to derived field D* text description (or to the D* concatenated field text D* description) (Qddfdvtx). D QDBRSV88 11 16 D* Reserved D*QDBFDVEN 17 17 D* D* Derived Field Entry Array D* (varying length) DQDBQ58 DS D* Derived Field Entry D QDBFDVLN 1 4I 0 D* Length of Derived Field Entry D* Qddfdvst D QDBFDTYP 5 6I 0 D* Derived Field Entry Type D* 0 = Field Operand D* 1 = Constant Operand D* 2 = Operator D QDBDFDVT 7 64 D* Field Operand, Constant D* Operand, or Operator Entry D* QDDFDVOFU REDEFINES QDDFDV D QDBFDVON00 7 36 D QDBFDVJR00 37 38I 0 D QDBQ103 39 40I 0 D QDBQ207 41 42I 0 D QDBDTNUM00 43 44I 0 D QDBR50200 45 45 D QDBR50300 46 46 D* QDBFLDF00 1 D QDBBITS86 47 47 D* QDBR50401 2 BITS D* QDBFSIU03 1 BIT D* QDBR50501 5 BITS D QDBRSV8900 48 64 D* Field Operand Entry D* QDDFDVOCU REDEFINES QDDFDV D* QDBFDVOH00 42 D QDBFDVOL01 7 10I 0 D* QDBQCA02 1 D QDBBITS61 11 11 D* QDBFDVCI04 1 BIT D* QDBRSV9004 1 BIT D* QDBFDVCC04 1 BIT D* QDBFDVAC04 1 BIT D* QDBFDVCO04 1 BIT D* QDBFDVSR04 1 BIT D* QDBFDVNL04 1 BIT D* QDBRSV9104 1 BIT D QDBFDVRC01 12 12 D QDBFDVFT01 13 13 D QDBFDVSP01 14 14 D QDBRSV9201 15 16 D QDBFDVCD01 17 18U 0 D* QDBFCFLG01 1 D QDBBITS62 19 19 D* QDBRSV9304 2 BITS D* QDBFGLIT04 1 BIT D* QDBRSV9404 5 BITS D QDBRSV9501 20 48 D QDBFDVOV00 49 49 D* Constant Operand Entry D* QDDFDVOU REDEFINES QDDFDV D QDBFDVOP00 7 7 D* QDBVXNUM00 2 D QDBDTFMT01 8 8 D QDBDTSEP01 9 9 D QDBFDVFM00 10 10 D QDBFDVSA00 11 11 D QDBFDVNO00 12 13I 0 D* QDBQOA01 1 D QDBBITS54 14 14 D* QDBRSV9604 1 BIT D* QDBVDTTM04 1 BIT D* QDBR11303 1 BIT D* QDBFDVDF03 1 BIT D* QDBRSV9704 1 BIT D* QDBQC03 1 BIT D* QDBR11501 2 BITS D QDBVED9800 15 16 D QDBQD01 17 17 D QDBQFD00 18 21U 0 D QDBR10101 22 32 D* Operator Entry D**************************************************************** D* D* DERIVED FIELD TEXT DESCRIPTION D* D**************************************************************** D*This section can be located with the offset Qddfdvot, which D*is located in the Derived field header section. D**************************************************************** DQDBQ59 DS D* Derived Field Text D* Information D* Text description of the D* derived field. D QDBFDVLT 1 2I 0 D* Length of Derived Field Text D* information or concatenated D* field text information. D* (Qddfdvtx) D*QDBFDTXT 3 3 D* D* Derived Field Text D* Description (varying length) D* or concatenated field text D* description. D******************************************************************** D* TRANSLATION TABLE DECLARATIONS D******************************************************************** D** Translation Table Array ********************************** DQDBQ23 DS D* Translation Table Array D QDBFXTNM 1 10 D* Translation Table Name D QDBFXTLN 11 20 D* Translation Table Library D QDBFXCID 21 22U 0 D* Translation Table Constant D* Coded Character Set D* Identifier D* nnnnn = The coded character D* set identifier D* (CCSID) for this D* translation table. D QDBRSV99 23 32 D* Reserved D QDBFXTBL 33 288 D* Translation Table D**************************************************************** D* D* TRANSLATE TABLE SPECIFICATION. D* D**************************************************************** D*This section can be located with the offset Qddfxlto, which D*is located in the FMTD header section. D**************************************************************** DQDBQ60 DS D* Translation Table Information D QDBXLNUM 1 2I 0 D* Number of Elements In The D* Translation Table Array D*QDBFXARR 288 D QDBFXTNM00 3 12 D QDBFXTLN00 13 22 D QDBFXCID00 23 24U 0 D QDBRSV9900 25 34 D QDBFXTBL00 35 290 D* Translation Table Array D************************************************************** D* D*This is the CASE Selection specification table. If this D*specification exists it will be found after all the field D*definitions using offset Qddfrcao. D* D************************************************************** DQDBDFCSL DS D* This structure contains the D* CASE Selection specification D* table information D QDBCSNUM 1 2I 0 D* Number of selection D* specifications. D QDBDFCLN 3 6I 0 D* Length of this table plus the D* the length of all selection D* specifications D QDBERVED06 7 16 D* Reserved D QDBDFCAO 17 412I 0 DIM(00099) D* Offset to the selection D* specifications. Offset is from D* the beginning of Qdb_Qddfcsl. D* For the selection specs D* see QDBQS_T in QQQQRY D******************************************************************** D* IDDU DICTIONARY DECLARATIONS D******************************************************************** D** Format Definition Long *********************************** DQDBQ24 DS D* Format Definition Long D* Comment Information D QDBFDILT 1 2I 0 D* Length of Format Definition D* Long Comment Information D* Qddfdilt D*QDBFDITX 3 3 D* D* Format Definition Long D* Comment (varying length) D**************************************************************** D* D* IDDU/SQL DICTIONARY FORMAT INFORMATION. D* D**************************************************************** D*This section can be located with the offset Qddfdico, which D*is located in the FMTD header section. D**************************************************************** DQDBQ61 DS D* IDDU/SQL Dictionary Record D* Format Information D QDBR100 1 32 D* Reserved D*QDBFDICM 3 D QDBFDILT00 33 34I 0 D QDBFDITX00 35 35 D* Format Definition Long D******************************************************************** D* Record Structure for QDBRTVFD FILD0300 format D******************************************************************** D******************************************************************** D* D*Note: Each file may contain multiple record format and each D* format may contain multiple key fields D******************************************************************** D******************************************************************** D*The following structure contains record format information and D*can appears multiple times depending on the number of record D*formats specified for the request file D******************************************************************** DQDBQ62 DS D* Record Key Information D QDBRN 1 10 D* Record Name D QDBRSV101 11 12 D* Reserved D QDBNBROK 13 14I 0 D* Number of Keys D QDBRSV201 15 28 D* Reserved D QDBKIO 29 32I 0 D* Key Information Offset D******************************************************************** D*The following structure provides file level information for the D*request file D******************************************************************** DQDBQ63 DS D* File level information D QDBBR 1 4I 0 D* Bytes Returned D QDBBA 5 8I 0 D* Bytes Available D QDBMKL 9 10I 0 D* Maximum Key Length D QDBKC 11 12I 0 D* Key Count D QDBERVED01 13 22 D* Reserved D QDBFC01 23 24I 0 D* Formats Counts D QDBRKI 32 DIM(00032) D QDBRN00 10 OVERLAY(QDBRKI:00001) D QDBRSV102 2 OVERLAY(QDBRKI:00011) D QDBNBROK00 5I 0 OVERLAY(QDBRKI:00013) D QDBRSV202 14 OVERLAY(QDBRKI:00015) D QDBKIO00 10I 0 OVERLAY(QDBRKI:00029) D* Record Key Information D******************************************************************** D*The following structure maps to the returned key_attr data to D*provide field attributes information D******************************************************************** DQDBQ64 DS D* Qdb Qdbwhkattr D QDBBITS55 1 1 D* QDBNDING 1 BIT D* 0 = the key field is an D* ascending sequence key D* 1 = The key field is a D* decending sequence key D* QDBMERIC 2 BITS D* B'00' = The numberic key field D* will sequence as a D* string of unsigned D* binary data. D* B'01' = The numeric key field D* will ignore the sign of D* the field and sequence D* as absolute value data D* B'10' = The numeric key field D* will consider the signs D* of the field and D* sequence as signed D* value data. D* QDBERVED02 1 BIT D* Reserved D* QDBAC 1 BIT D* 0 = The alternative collating D* sequence table does NOT D* apply to this key field. D* 1 = The alternative collating D* sequence table does apply D* to this key field. D* If this file does NOT have an D* alternative collating sequence D* table, then this field is NOT D* applicable. D* QDBFZ 1 BIT D* 0 = The zone portion of the key D* field will NOT be zeroed. D* 1 = The zone portion of the key D* field will be zeroed so D* that only the digit portions D* (farthest right 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBFD 1 BIT D* 0 = The digit portion of the key D* field will NOT be zeroed. D* 1 = The digit portion of the key D* field will be zeroed so D* that only the zone portions D* (farthest left 4 bits) of D* the key values will be used D* in the key sequencing. D* QDBSF 1 BIT D* 0 = The key statement field name D* is an internal record format D* name. D* 1 = The key statement field name D* is an external record format D* name. D******************************************************************** D*The following structure maps to the additional key field D*attributes. D******************************************************************** DQDBQ104 DS D* Qdb Qdbwhkatt1 D QDBBITS66 1 1 D* QDBNV00 1 BIT D* Allow Null Value (ALWNULL) D* 0 = the null value is NOT D* allowed for this field. D* 1 = the null value is allowed D* for this field. D* QDBANE 1 BIT D* Alternative Name Indicator D* 0 = the key field does not have D* an alternative name. D* 1 = the key field has an D* alternative name. This D* will be 1 even if the length D* of the alternative name is D* greater than 30. @AHA D* QDBERVED04 6 BITS D* Reserved. @AHC D******************************************************************** D*The following structure provides key field information for each D*key field in a record format. This structure can appear multiple D*times depending on the number of key fields defined in the D*associated record format D******************************************************************** DQDBQ65 DS D* Qdb Qdbwhkey D QDBIFN 1 10 D* Internal Field Name D QDBEFN 11 20 D* External Field Name D QDBDT01 21 22I 0 D* The data type of the field D* X'0000' = BINARY D* X'0001' = FLOAT D* X'0002' = ZONED DECIMAL D* X'0003' = PACKED DECIMAL D* X'0004' = CHARACTER D* X'8004' = VAR CHARACTER D* X'0005' = GRAPHIC D* X'8005' = VAR GRAPHIC D* X'0006' = DBCS CAPABLE D* X'8006' = VAR DBCS-CAPABLE D* X'000B' = DATE D* X'000C' = TIME D* X'000D' = TIMESTAMP D QDBFL 23 24I 0 D* Field Length D QDBNBROD 25 26I 0 D* Number of Digits D* - For numeric fields, this is D* the number of digits. D* - For graphic data fields, D* this is the number of DBCS D* characters the field can D* contain. D* (This field is applicable only D* to numeric and graphic fields) D* D QDBDP 27 28I 0 D* Decimal Position D*QDBKA 1 D QDBBITS56 29 29 D* QDBNDING00 1 BIT D* QDBMERIC00 2 BITS D* QDBERVED03 1 BIT D* QDBAC00 1 BIT D* QDBFZ00 1 BIT D* QDBFD00 1 BIT D* QDBSF00 1 BIT D* Key Attributes D QDBANL 30 31I 0 D* Alternate Name Length D QDBAN 32 61 D* Alternate Name D QDBRSV103 62 62 D* Reserved D*QDBW1 1 D QDBBITS67 63 63 D* QDBNV01 1 BIT D* QDBANE00 1 BIT D* QDBERVED05 6 BITS D* Additional Key Attributes D QDBRSV203 64 64 D* Reserved D******************************************************************** D* Record Structure for QDBRTVFD FILD0400 format D******************************************************************** D* ----------------------------------------------- D* | | D* | TRIGGER SPACE HEADER | D* | fixed length | D* | | D* | Total # of trigger entries | D* | | D* +---| Offset to first trigger entry | D* | | | D* | | # of SQL Trigger entries | D* | | # of System entries | D* | | # of INSERT/BEFORE Trigger entries | D* | | # of INSERT/AFTER Trigger entries | D* | | # of DELETE/BEFORE Trigger entries | D* | | # of DELETE/AFTER Trigger entries | D* | | # of UPDATE/BEFORE Trigger entries | D* | | # of UPDATE/AFTER Trigger entries | D* | | # of READ/AFTER Trigger entries | D* | | # of INSERT/INSTEADOF Trigger entries | D* | | # of DELETE/INSTEADOF Trigger entries | D* | | # of UPDATE/INSTEADOF Trigger entries | D* | | | D* +-->|---------------------------------------------| D* | Trigger Entry # 1 | D* |---------------------------------------------| D* | Trigger Entry # 2 | D* |---------------------------------------------| D* | . | D* | . | D* | . | D* |---------------------------------------------| D* | Trigger Entry # n | D* ----------------------------------------------- D******************************************************************* DQDBQH DS D* Qdb Qdbftrg Head D* Trigger Header Structure @ADA D QDBQBRTN 1 4U 0 D* Qdb Qdbftrg Bytes Returned D* Bytes Returned @ADA D QDBQBA 5 8U 0 D* Qdb Qdbftrg Bytes Avail D* Bytes Available @ADA D QDBQRSV1 9 60 D* Qdb Qdbftrg Reserved1 D* Reserved. @ADA D QDBQNBRT 61 64U 0 D* Qdb Qdbftrg Num Trgs D* Number of trigger definitions. D* @ADA D QDBQRSV2 65 72 D* Qdb Qdbftrg Reserved2 D* Reserved. @ADA D QDBQOEN1 73 76U 0 D* Qdb Qdbftrg Off Ent Num1 D* Offset to first entry. @ADA D QDBQOIG 77 80U 0 D* Qdb Qdbftrg Off Ins Grp D* Offset to the beginning of D* the insert group. D* 0 => Either no INSERT D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQOUG 81 84U 0 D* Qdb Qdbftrg Off Upd Grp D* Offset to the beginning of D* the update group. D* 0 => Either no UPDATE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQODG 85 88U 0 D* Qdb Qdbftrg Off Del Grp D* Offset to the beginning of D* the delete group. D* 0 => Either no DELETE D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. D* D QDBQORG 89 92U 0 D* Qdb Qdbftrg Off Read Grp D* Offset to the beginning of D* the read group. D* 0 => Either no READ D* triggers or this is an D* an add of a trigger and D* QDBADDTR will order the D* group correctly. @ADA D* D QDBQR36 93 120 D* Qdb Qdbftrg Reserved36 D* Reserved. @ADA D QDBQNST 121 124U 0 D* Qdb Qdbftrg Num Sql Trgs D* Number of SQL Triggers @ADA D QDBQNNT 125 128U 0 D* Qdb Qdbftrg Num Ntv Trgs D* Number of system Triggers @ADA D QDBQNIT 129 132U 0 D* Qdb Qdbftrg Num Insb Trg D* Number of Insert/Before D* triggers @ADA D QDBQNIT00 133 136U 0 D* Qdb Qdbftrg Num Insa Trg D* Number of Insert/After D* triggers @ADA D QDBQNDT 137 140U 0 D* Qdb Qdbftrg Num Delb Trg D* Number of Delete/Before D* triggers @ADA D QDBQNDT00 141 144U 0 D* Qdb Qdbftrg Num Dela Trg D* Number of Delete/After D* triggers @ADA D QDBQNUT 145 148U 0 D* Qdb Qdbftrg Num Updb Trg D* Number of Update/Before D* triggers @ADA D QDBQNUT00 149 152U 0 D* Qdb Qdbftrg Num Upda Trg D* Number of Update/After D* triggers @ADA D QDBQNRT 153 156U 0 D* Qdb Qdbftrg Num Reada Trg D* Number of Read/After D* triggers @ADA D QDBQNIT01 157 160U 0 D* Qdb Qdbftrg Num Insi Trg D* Number of Insert/Instead OF D* triggers @0DA D QDBQNDT01 161 164U 0 D* Qdb Qdbftrg Num Deli Trg D* Number of Delete/Instead OF D* triggers @0DA D QDBQNUT01 165 168U 0 D* Qdb Qdbftrg Num Updi Trg D* Number of Update/Instead OF D* triggers @0DA D QDBQRSV3 169 704 D* Qdb Qdbftrg Reserved3 D* Reserved @0DC D******************************************************************** D*The following structure provides header information for the D*trigger definition. It can appear multiple times depending on D*the number of triggers defined for the file D******************************************************************** D* Trigger Entry - Variable Length D* ----------------------------------------------- D* | | D* | TRIGGER DEFINITION HEADER - Fixed Length | D* | | D* | Total length of this trigger definition. | D* | This length plus the offset to this | D* | trigger definition header will get | D* | addressability to the next trigger | D* | definition. | D* | | D* | Length of the trigger definition header. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Trigger attributes | D* | - TYPE - System or SQL | D* | - ORIENTATION - Column, Row, Statement | D* | - TIME - Before/After | D* | - EVENT - Insert/Update/Delete/Read | D* | - STATE - Enabled/Disabled | D* | | D* | Trigger program name and library | D* | | D* | Offsets to appended trigger areas for | D* | this trigger definition. These offsets | D* | are relative to the beginning of this | D* | trigger definition header. | D* | - Trigger name area | D* | - SQL Path area | D* | - List of Update Columns | D* | - List of WHEN Referenced Columns | D* | - List of BODY Referenced Columns | D* | - List of Dependent Objects area | D* | - Transition area | D* | - SQL Trigger STMT area | D* | - Trigger Text | D* | | D* | NOTE: A SYSTEM TRIGGER will have a | D* | trigger header and a | D* | trigger name area. The text section | D* | can only be added via the COMMENT | D* | ON SQL statement and is therefore | D* | optional. All other sections are | D* | not applicable to a system trigger. | D* | | D* | An SQL TRIGGER may have all of the | D* | above structures with the following | D* | restrictions/dependencies: | D* | 1 - The trigger definition header, | D* | the trigger name area, the SQL | D* | path, and the SQL trigger STMT | D* | are all required. | D* | 2 - Only an SQL trigger with an | D* | Update event will have a list of | D* | update columns. | D* | 3 - The list of WHEN columns, the | D* | list of BODY columns, the list | D* | of dependent objects, and the | D* | transition area are optional. | D* | More correctly, they are | D* | dependent on if there is any | D* | of that type of information to | D* | be included in the trigger | D* | definition entry. | D* | 4 - The text section can only be | D* | added via the COMMENT ON SQL | D* | statement and is therefore | D* | optional. | D* | | D* |---------------------------------------------| D* | | D* | TRIGGER NAME AREA - Fixed Length | D* | | D* | Length of the TRIGGER NAME AREA. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Library name | D* | Trigger name - fixed length | D* | | D* |---------------------------------------------| D* | | D* | SQL PATH AREA - Variable Length | D* | | D* | Length of the SQL PATH Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* |---------------------------------------------| D* | | D* | LIST OF UPDATE COLUMNS AREA - Var Length | D* | This is the list of the columns specified | D* | for an Update event trigger. | D* | | D* | Length of the LIST OF UPDATE COLUMNS Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in List | D* | Array of Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF WHEN COLUMNS AREA | D* | Variable length. | D* | This is the list of the columns in the | D* | WHEN portion of the CREATE TRIGGER | D* | statement. | D* | | D* | Length of the LIST OF WHEN COLUMNS area | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in WHEN List | D* | Array of WHEN Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF BODY COLUMNS AREA | D* | Variable length. | D* | This is the list of the columns in the | D* | BODY portion of the CREATE TRIGGER | D* | statement. | D* | | D* | Length of the LIST OF BODY COLUMNS area | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of Columns in BODY List | D* | Array of BODY Column names | D* | | D* |---------------------------------------------| D* | | D* | LIST OF DEPENDENT OBJECTS AREA - Var Length | D* | | D* | NOTE: This is not the actual list but a | D* | set of offsets into the SQL CREATE | D* | TRIGGER STMT that will position one | D* | to a dependent object. | D* | | D* | Length of the LIST of DEP OBJs Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Number of objects in List | D* | Array of Object information | D* | - Offsets to dependent object | D* | - Type of object (table, UDT, UDF, etc) | D* | - Attributes (eg library qualified) | D* | | D* | NOTE: All offsets are relative to the | D* | beginning of the CREATE TRIGGER | D* | string located in the TRIGGER SQL | D* | STMT AREA. | D* | | D* |---------------------------------------------| D* | | D* | TRANSITION AREA - Variable Length | D* | | D* | This area contains the old/new correlation | D* | names and the old/new transition | D* | table names that can be used by the action | D* | to reference the affected rows. | D* | | D* | Length of the TRANSITION Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Old Correlation variable name | D* | New Correlation variable name | D* | Old Transition Table name | D* | New Transition Table name | D* | | D* |---------------------------------------------| D* | | D* | SQL TRIGGER STMT AREA - Variable Length | D* | | D* | Length of the SQL TRIGGER STMT Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Length of the SQL CREATE TRIGGER STMT | D* | Length of the SQL WHEN CLAUSE | D* | Offset to the SQL WHEN CLAUSE relative to | D* | the start of the SQL CREATE TRIGGER STMT | D* | Length of the SQL TRIGGER BODY | D* | Offset to the SQL TRIGGER BODY relative to | D* | the start of the SQL CREATE TRIGGER STMT | D* | SQL CREATE TRIGGER STMT | D* | | D* |---------------------------------------------| D* | | D* | SQL TRIGGER TEXT AREA - Variable Length | D* | | D* | Length of the SQL TRIGGER TEXT Area. | D* | This length plus the offset to this | D* | substructure will get addressability to | D* | the next substructure in this trigger | D* | definition. | D* | | D* | Length of the SQL TEXT | D* | SQL TRIGGER TEXT | D* | | D* | NOTE: The text for a trigger can only be | D* | added via the COMMENT ON Statement. | D* | | D* ----------------------------------------------- D* D* D******************************************************************* D******************************************************************** D*This section can be located using offset Qdb_qdbftrg_off_ent_#1 D******************************************************************** DQDBQDH DS D* Qdb Qdbftrg Def Head D* Trigger definition header D* @ADA D QDBQRSV4 1 20 D* Qdb Qdbftrg Reserved4 D* Reserved. @ADA D QDBQDL 21 24U 0 D* Qdb Qdbftrg Def Len D* Length of the trigger D* definition entry. D* This includes all structures. D* NOTE: This length will also D* include any padding needed D* to get a length divisable by D* 16. This is done in order to D* get the next trigger D* definition entry on a 16 byte D* boundary. D* D* @ADA D QDBQHL 25 28U 0 D* Qdb Qdbftrg Head Len D* Length of the trigger D* definition header - D* Qdb_qdbftrg_def_head @ADA D QDBQRSV5 29 80 D* Qdb Qdbftrg Reserved5 D* Reserved @ADA D QDBQDP00 81 90 D* Qdb Qdbftrg Def Pgm D* Trigger program name @ADA D QDBQDL00 91 100 D* Qdb Qdbftrg Def Lib D* Trigger program library @ADA D QDBQRSV6 101 104 D* Qdb Qdbftrg Reserved6 D* Reserved @ADA D QDBQDON 105 108U 0 D* Qdb Qdbftrg Def Ord Num D* Trigger ordinal number. @ADA D QDBQDS 109 109 D* Qdb Qdbftrg Def State D* Trigger state. @ADA D* 'E' = Enabled D* 'D' = Disabled D* Value restricted to enabled. D* Disabled is not yet supported. D* D QDBQDO 110 110 D* Qdb Qdbftrg Def Operative D* Trigger is operative. @ADA D* 'O' = Operative Trigger. D* 'I' = Inoperative Trigger. D* D* An Operative trigger indicates D* the trigger can be fired. D* An Inoperative trigger cannot D* be fired. D* D QDBQDT 111 111 D* Qdb Qdbftrg Def Type D* Trigger type D* 'N' = Native/System (added D* using ADDPFTRG) D* 'S' = SQL (added using CREATE D* TRIGGER) @ADA D QDBQDM 112 112 D* Qdb Qdbftrg Def Mode D* Trigger mode. @ADA D* Used only when the trigger D* type QDBFTRG_DEF_TYPE is set D* to an SQL trigger. D* The mode is used to determine D* the I/O model used during D* the trigger program D* execution. D* '00'X = Not applicable. D* '01'X = DB2 SQL. D* '02'X = DB2 Row. D QDBQDO00 113 113 D* Qdb Qdbftrg Def Orient D* Trigger orientation D* 'R' = Row trigger D* 'C' = Column trigger @ADA D QDBQDT00 114 114 D* Qdb Qdbftrg Def Time D* Trigger time D* '1' = After D* '2' = Before @ADA D* '3' = Instead Of D QDBQDE 115 115 D* Qdb Qdbftrg Def Event D* Trigger event D* '1' = Insert D* '2' = Delete D* '3' = Update D* '4' = Read @ADA D QDBQDM01 116 116 D* Qdb Qdbftrg Def Met D* Multiple event trigger. D* X'00' = This is not a multiple D* event trigger. D* 'P' = Primary entry of the D* multiple event trigger. D* 'S' = Secondary entry of the D* multiple event trigger. D* D* A secondary trigger only has D* the following structures set: D* trigger definition entry D* header and trigger definition D* name structure. The following D* structures are not set for a D* secondary trigger: SQL path D* structure, UPDATE columns D* entry structure, WHEN column D* structure, BODY column D* structure, dependent objects D* structure, dependent objects D* entry structure, transition D* area structure, trigger D* statement area, and trigger D* long comment area. These D* structures will instead be set D* for the primary trigger with D* the same trigger name and D* library. @0IC D QDBBITS88 117 117 D* QDBFQDMI 1 BIT D* Qdbf Qdbftrg Def Met Insert D* Multiple event trigger insert D* event indicator. If on, an D* insert trigger is included. D* QDBFQDMD 1 BIT D* Qdbf Qdbftrg Def Met Delete D* Multiple event trigger delete D* event indicator. If on, a D* delete trigger is included. D* QDBFQDMU 1 BIT D* Qdbf Qdbftrg Def Met Update D* Multiple event trigger update D* event indicator. If on, an D* update trigger is included. D* QDBFQDMR 5 BITS D* Reserved. D QDBQRSV7 118 160 D* Qdb Qdbftrg Reserved7 D* Reserved @ADA D QDBQDOTN 161 164U 0 D* Qdb Qdbftrg Def Off Trg Name D* Offset to the trigger name D* structure. @ADA D QDBQRSV8 165 168U 0 D* Qdb Qdbftrg Reserved8 D* Reserved. @ADA D QDBQDOSP 169 172U 0 D* Qdb Qdbftrg Def Off Sql Path D* Offset to the SQL path. @ADA D QDBQDOUC 173 176U 0 D* Qdb Qdbftrg Def Off Upd Cols D* Offset to the update columns D* structure. @ADA D QDBQDOWC 177 180U 0 D* Qdb Qdbftrg Def Off When Col D* Offset to the structure D* containing the list of D* columns referenced in the D* WHEN condition. @ADA D QDBQDOBC 181 184U 0 D* Qdb Qdbftrg Def Off Body Col D* Offset to the structure D* containing the list of D* columns referenced in the D* trigger body. @ADA D QDBQDODO 185 188U 0 D* Qdb Qdbftrg Def Off Dep Objs D* Offset to the structure D* containing the list of D* dependent objects referenced D* in the trigger body. @ADA D QDBQDOT 189 192U 0 D* Qdb Qdbftrg Def Off Transiti D* Offset to the structure D* containing the transition D* tables. @ADA D QDBQDOTS 193 196U 0 D* Qdb Qdbftrg Def Off Trg Stmt D* Offset to the structure D* containing the CREATE TRIGGER D* statement. @ADA D QDBQDOTL 197 200U 0 D* Qdb Qdbftrg Def Off Trg Long D* Offset to the structure D* containing the trigger long D* comment area. The long D* comment can only be added D* via the COMMENT ON statement. D* 0 => No Trigger Long Comment. D* @ADA D QDBQRSV9 201 264 D* Qdb Qdbftrg Reserved9 D* Reserved @ADA D QDBQDU 265 265 D* Qdb Qdbftrg Def Updcond D* Trigger update condition. For D* system/native triggers only. D* This field is only valid for D* UPDATE event. This field will D* be ignored for INSERT or D* DELETE or READ events. D* '1' = Always calls the trigger D* when updating the file. D* '2' = Only calls the trigger D* when the updated values D* are changed. @ADA D QDBQDAR 266 266 D* Qdb Qdbftrg Def Allow Repchg D* Allow repeated change. D* '00'X = *NO (not allowed) D* '01'X = *YES (allows change) D* @ADA D QDBQDT01 267 267 D* Qdb Qdbftrg Def Threadsafe D* Threadsafe indicator. D* X'00' = *UNKNOWN (Threadsafe D* status is not known) D* X'01' = *NO (Not threadsafe) D* X'10' = *YES (Threadsafe) D* @ADA D QDBQDM00 268 268 D* Qdb Qdbftrg Def Multijob D* Multithreaded Job Action D* Indicator D* X'00' = *SYSVAL (default) D* X'01' = *MSG (Run, diagnostic) D* X'10' = *NORUN (Escape) D* X'11' = *RUN (Run, no message) D* @ADA D QDBQDOT00 269 269 D* Qdb Qdbftrg Def Old Tvar D* Old transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDNT 270 270 D* Qdb Qdbftrg Def New Tvar D* New transition variable D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDOT01 271 271 D* Qdb Qdbftrg Def Old Ttable D* Old transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDNT00 272 272 D* Qdb Qdbftrg Def New Ttable D* New transition table D* indicator D* X'00' = No D* X'01' = Yes D* For SQL triggers only @ADA D QDBQDSR 273 273 D* Qdb Qdbftrg Def Self Ref D* Indicates if this trigger is D* self-referencing. That is, D* did the user explicitly D* specify this file's name in D* the trigger body. D* X'00' => Not self-referencing D* X'01' => Self-referencing D* @ADA D QDBQDCT 274 286 D* Qdb Qdbftrg Def Crt Ts D* Trigger creation timestamp D* @ADA D QDBQDCU 287 296 D* Qdb Qdbftrg Def Crt User D* User profile that created the D* trigger @ADA D QDBQDPO 297 306 D* Qdb Qdbftrg Def Pgm Owner D* User profile that owns the D* trigger program @ADA D* For SQL triggers only D QDBQDTC 307 310U 0 D* Qdb Qdbftrg Def Trg Ccsid D* CCSID that the trigger D* statement was created with. D* @ADA D QDBQR34 311 311 D* Qdb Qdbftrg Reserved34 D* Reserved. @ADA D QDBQDMT 312 312 D* Qdb Qdbftrg Def Mod Tvar D* Indicates if the trigger D* contains a SET statement that D* modifies the new correlation D* variable. D* X'00' = No D* X'01' = Yes D* For SQL Before Update triggers D* only. @ADA D QDBQDS00 313 313 D* Qdb Qdbftrg Def Secure D* Specifies if the trigger D* considered secure for row D* access control and column D* access control. D* 'S' = Trigger is secure. D* X'00' = Trigger not secured. D* @0HA D QDBQDA00 314 326 D* Qdb Qdbftrg Def Altered D* Last trigger altered date. D* X'00' = No alter date. D* @0HA D QDBQR10 327 464 D* Qdb Qdbftrg Reserved10 D* Reserved @ADA @ADC D******************************************************************** D*The following structure maps the trigger name area D******************************************************************** DQDBQNA DS D* Qdb Qdbftrg name area D QDBQR11 1 20 D* Qdb Qdbftrg Reserved11 D* Reserved. @ADA D QDBQNATL 21 24U 0 D* Qdb Qdbftrg Name Area Tot Le D* Total length of the trigger D* name area. @ADA D QDBQNLL 25 28U 0 D* Qdb Qdbftrg Name Lib Len D* Length of the trigger library D* name. @ADA D QDBQNL 29 32U 0 D* Qdb Qdbftrg Name Len D* Length of the trigger @ADA D* name. D QDBQNS 33 33 D* Qdb Qdbftrg Name Sysgen D* Trigger name generated by D* the system. D* X'00' => User GENed name. D* X'01' => Originally, user D* GENed name but D* collision occured D* and system Re-GENed D* the name. D* X'02' => System GENed name. D* @ADA D QDBQND 34 34 D* Qdb Qdbftrg Name Delim D* Trigger name is a delimited D* name. If a delimited name, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* @ADA D QDBQLD 35 35 D* Qdb Qdbftrg Lib Delim D* Trigger library is a delimited D* name. If delimited, D* then the name will contain D* double quotes. D* X'00' => Not delimited name. D* X'01' => Is a delimited name. D* @ADA D QDBQNT 36 36 D* Qdb Qdbftrg Name Type D* Trigger naming convention. D* X'00' => System naming. D* X'01' => SQL naming. @ADA D QDBQR12 37 94 D* Qdb Qdbftrg Reserved12 D* Reserved @ADA D QDBQNQ 95 362 D* Qdb Qdbftrg Name Qual D* Qualified trigger name. D* The trigger name and library D* are in 2 parts. D* The first part contains the D* trigger library name (10 D* characters). D* The second part contains the D* trigger name (258 characters). D* Qdb_Qdbftrg_Name_Len contains D* the length of the trigger D* name. D* D* The trigger name may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Name_Delim D* indicates whether it is D* delimited. If it is D* delimited, the the name in D* this field does contain D* double quotes. D* D* The trigger library may be a D* delimited name (double D* quotes). D* Qdb_Qdbftrg_Lib_Delim D* indicates whether it is D* delimited. @ADA D******************************************************************** D*The following structure maps the SQL path structure D******************************************************************** DQDBQPA DS D* Qdb Qdbftrg Path Area D QDBQR13 1 20 D* Qdb Qdbftrg Reserved13 D* Reserved. @ADA D QDBQPTL 21 24U 0 D* Qdb Qdbftrg Path Tot Len D* Length of the trigger path D* area. @ADA D QDBQPL 25 28U 0 D* Qdb Qdbftrg Path Len D* Length of the path structure. D* @ADA D QDBQR14 29 64 D* Qdb Qdbftrg Reserved14 D* Reserved @ADA D*QDBQP 65 65 D* D* SQL Path (varying length). D* @ADA D******************************************************************* D* D*List of Update Columns D* D*This is the list of columns specified for an Update trigger. D*The columns in this list must be present in the file's record D*format. The list will contain both the short and long column D*names. D* D*A seperate structure will be used to reference the column D*names since the long name can be variable length. D* D*NOTE: Each column entry name is unique. There will not be any D* duplicate name entries. D* D******************************************************************* D******************************************************************* D*The following structure maps the UPDATE columns list entry D******************************************************************* DQDBFQULE DS D* Qdbf Qdbftrg Updc List Ent D QDBQULL 1 4U 0 D* Qdb Qdbftrg Updc Le Len D* List Entry Length. D* Addressability to this entry D* plus this length gets D* addressability to the next D* column list entry. @ADA D* D QDBQULSN 5 14 D* Qdb Qdbftrg Updc Le Short Na D* Short name of the column. D* @ADA D QDBQULSD 15 15 D* Qdb Qdbftrg Updc Le Short De D* Short name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQULLD 16 16 D* Qdb Qdbftrg Updc Le Long Del D* Long name is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQULLS 17 17 D* Qdb Qdbftrg Updc Le Long Sam D* Short name and long name are D* the same. D* X'00' => Names are different. D* X'01' => Names are the same. D* @ADA D QDBQULLL 18 21U 0 D* Qdb Qdbftrg Updc Le Long Len D* Length of the long name - D* qdbfTRG_UPDC_LE_LONG_NAME D* @ADA D QDBQR17 22 48 D* Qdb Qdbftrg Reserved17 D* Reserved @ADA D*QDBQULLN 49 49 D* Qdb Qdbftrg Updc Le Long Nam D* D* Long name of the column D* (varying length). D* @ADA D* D******************************************************************** D*The following structure maps the UPDATE columns structure D******************************************************************** DQDBQUA DS D* Qdb Qdbftrg Updc Area D QDBQR15 1 20 D* Qdb Qdbftrg Reserved15 D* Reserved. @ADA D QDBQUTL 21 24U 0 D* Qdb Qdbftrg Updc Tot Len D* Length of the update columns D* area. @ADA D QDBQUNC 25 28U 0 D* Qdb Qdbftrg Updc Num Cols D* Number of columns in the list. D* @ADA D QDBQR16 29 80 D* Qdb Qdbftrg Reserved16 D* Reserved @ADA D*QDBQULS 81 81 D* Qdb Qdbftrg Updc List Struc D* D* Update column list structure D* (varying length). @ADA D******************************************************************** D*List of WHEN Reference Columns D* D*This is the list of the columns in the WHEN portion of the D*CREATE TRIGGER statement. Actually, the name is NOT part of the D*list. Rather, there is an offset to the column name in the WHEN D*statement of the expanded CREATE TRIGGER string. D* D*Each WHEN column entry consists of a set of offsets into the D*CREATE TRIGGER expanded string. The following is an example D*of the offsets. D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* SQL will generate correlation variables X and Y. D* D* If the user codes the following: D* D* CREATE TRIGGER ... D* AFTER INSERT ON T1 ... D* WHEN(COL1 = COL2) ... D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* AFTER INSERT ON LIB1.T1 X ... D* WHEN(X.COL1 = X.COL2) ... D* D* The correlation variable X is used to qualify the D* column names with the library and file. The table in D* the expanded string are qualified with the library D* name. D* D* The list entries will have offsets into the expanded D* CREATE TRIGGER string. D* D* --------------------- D* | WHEN entry 1 | D* | Offset to col ----|--------------+ D* | Offset to file ---|--------+ | D*+------| Offset to lib | | | D*| |-------------------| | | D*| | WHEN entry 2 | | | D*| | Offset to col ----|--------|-----|--------+ D*| | Offset to file ---|----+ | | | D*| +--| Offset to lib | | | | | D*| | --------------------- | | | | D*| | | | | | D*| | | | | | D*+-->+---------------+ +------+<--+ | | D* | | | | D*CREATE TRIGGER string V V V V D*---------------------------------------------------------------- D*| ... AFTER INSERT ON LIB1.T1 X ... WHEN(X.COL1 = X.COL2) ... | D*---------------------------------------------------------------- D* D*NOTE: The list of WHEN columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the WHEN columns array entry D******************************************************************** DQDBQWA DS D* Qdb Qdbftrg When Array D QDBQWCO 1 4U 0 D* Qdb Qdbftrg When Col Off D* WHEN column name offset into D* the WHEN portion of the CREATE D* TRIGGER statement. @ADA D QDBQWCL 5 8U 0 D* Qdb Qdbftrg When Col Len D* WHEN column name length. @ADA D QDBQWFO 9 12U 0 D* Qdb Qdbftrg When File Off D* Offset to the column's file D* name. @ADA D QDBQWFL 13 16U 0 D* Qdb Qdbftrg When File Len D* Length of the column's file D* name in the trigger string. D* @ADA D QDBQWLO 17 20U 0 D* Qdb Qdbftrg When Lib Off D* Offset to the column's file D* library name. @ADA D QDBQWLL 21 24U 0 D* Qdb Qdbftrg When Lib Len D* Length of the column's file D* library name. @ADA D QDBQW1E 25 25 D* Qdb Qdbftrg When 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. @ADA D QDBQWTF 26 26 D* Qdb Qdbftrg When This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* @ADA D QDBQWCL00 27 27 D* Qdb Qdbftrg When Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWCD 28 28 D* Qdb Qdbftrg When Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQWFL00 29 29 D* Qdb Qdbftrg When File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWFD 30 30 D* Qdb Qdbftrg When File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQWLL00 31 31 D* Qdb Qdbftrg When Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQWLD 32 32 D* Qdb Qdbftrg When Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR20 33 64 D* Qdb Qdbftrg Reserved20 D* Reserved @ADA D******************************************************************** D*The following structure maps the WHEN columns structure D******************************************************************** DQDBQWA00 DS D* Qdb Qdbftrg When Area D QDBQR18 1 20 D* Qdb Qdbftrg Reserved18 D* Reserved. @ADA D QDBQWTL 21 24U 0 D* Qdb Qdbftrg When Tot Len D* Length of the WHEN D* referenced columns area. @ADA D QDBQWNC 25 28U 0 D* Qdb Qdbftrg When Num Cols D* Number of columns in the list. D* @ADA D QDBQWSR 29 29 D* Qdb Qdbftrg When Self Ref D* Indicates columns in the D* WHEN list belong to this file. D* That is, this is a self- D* referencing dependency. D* X'00' => All self-referencing. D* All columns belong D* to the ON table. D* X'01' => Self-referencing. D* Some of the columns D* belong to the ON D* table. D* X'02' => Not self-referencing. D* None of the columns D* belong to the ON D* table. D* D QDBQR19 30 80 D* Qdb Qdbftrg Reserved19 D* Reserved @ADA D*QDBQWA01 64 D* Qdb Qdbftrg When Array D QDBQWCO00 81 84U 0 D* Qdb Qdbftrg When Col Off D QDBQWCL01 85 88U 0 D* Qdb Qdbftrg When Col Len D QDBQWFO00 89 92U 0 D* Qdb Qdbftrg When File Off D QDBQWFL01 93 96U 0 D* Qdb Qdbftrg When File Len D QDBQWLO00 97 100U 0 D* Qdb Qdbftrg When Lib Off D QDBQWLL01 101 104U 0 D* Qdb Qdbftrg When Lib Len D QDBQW1E00 105 105 D* Qdb Qdbftrg When 1st Entry D QDBQWTF00 106 106 D* Qdb Qdbftrg When This File D QDBQWCL02 107 107 D* Qdb Qdbftrg When Col Long D QDBQWCD00 108 108 D* Qdb Qdbftrg When Col Del D QDBQWFL02 109 109 D* Qdb Qdbftrg When File Long D QDBQWFD00 110 110 D* Qdb Qdbftrg When File Del D QDBQWLL02 111 111 D* Qdb Qdbftrg When Lib Long D QDBQWLD00 112 112 D* Qdb Qdbftrg When Lib Del D QDBQR2000 113 144 D* Qdb Qdbftrg Reserved20 D* WHEN column list array. @ADA D******************************************************************** D*The following structure maps the BODY columns structure D* D*List of Columns referenced in the BODY D* D*This is the list of the columns in the BODY portion of the D*CREATE TRIGGER statement. D* D*The columns in this list may be in this file or another file. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* column name in the BODY. D* D* See the WHEN columns prologue for an example of how D* column entry offsets are tied to the CREATE TRIGGER string. D* D*NOTE: The list of BODY columns will identify all instances of a D* column in the list. That is, there may be multiple D* entries for the same column name. The first entry flag D* can be used to differentiate between the first occurrence D* of a column in the list and subsequent entries. D* D******************************************************************** D*The following structure maps the BODY column array entry D******************************************************************** DQDBQBA00 DS D* Qdb Qdbftrg Body Array D* Individual BODY Column Entry. D* Note: This structure does D* not contain the name of a D* column in the trigger body, D* but an offest into the D* trigger body where the D* column is referenced. D* Each entry is 64 bytes long. D* @ADA D QDBQBCO 1 4U 0 D* Qdb Qdbftrg Body Col Off D* BODY Column Name offset into D* the BODY portion of the D* CREATE TRIGGER statement. @ADA D QDBQBCL 5 8U 0 D* Qdb Qdbftrg Body Col Len D* Length of the column name in D* the trigger string. @ADA D QDBQBFO 9 12U 0 D* Qdb Qdbftrg Body File Off D* Offset to the column's file D* name. @ADA D QDBQBFL 13 16U 0 D* Qdb Qdbftrg Body File Len D* Length of the column's file D* name in the trigger string. D* @ADA D QDBQBLO 17 20U 0 D* Qdb Qdbftrg Body Lib Off D* Offset to the column's library D* name. @ADA D QDBQBLL 21 24U 0 D* Qdb Qdbftrg Body Lib Len D* Length of the column's library D* name in the trigger string. D* @ADA D QDBQB1E 25 25 D* Qdb Qdbftrg Body 1st Entry D* Indicates if the column name D* is the first in the list of D* entries. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. @ADA D QDBQBTF 26 26 D* Qdb Qdbftrg Body This File D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the trigger. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* @ADA D QDBQBCL00 27 27 D* Qdb Qdbftrg Body Col Long D* Indicates if the column name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBCD 28 28 D* Qdb Qdbftrg Body Col Del D* Indicates if the column name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQBFL00 29 29 D* Qdb Qdbftrg Body File Long D* Indicates if the column's FILE D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBFD 30 30 D* Qdb Qdbftrg Body File Del D* Indicates if the column's D* FILE name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQBLL00 31 31 D* Qdb Qdbftrg Body Lib Long D* Indicates if the column's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQBLD 32 32 D* Qdb Qdbftrg Body Lib Del D* Indicates if the column's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR23 33 64 D* Qdb Qdbftrg Reserved23 D* Reserved area-future use. @ADA D******************************************************************** D*The following structure maps the BODY columns structure D******************************************************************** DQDBQBA01 DS D* Qdb Qdbftrg Body Area D QDBQR21 1 20 D* Qdb Qdbftrg Reserved21 D* Reserved. @ADA D QDBQBTL 21 24U 0 D* Qdb Qdbftrg Body Tot Len D* Total length of the list of D* WHEN reference columns D* substructure D* Qdb_qdbftrg_body_area. @ADA D QDBQBNC 25 28U 0 D* Qdb Qdbftrg Body Num Cols D* Number of columns in the list. D* 0 = No columns in the list. D* @ADA D QDBQBSR 29 29 D* Qdb Qdbftrg Body Self Ref D* Indicates columns in the D* BODY list belong to this file. D* That is, this is a self- D* referencing dependency. @ADA D* X'00' => All self-referencing. D* X'01' => Some self-referencing D* X'10' => Not self-referencing. D QDBQR22 30 80 D* Qdb Qdbftrg Reserved22 D* Reserved. @ADA D*QDBQBA02 64 D* Qdb Qdbftrg Body Array D QDBQBCO00 81 84U 0 D* Qdb Qdbftrg Body Col Off D QDBQBCL01 85 88U 0 D* Qdb Qdbftrg Body Col Len D QDBQBFO00 89 92U 0 D* Qdb Qdbftrg Body File Off D QDBQBFL01 93 96U 0 D* Qdb Qdbftrg Body File Len D QDBQBLO00 97 100U 0 D* Qdb Qdbftrg Body Lib Off D QDBQBLL01 101 104U 0 D* Qdb Qdbftrg Body Lib Len D QDBQB1E00 105 105 D* Qdb Qdbftrg Body 1st Entry D QDBQBTF00 106 106 D* Qdb Qdbftrg Body This File D QDBQBCL02 107 107 D* Qdb Qdbftrg Body Col Long D QDBQBCD00 108 108 D* Qdb Qdbftrg Body Col Del D QDBQBFL02 109 109 D* Qdb Qdbftrg Body File Long D QDBQBFD00 110 110 D* Qdb Qdbftrg Body File Del D QDBQBLL02 111 111 D* Qdb Qdbftrg Body Lib Long D QDBQBLD00 112 112 D* Qdb Qdbftrg Body Lib Del D QDBQR2300 113 144 D* Qdb Qdbftrg Reserved23 D* Array used to access the list D* of BODY referenced columns. D* @ADA D******************************************************************* D* D*List of Dependent Objects for the WHEN/BODY clauses. D* D*NOTE: This is not the actual list but a set of offsets into the D* SQL CREATE TRIGGER stmt that will position one to a D* dependent object. D* D*NOTE: All offsets in this list are relative to the beginning of D* the CREATE TRIGGER string located in the TRIGGER SQL STMT D* variable Qdb_qdbftrg_stmt_crt_trg. D* D*NOTE: The list of dependent objects will identify all instances D* of an object in the list. That is, there may be multiple D* entries for the same object name. The first entry flag D* can be used to differentiate between the first occurrence D* of an object in the list and subsequent entries. D* D******************************************************************* D******************************************************************** D*The following structure maps the dependent objects array entry D******************************************************************** DQDBFQDA DS D* Qdbf Qdbftrg Depo Array D QDBQDT02 1 2 D* Qdb Qdbftrg Depo Type D* Type of dependent object. D* TB = Table D* PF = Physical File D* VW = View D* LF = Logical File D* IX = Index D* UF = UDF D* UT = UDT D* PR = Procedure D* AL = Alias @ADA D QDBQDO01 3 6U 0 D* Qdb Qdbftrg Depo Off D* Offset to the dependent D* object - relative to the D* beginning of the CREATE D* TRIGGER string D* Qdb_qdbftrg_stmt_crt_trg D* @ADA D QDBQDL01 7 10U 0 D* Qdb Qdbftrg Depo Len D* Length of the dependent D* object's name. @ADA D QDBQDLO 11 14U 0 D* Qdb Qdbftrg Depo Lib Off D* Offset to the qualifying D* library name of the dependent D* object. D* Offset relative from start of D* Qdb_qdbftrg_stmt_crt_trg D* 0 => No qualifying library. D* @ADA D QDBQDLL 15 18U 0 D* Qdb Qdbftrg Depo Lib Len D* Length of the qualifying D* library name of the dependent D* object. D* 0 => No qualifying library. D* @ADA D QDBQD1E 19 19 D* Qdb Qdbftrg Depo 1st Entry D* Indicates if the object name D* is the first in the list of D* entries. Criteria is based on D* object name, library name and D* object type. D* X'00' => Object is 2nd or D* greater occurance D* in the list. D* X'01' => Object is the first D* in the list. @ADA D QDBQDTF 20 20 D* Qdb Qdbftrg Depo This File D* Indicates if the object is D* this FILE. D* X'00' => Object Not THIS FILE. D* X'01' => Object is THIS FILE. D* @ADA D QDBQDOL 21 21 D* Qdb Qdbftrg Depo Obj Long D* Indicates if the object name D* is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQDOD 22 22 D* Qdb Qdbftrg Depo Obj Del D* Indicates if the object name D* is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQDLL00 23 23 D* Qdb Qdbftrg Depo Lib Long D* Indicates if the object's LIB D* name is a short or long name. D* X'00' => Name is short name. D* X'01' => Name is long name. D* @ADA D QDBQDLD 24 24 D* Qdb Qdbftrg Depo Lib Del D* Indicates if the object's D* LIB name is a delimited name. D* X'00' => Name non-delimited. D* X'01' => Name is delimited. D* @ADA D QDBQR26 25 64 D* Qdb Qdbftrg Reserved26 D* Reserved. @ADA D******************************************************************** D*The following structure maps the dependent objects area D******************************************************************** DQDBFQDA00 DS D* Qdbf Qdbftrg Depo Area D QDBQR24 1 20 D* Qdb Qdbftrg Reserved24 D* Reserved. @ADA D QDBQDTL 21 24U 0 D* Qdb Qdbftrg Depo Tot Len D* Total length of the list of D* dependent objects D* substructure D* Qdb_qdbftrg_depo_area. @ADA D QDBQDNO 25 28U 0 D* Qdb Qdbftrg Depo Num Off D* Number of dependent object D* offsets in the following D* array. @ADA D QDBQDSR00 29 29 D* Qdb Qdbftrg Depo Self Ref D* Indicates this file is D* referenced at least once D* somewhere in the WHEN or D* BODY. That is, this is a D* self-referencing dependency. D* X'00' => Not self-referencing. D* X'01' => Is self-referencing. D* @ADA D QDBQR25 30 80 D* Qdb Qdbftrg Reserved25 D* Reserved. @ADA D*QDBQDA 64 D* Qdb Qdbftrg Depo Array D QDBQDT03 81 82 D* Qdb Qdbftrg Depo Type D QDBQDO02 83 86U 0 D* Qdb Qdbftrg Depo Off D QDBQDL02 87 90U 0 D* Qdb Qdbftrg Depo Len D QDBQDLO00 91 94U 0 D* Qdb Qdbftrg Depo Lib Off D QDBQDLL01 95 98U 0 D* Qdb Qdbftrg Depo Lib Len D QDBQD1E00 99 99 D* Qdb Qdbftrg Depo 1st Entry D QDBQDTF00 100 100 D* Qdb Qdbftrg Depo This File D QDBQDOL00 101 101 D* Qdb Qdbftrg Depo Obj Long D QDBQDOD00 102 102 D* Qdb Qdbftrg Depo Obj Del D QDBQDLL02 103 103 D* Qdb Qdbftrg Depo Lib Long D QDBQDLD00 104 104 D* Qdb Qdbftrg Depo Lib Del D QDBQR2600 105 144 D* Qdb Qdbftrg Reserved26 D* Array used to access the list D* of dependent objects offsets. D* @ADA D******************************************************************* D* D*TRANSITION AREA for OLD/NEW Correlation Variable names and D* OLD/NEW Transistion Table names. D* D*This area contains the old/new correlation variable names and the D*old/new transition table names that can be used by the action to D*reference the affected rows. D* D******************************************************************* DQDBFQTA DS D* Qdbf Qdbftrg Trns Area D* Transition area. @ADA D QDBQR27 1 20 D* Qdb Qdbftrg Reserved27 D* Reserved. @ADA D QDBQTTL 21 24U 0 D* Qdb Qdbftrg Trns Tot Len D* Total length of the transition D* area substructure D* Qdb_qdbftrg_trns_area; @ADA D QDBQTOL 25 28U 0 D* Qdb Qdbftrg Trns Oldvar Len D* Old correlation variable name D* length. @ADA D* 0 => No old transition var. D QDBQTNL 29 32U 0 D* Qdb Qdbftrg Trns Newvar Len D* New correlation variable name D* length. D* 0 => No new correlation var. D* @ADA D QDBQTOL00 33 36U 0 D* Qdb Qdbftrg Trns Oldtbl Len D* Old transition table name D* length. D* 0 => No old transition table. D* @ADA D QDBQTNL00 37 40U 0 D* Qdb Qdbftrg Trns Newtbl Len D* New transition table name D* length. D* 0 => No new transition table. D* @ADA D QDBQTOO 41 44U 0 D* Qdb Qdbftrg Trns Oldvar Off D* Offset to the Old correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old correlation var. D* @ADA D QDBQTNO 45 48U 0 D* Qdb Qdbftrg Trns Newvar Off D* Offset to the New correlation D* variable name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition var. D* @ADA D QDBQTOO00 49 52U 0 D* Qdb Qdbftrg Trns Oldtbl Off D* Offset to the Old transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No Old transition table. D* @ADA D QDBQTNO00 53 56U 0 D* Qdb Qdbftrg Trns Newtbl Off D* Offset to the New transition D* table name. D* This offset is relative to D* the beginning of the names D* variable D* Qdb_qdbftrg_Trns_Names. D* 0 => No New transition table. D* @ADA D QDBQTOD 57 57 D* Qdb Qdbftrg Trns Oldvar Del D* Old correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTND 58 58 D* Qdb Qdbftrg Trns Newvar Del D* New correlation variable name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTOD00 59 59 D* Qdb Qdbftrg Trns Oldtbl Del D* Old transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTND00 60 60 D* Qdb Qdbftrg Trns Newtbl Del D* New transition table name D* is delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQTNL01 61 64U 0 D* Qdb Qdbftrg Trns Names Len D* Total length of the transition D* names in the structure D* Qdb_Qdbftrg_Trns_Names. @ADA D QDBQR28 65 112 D* Qdb Qdbftrg Reserved28 D* Reserved. @ADA D*QDBQTN 113 113 D* Qdb Qdbftrg Trns Names D* D* Old/new transition @ADA D* variable/table names reside D* here. See offsets for D* substringing the names D* (varying length). @ADA D* @ADA D******************************************************************* D* D*SQL TRIGGER STMT AREA D* D*NOTE: This is the complete CREATE TRIGGER statement and expanded D* to include library information. D* D*NOTE: All offsets are relative to the beginning of the CREATE D* TRIGGER string. D* D*DESIGN NOTE: The expanded string for the CREATE TRIGGER will be D* library qualified for both SQL names and system names. D* That is, for those object names not library qualified, D* one will be added before the object name. All names D* (short, long, delimited, non-delimited) will be left as D* the user specified them. D* D* The design point will be to store the image of what the D* user defined but with all names library qualified. D* D* For column names, correlation variables will be used D* for each column to qualify the names. D* D* For example: D* D* Given Table T1 in LIB1 with columns COL1 and COL2 D* Given Table T2 in LIB2 with columns COL3 and COL4 D* SQL will generate correlation variables X and Y D* D* If the user codes the following: D* D* CREATE TRIGGER ... SELECT * FROM T1, T2 WHEN COL1 = 10 D* D* The expanded string will be in the form: D* D* CREATE TRIGGER ... D* SELECT X.COL1, X.COL2, Y.COL3, Y.COL4 D* FROM LIB1.T1 X, LIB2.T2 Y D* WHEN X.COL1 = 10 D* D* The correlation variables X and Y are used to qualify D* the column names with the library and file. The tables D* in the expanded string are qualified with the library D* name. D* D******************************************************************* DQDBQSA DS D* Qdb Qdbftrg Stmt Area D* SQL Trigger statement area. D* @ADA D QDBQR29 1 20 D* Qdb Qdbftrg Reserved29 D* Reserved. @ADA D QDBQSTL 21 24U 0 D* Qdb Qdbftrg Stmt Tot Len D* Total length of the SQL D* Trigger statement area - D* substructure D* Qdb_Qdbftrg_Stmt_Area. @ADA D QDBQSOO 25 28U 0 D* Qdb Qdbftrg Stmt Onfile Off D* Offset to the user specified D* file/table name in the D* CREATE TRIGGER STMT. D* This is the ON table-name D* that specifies the table D* the trigger is being added D* to. See the prologue of this D* structure for the layout of D* the data. @ADA D* D QDBQSOL 29 32U 0 D* Qdb Qdbftrg Stmt Onfile Len D* Length of the qualified D* library.file name of the D* ON file/table name. This is D* not the MAX length but the D* actual lenght of the name. D* This name also takes into D* accout the period seperator. D* @ADA D QDBQSOD 33 33 D* Qdb Qdbftrg Stmt Onfile Del D* The ON table/file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQSOD00 34 34 D* Qdb Qdbftrg Stmt Onlib Del D* The ON table-file name is D* delimited. D* X'00' => Name not delimited. D* X'01' => Name is delimited. D* @ADA D QDBQSOL00 35 35 D* Qdb Qdbftrg Stmt Onfile Long D* The ON table-file name is D* a long name. D* X'00' => Name not long name. D* X'01' => Name is a long name. D* @ADA D QDBQSO 36 36 D* Qdb Qdbftrg Stmt Obfuscated D* Specifies if the CREATE D* TRIGGER statement is D* obfuscated. D* X'00' = Trigger is not D* obfuscated. D* X'01' = Trigger is obfuscated. D* @AWA D QDBQSCTL 37 40U 0 D* Qdb Qdbftrg Stmt Crt Trg Len D* Length of the SQL CREATE D* TRIGGER string in variable D* Qdb_Qdbftrg_stmt_crt_trg @ADA D QDBQSWL 41 44U 0 D* Qdb Qdbftrg Stmt When Len D* Length of the WHEN clause D* for the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSWO 45 48U 0 D* Qdb Qdbftrg Stmt When Off D* Offset to the WHEN clause D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D* This offset is relative to D* the beginning of variable D* WDBFTRG_STMT_CRT_TRG D QDBQSBL 49 52U 0 D* Qdb Qdbftrg Stmt Body Len D* Length of the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSBO 53 56U 0 D* Qdb Qdbftrg Stmt Body Off D* Offset to the BODY portion D* of the SQL CREATE TRIGGER D* string in variable D* Qdb_qdbftrg_stmt_crt_trg D* This offset is relative to D* the beginning of variable D* Qdb_qdbftrg_stmt_crt_trg @ADA D QDBQSR31 57 112 D* Qdb Qdbftrg Stmt Reserved31 D* Reserved. @ADA D*QDBQSCT 113 113 D* Qdb Qdbftrg Stmt Crt Trg D* D* SQL CREATE TRIGGER string D* (varying length). @ADA D******************************************************************* D* D*SQL TRIGGER LONG COMMENT AREA D* D*NOTE: The Trigger Long comment can only be added via the D* COMMENT ON SQL statement. D* D******************************************************************* DQDBQLA DS D* Qdb Qdbftrg Long Area D* SQL Trigger Long Comment area. D* @ADA D QDBQR32 1 20 D* Qdb Qdbftrg Reserved32 D* Reserved. @ADA D QDBQLTL 21 24U 0 D* Qdb Qdbftrg Long Tot Len D* Total length of the SQL D* Trigger long comment area D* substructure D* Qdb_qdbftrg_long_area @ADA D QDBQLL 25 28U 0 D* Qdb Qdbftrg Long Len D* Length of the Trigger Long D* comment area which is located D* in variable D* Qdb_qdbftrg_long_comment @ADA D QDBQLC 29 30U 0 D* Qdb Qdbftrg Long Ccsid D* Text CCSID. @ADA D QDBQR33 31 64 D* Qdb Qdbftrg Reserved33 D* Reserved. @ADA D*QDBQLC00 65 65 D* Qdb Qdbftrg Long Comment D* D* Trigger long comment (varying D* length). @ADA D******************************************************************** D* Record Structure for QDBRTVFD FILD0500 format D* Row and Column Access Control(RCAC) D******************************************************************** D* ----------------------------------------------- D* | | D* | RCAC SPACE HEADER | D* | fixed length | D* | | D* | Total # of RCAC entries | D* | | D* +---| Offset to first RCAC entry | D* | | | D* | | # of Permission entries | D* | | # of Mask entries | D* | | | D* +-->|---------------------------------------------| D* | RCAC Entry # 1 | D* |---------------------------------------------| D* | RCAC Entry # 2 | D* |---------------------------------------------| D* | . | D* | . | D* | . | D* |---------------------------------------------| D* | RCAC Entry # n | D* ----------------------------------------------- D******************************************************************* DQDBQH03 DS D* RCAC Header Structure @0HA D QDBQBRTN00 1 4U 0 D* Qdb Qdbfrcac Bytes Returned D* Bytes Returned @0HA D QDBQBA03 5 8U 0 D* Qdb Qdbfrcac Bytes Avail D* Bytes Available @0HA D QDBQCT 9 21 D* Qdb Qdbfrcac Chg Ts D* Timestamp when last changed. D* @0HA D QDBQFS 22 22 D* Qdb Qdbfrcac Fp State D* File permission state. D* 'A' = Permissions are active. D* 'I' = Permissions are inactive D* @0HA D QDBQFS00 23 23 D* Qdb Qdbfrcac Fm State D* File mask state. D* 'A' = Masks are active. D* 'I' = Masks are inactive. D* @0HA D QDBQNBRP 24 25U 0 D* Qdb Qdbfrcac Num Perm D* Number of permissions. @0HA D QDBQNBRM 26 27U 0 D* Qdb Qdbfrcac Num Mask D* Number of masks. @0HA D QDBQOEN100 28 29U 0 D* Qdb Qdbfrcac Off Ent Num1 D* Offset to first entry. @0HA D QDBQR83 30 112 D* Qdb Qdbfrcac Reserved83 D* Reserved. @0HA D******************************************************************** D*This section can be located using offset Qdb_qdbfrcac_off_ent_#1 D******************************************************************** DQDBQDH00 DS D* RCAC definition header D* @0HA D QDBQDL03 1 4U 0 D* Qdb Qdbfrcac Def Len D* Length of the RCAC D* definition entry. D* This includes all structures. D* @0HA D QDBQDHL 5 8U 0 D* Qdb Qdbfrcac Def Head Len D* Length of the RCAC D* definition header - D* Qdb_qdbfrcac_def_head. @0HA D QDBQDCT00 9 21 D* Qdb Qdbfrcac Def Chg Ts D* Timestamp of the last time the D* permission or mask was D* altered. @0HA D QDBQDT04 22 22 D* Qdb Qdbfrcac Def Type D* Type of access control. @0HA D* 'P' = Permission. D* 'M' = Mask. D QDBQDS01 23 23 D* Qdb Qdbfrcac Def State D* Permission or mask state. @0HA D* 'E' = Enabled. D* 'D' = Disabled. D QDBQDC 24 33 D* Qdb Qdbfrcac Def Creator D* User profile that created the D* permission, or mask. @0HA D QDBQDR15 34 48 D* Qdb Qdbfrcac Def Reserved15 D* Reserved. @0HA D QDBQDC00 49 176 D* Qdb Qdbfrcac Def Cor D* Correlation name of the file. D* @0HA D QDBQDCL 177 178U 0 D* Qdb Qdbfrcac Def Cor Len D* Length of correlation name. D* 0 = No correlation name. @0HA D QDBQDIA 179 179 D* Qdb Qdbfrcac Def Imp Add D* Permission implicitly add.@0HA D* 'Y' = Yes. D* 'N' = No. D QDBQDR13 180 192 D* Qdb Qdbfrcac Def Reserved13 D* Reserved. @0HA D QDBQDORN 193 196U 0 D* Qdb Qdbfrcac Def Off Rcac Na D* Offset to the permission or D* mask name. @0HA D QDBQDOCC 197 200U 0 D* Qdb Qdbfrcac Def Off Crutx C D* Offset to the structure D* containing the list of D* columns referenced in the D* rule text. @0HA D QDBQDODO00 201 204U 0 D* Qdb Qdbfrcac Def Off Dep Obj D* Offset to the structure D* containing the list of D* dependent objects. @0HA D QDBQDOA 205 208U 0 D* Qdb Qdbfrcac Def Off Ace D* Offset to the structure D* containing the access control D* expression. @0HA D QDBQDOL01 209 212U 0 D* Qdb Qdbfrcac Def Off Long D* Offset to the structure D* containing the long D* comment area. The long D* comment can only be added D* via the COMMENT ON statement. D* 0 => No Long Comment. D* @0HA D QDBQDOL02 213 216U 0 D* Qdb Qdbfrcac Def Off Label D* Offset to the structure D* containing the label. D* @0HA D QDBQDR40 217 256 D* Qdb Qdbfrcac Def Reserved40 D* Reserved @0HA D******************************************************************** D*The following structure maps the RCAC name area. D******************************************************************** DQDBQNA00 DS D* Qdb Qdbfrcac Name Area D QDBQNR28 1 28 D* Qdb Qdbfrcac Name Reserved28 D* Reserved. @0HA D QDBQNATL00 29 30U 0 D* Qdb Qdbfrcac Name Area Tot L D* Total length of the RCAC D* name area. @0HA D QDBQNL00 31 32U 0 D* Qdb Qdbfrcac Name Len D* Length of the RCAC D* name. @0HA D QDBQN01 33 160 D* Qdb Qdbfrcac Name D* Permission or mask name. @0HA D******************************************************************** D*The following structure maps the Row and Column Access Control D*Columns in Rule Text. D* D*List of Columns referenced in the rule test of the access control D*expression(ACE). D* D* D*The columns in this list may be in this file or another file. D* D*NOTE: This is not the actual list but a set of offsets into the D* access control expression that will position one to a D* column name. D* D* D******************************************************************** D*The following structure maps the rule text column array entry. D******************************************************************** DQDBQCRA DS D* Qdb Qdbfrcac Col Rutx Array D QDBQCRCO 1 4U 0 D* Qdb Qdbfrcac Col Rutx Col Of D* Column Name offset into D* the ACE. @0HA D QDBQCRFO 5 8U 0 D* Qdb Qdbfrcac Col Rutx File O D* Offset to the column's file D* name. @0HA D QDBQCRL 9 10U 0 D* Qdb Qdbfrcac Col Rutx Len D* Length of the column name in D* the ACE. @0HA D QDBQCRFL 11 12U 0 D* Qdb Qdbfrcac Col Rutx File L D* Length of the column's file D* name in the ACE. @0HA D QDBQCRLO 13 16U 0 D* Qdb Qdbfrcac Col Rutx Lib Of D* Offset to the column's library D* name. @0HA D QDBQCRLL 17 18U 0 D* Qdb Qdbfrcac Col Rutx Lib Le D* Length of the column's library D* name in the ACE. @0HA D QDBQCRTF 19 19 D* Qdb Qdbfrcac Col Rutx This F D* Indicates if the column name D* is in this FILE. That is, D* the column name is in the D* same file as the ACE. D* X'00' => Column not in THIS D* FILE. D* X'01' => Column in THIS FILE. D* @0HA D QDBQCR1E 20 20 D* Qdb Qdbfrcac Col Rutx 1st En D* Indicates if the column name D* is the first in the list of D* entries. NOTE: there may more D* than one column entry with D* the same name for the same D* file and library. D* X'00' => Column is 2nd or D* greater occurance D* in the list. D* X'01' => Column is the first D* in the list. D* @0HA D QDBQCRR 21 64 D* Qdb Qdbfrcac Col Rutx Reserv D* Reserved area-future use. @0HA D******************************************************************** D*The following structure maps the RCAC columns structure. D******************************************************************** DQDBQCA03 DS D* Qdb Qdbfrcac Crutx Area D QDBQCTL 1 4U 0 D* Qdb Qdbfrcac Crutx Tot Len D* Total length of the list of D* reference columns D* substructure. @0HA D QDBQCNC 5 6U 0 D* Qdb Qdbfrcac Crutx Num Cols D* Number of columns in the list. D* 0 = No columns in the list. D* @0HA D QDBQCR26 7 32 D* Qdb Qdbfrcac Crutx Reserved2 D* Reserved. @0HA D*QDBQCRA00 64 D* Qdb Qdbfrcac Col Rutx Array D QDBQCRCO00 33 36U 0 D* Qdb Qdbfrcac Col Rutx Col Of D QDBQCRFO00 37 40U 0 D* Qdb Qdbfrcac Col Rutx File O D QDBQCRL00 41 42U 0 D* Qdb Qdbfrcac Col Rutx Len D QDBQCRFL00 43 44U 0 D* Qdb Qdbfrcac Col Rutx File L D QDBQCRLO00 45 48U 0 D* Qdb Qdbfrcac Col Rutx Lib Of D QDBQCRLL00 49 50U 0 D* Qdb Qdbfrcac Col Rutx Lib Le D QDBQCRTF00 51 51 D* Qdb Qdbfrcac Col Rutx This F D QDBQCR1E00 52 52 D* Qdb Qdbfrcac Col Rutx 1st En D QDBQCRR00 53 96 D* Qdb Qdbfrcac Col Rutx Reserv D* Array used to access the list D* of referenced columns. D* @0HA D******************************************************************* D* D*List of Dependent Objects for the access control expression D*(ACE). D* D*NOTE: This is not the actual list but a set of offsets into the D* ACE that will position one to a dependent object. D* D*NOTE: All offsets in this list are relative to the beginning of D* the ACE. D* D*NOTE: The list of dependent objects will identify all instances D* of an object in the list. That is, there may be multiple D* entries for the same object name. The first entry flag D* can be used to differentiate between the first occurrence D* of an object in the list and subsequent entries. D* D******************************************************************* D******************************************************************* D*The following structure maps the dependent objects array entry D******************************************************************* DQDBQDA01 DS D* Qdb Qdbfrcac Depo Array D QDBQDO03 1 4U 0 D* Qdb Qdbfrcac Depo Off D* Offset to the dependent D* object - relative to the D* beginning of the ACE. @0HA D QDBQDT05 5 6 D* Qdb Qdbfrcac Depo Type D* Type of dependent object. D* TB = Table D* VW = View D* UF = UDF D* UT = UDT D* CO = Schema. D* MQ = MQT. D* GV = Global variable. @0HA D QDBQDL04 7 8U 0 D* Qdb Qdbfrcac Depo Len D* Length of the dependent D* object's name. @0HA D QDBQDLO01 9 12U 0 D* Qdb Qdbfrcac Depo Lib Off D* Offset to the qualifying D* library name of the dependent D* object. D* Offset relative from start of D* ACE. @0HA D QDBQDLL03 13 14U 0 D* Qdb Qdbfrcac Depo Lib Len D* Length of the qualifying D* library name of the dependent D* object. @0HA D QDBQD1E01 15 15 D* Qdb Qdbfrcac Depo 1st Entry D* Indicates if the object name D* is the first in the list of D* entries. Criteria is based on D* object name, library name and D* object type. D* NOTE: there may more one D* dependent object entry with D* the same object/library name. D* X'00' => Object is 2nd or D* greater occurance D* in the list. D* X'01' => Object is the first D* in the list. @0HA D QDBQDR49 16 64 D* Qdb Qdbfrcac Depo Reserved49 D* Reserved. @0HA D******************************************************************** D*The following structure maps the dependent objects area D******************************************************************** DQDBQDA02 DS D* Qdb Qdbfrcac Depo Area D QDBQDTL00 1 4U 0 D* Qdb Qdbfrcac Depo Tot Len D* Total length of the list of D* dependent objects D* substructure D* Qdb_qdbfrcac_depo_area. @0HA D QDBQDNO00 5 8U 0 D* Qdb Qdbfrcac Depo Num Off D* Number of dependent object D* offsets in the following D* array. @0HA D QDBQDR24 9 32 D* Qdb Qdbfrcac Depo Reserved24 D* Reserved. @0HA D*QDBQDA03 64 D* Qdb Qdbfrcac Depo Array D QDBQDO04 33 36U 0 D* Qdb Qdbfrcac Depo Off D QDBQDT06 37 38 D* Qdb Qdbfrcac Depo Type D QDBQDL05 39 40U 0 D* Qdb Qdbfrcac Depo Len D QDBQDLO02 41 44U 0 D* Qdb Qdbfrcac Depo Lib Off D QDBQDLL04 45 46U 0 D* Qdb Qdbfrcac Depo Lib Len D QDBQD1E02 47 47 D* Qdb Qdbfrcac Depo 1st Entry D QDBQDR4900 48 96 D* Qdb Qdbfrcac Depo Reserved49 D* Array used to access the list D* of dependent objects offsets. D* @0HA D* @0HA D******************************************************************* D* D*Access Control Expression (ACE) AREA D* D* D*NOTE: All offsets are relative to the beginning of the ACE. D* D* D******************************************************************* DQDBQAA DS D* ACE area. @0HA D QDBQATL 1 4U 0 D* Qdb Qdbfrcac Ace Tot Len D* Total length of the ACE. @0HA D QDBQAR28 5 32 D* Qdb Qdbfrcac Ace Reserved28 D* Reserved. @0HA D QDBQAC 33 42 D* Qdb Qdbfrcac Ace Col D* System column name if this D* is a mask. @0HA D QDBQACLL 43 44U 0 D* Qdb Qdbfrcac Ace Col Long Le D* Length of the long column D* name if this is a mask. @0HA D QDBQACR1 45 48 D* Qdb Qdbfrcac Ace Col Reserve D* Reserved. @0HA D QDBQACL 49 176 D* Qdb Qdbfrcac Ace Col Long D* Long column name if this is D* a mask. @0HA D QDBQAL 177 180U 0 D* Qdb Qdbfrcac Ace Len D* Length of the access control D* expression. @0HA D QDBQAC00 181 182U 0 D* Qdb Qdbfrcac Ace Ccsid D* CCSID of the ACE text. @0HA D QDBQACR2 183 192 D* Qdb Qdbfrcac Ace Col Reserve D* Reserved. @0HA D QDBQA00 193 193 D* Qdb Qdbfrcac Ace D*QDBQA00 194 194 D* Qdb Qdbfrcac Ace D* start of ACE, (varying length). @0HA D******************************************************************* D* D*RCAC LONG COMMENT AREA D* D*NOTE: The RCAC Long comment can only be added via the D* COMMENT ON SQL statement. D* D******************************************************************* DQDBQLA00 DS D* RCAC Long Comment area. D* @0HA D QDBQLTL00 1 4U 0 D* Qdb Qdbfrcac Long Tot Len D* Total length of the RCAC D* long comment area. @0HA D QDBQLL00 5 8U 0 D* Qdb Qdbfrcac Long Len D* Length of the RCAC Long D* comment area. @0HA D QDBQLC01 9 10U 0 D* Qdb Qdbfrcac Long Ccsid D* Text CCSID. @0HA D QDBQLR22 11 32 D* Qdb Qdbfrcac Long Reserved22 D* Reserved. @0HA D QDBQLC02 33 33 D* Qdb Qdbfrcac Long Comment D*QDBQLC02 34 34 D* Qdb Qdbfrcac Long Comment D* start (varying length) D******************************************************************* D* D*RCAC LABEL AREA D* D*NOTE: The RCAC Label can only be added via the D* LABEL ON SQL statement. D* D******************************************************************* DQDBQLA01 DS D* RCAC Label area. D* @0HA D QDBQLTL01 1 4U 0 D* Qdb Qdbfrcac Label Tot Len D* Total length of the RCAC D* label area. @0HA D QDBQLL01 5 8U 0 D* Qdb Qdbfrcac Label Len D* Length of the RCAC Label D* area. @0HA D QDBQLC03 9 10U 0 D* Qdb Qdbfrcac Label Ccsid D* Label CCSID. @0HA D QDBQLR2200 11 32 D* Qdb Qdbfrcac Label Reserved2 D* Reserved. @0HA D QDBQLC04 33 33 D* Qdb Qdbfrcac Label Comment D*QDBQLC04 34 34 D* Qdb Qdbfrcac Label Comment D* start (varying length) D******************************************************************* D* D*SQL Materialized Query Table Dependency Entry. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section repeats in the dependency array for the number D*of depended-on files (Qdbfmqtd_num_deps) defined in structure D*Qdb_Qdbfmqtd_Head. The first dependency entry follows the D*dependency header Qdb_Qdbfmqtd_Head. Use length Qdbfmqtd_len D*to get to the next dependency entry. D******************************************************************* DQDBFMQTD DS D* SQL Materialized Query Table D* Dependency Entry. D QDBR117 1 16 D* Reserved. D QDBFL00 17 20U 0 D* Length, in bytes, of this D* dependency entry. Use this D* length to get to the next D* entry. D QDBFFIL 21 30 D* Name of depended-on file. D QDBFL01 31 40 D* Name of depended-on file's D* library. D QDBR116 41 96 D* Reserved. D******************************************************************* D* D*SQL Materialized Query Table Dependency Header. D* D*This section contains information about the files that D*are referenced in the select-statement of a SQL materialized D*query table. D* D******************************************************************* D*This section can be located with the offset Qdbfmqtd_o, which D*is located in the SQL Area, Qdb_Qdbfv. This structure exists D*only if the file is a SQL materialized query table. D******************************************************************* DQDBQH00 DS D* SQL Materialized Query Table D* Dependency Header. D QDBFLS 1 4U 0 D* Qdbfmqt len sum D* Total length, in bytes, of D* the dependency area. This D* includes both the dependency D* header and the dependency D* array. D QDBFNBRD 5 8U 0 D* Qdbfmqt num deps D* Number of file entries in the D* dependency array. D QDBRSV1601 9 64 D* Reserved. D*QDBQA 65 65 D* D* Dependency array. D******************************************************************* D* D*SQL Partitioned Table Header Area. D* D*This section contains information about the files that D*are SQL Partitioned Tables. D* D* D******************************************************************* D*This section can be located with the offset Qdbfoff_sqpt D*This structure exists only if the file is a SQL Partitioned D*Table. D******************************************************************* DQDBQH01 DS D* SQL Partitoned Table D* Header. D QDBFLS00 1 4U 0 D* Qdbfsqpt Len Sum D* Total length, in bytes, of D* the partitioned table area. D* This includes all structures D* that follow. D QDBFSR4 5 8U 0 D* Reserved. D QDBFRH 9 9 D* 'R' = Range Partitioning. D* 'H' = Hash Partitioning. D QDBFL02 10 10 D* 'Y' = Field has long name. D* 'N' = No long name. D QDBFR230 11 240 D* Reserved. D QDBFNBRP 241 244U 0 D* Qdbfsqpt Num Parts D* Number of file partitions. D* This is the number of D* Qdb_Qdbfsqpt_Part structures D* that follow. D QDBFPO 245 248U 0 D* Qdbfsqpt Part Offset D* The offset to the first D* partition. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFHO 249 252U 0 D* Qdbfsqpt Hk Offset D* The offset to the partition D* key structure if hash D* partitioning is specified. D* This offset is relative to D* the beginning of variable D* Qdb_Qdbfsqpt_Head. D QDBFSR400 253 256U 0 D* Reserved. D QDBFHR4 257 260U 0 D* Reserved. D QDBFFR4 261 264U 0 D* Reserved. D QDBFR88 265 352 D* Reserved. D*QDBQHHA 353 353 D* Qdb Qdbfsqpt head hash array D* D* Header Hash key array. D*QDBQPA00 354 354 D* D* Partition array. D******************************************************************* D* D*SQL Partition Area. D* D*This section contains information about the partitions D*of a Partitioned Table. D* D******************************************************************* D*This section repeats for the number of partitons. D*The next partition can be addressed by the total length of the D*partition. The total length of the partition includes all D*sub-structures that can be included. D* D******************************************************************* DQDBQP00 DS D* SQL Partitioned Table D* Partition Structure. D QDBFPL 1 4U 0 D* Qdbfsqpt Part Len D* Length, in bytes of this D* partition and all sub-structs. D* Use this length to get to the D* next partition. D QDBFPDSN 5 8U 0 D* The partition data D* space number. D QDBFPNBR 9 12U 0 D* The partition number. D QDBFPL00 13 16U 0 D* Qdbfsqpt Pname Len D* Length of the partition name. D QDBFP 17 144 D* Name of the partition. D QDBFMR80 145 224 D* Reserved. D QDBFNBRK 225 228U 0 D* Qdbfsqpt Num Keys D* Number of range keys. D* If the partitioning is range, D* this is the number of range D* key structures that will D* follow. If hash partitioning D* was being done, this value is D* 0. D QDBFRO 229 232U 0 D* Qdbfsqpt Range Offset D* Offset to the first range D* key structure. If hash D* partitioning was being done, D* this value will be 0. D QDBFRSV8 233 240 D* Reserved. D*QDBQRA00 241 241 D* D* Range array. D******************************************************************* D* D*SQL Range Key Area. D* D*This section contains information about the partitions D*range key(s). D* D******************************************************************* D*This section repeats for the number of range keys. D*The next range key structure can be addressed by the total length D*of the range key information. D* D******************************************************************* DQDBQR DS D* SQL Partitioned Table D* Range Key Structure. D QDBFRL 1 4U 0 D* Qdbfsqpt Range Len D* Length, in bytes of this D* structure and all sub-structs. D* Use this length to get to the D* next range key structure. D QDBFR12 5 16 D* Reserved. D QDBFRK 17 26 D* Range key name. D* ******************************* D QDBFRRSV 27 28U 0 D* Qdbfsqpt Range Reserved D* Element. D* ******************************* D QDBFR01 29 29 D* Range minimum value: D* Start value minimum: D* 'Y' = Yes. D* 'N' = No. D QDBFR02 30 30 D* Range maximum value: D* End value maximum: D* 'Y' = Yes. D* 'N' = No. D QDBFR03 31 31 D* Range start value inclusive: D* Start inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR04 32 32 D* Range end value inclusive: D* End inclusive to value: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR15 33 47 D* Reserved. D QDBFR05 48 48 D* Range null option: D* 'Y' = Yes, include value. D* 'N' = No, do not include. D QDBFR06 49 52U 0 D* Length in bytes of the D* starting range value string. D QDBFR07 53 56U 0 D* Length in bytes of the D* ending range value string. D QDBFRO00 57 60U 0 D* Qdbfsqpt Rstart Offset D* Offset to the D* starting range value string. D QDBFRO01 61 64U 0 D* Qdbfsqpt Rend Offset D* Offset to the D* ending range value string. D QDBFR14 65 78 D* Reserved. D QDBFR08 79 80U 0 D* Qdbfsqpt Rccsid D* Coded Character Set D* Identifier, CCSID, For D* the range start-end D* values string. D*QDBQRSA 81 81 D* D* Start value string. D*QDBQREA 82 82 D* D* End value string. D******************************************************************* D* D*SQL Head Hash Key Area. D* D*This section contains information about the partitions D*hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQHH DS D* Qdb Qdbfsqpt Head Hash D* SQL Partitioned Table D* Header Hash Key Structure. D QDBFHHL 1 4U 0 D* Qdbfsqpt Head Hash Len D* Total length of the header D* and all entries. D QDBFHNK 5 8I 0 D* Qdbfsqpt Head Num Keys D* Total number of keys, D* or entries that follow. D QDBHR56 9 64 D* Reserved. D*QDBQHA 65 65 D* D* Hash Partition Key Array. D******************************************************************* D* D*SQL Hash Key Area. D* D*This section contains the hash key information about the D*partitions hash key(s). D* D******************************************************************* D*The following structure provides hash key field information for D*each key that will be hashed. D*This structure can appear multiple times depending on the number D*of key fields used for hashing. D* D******************************************************************* DQDBQH02 DS D* Qdb Qdbfsqpt Hash D* SQL Partitioned Table D* Hash Key Structure. D QDBFHK 1 10 D* Hash key name. D QDBFHR22 11 32 D* Reserved. D******************************************************************* D* D*SQL Field Format Information D* D*This section contains the format information about each D*partition key field. The information is the same that is stored D*in the format for the file. D* D******************************************************************* DQDBQF00 DS D* Qdb Qdbfsqpt Fldinfo D* SQL Partitioned Field Format D* Information Structure. D QDBFFR400 1 4U 0 D* Reserved. D QDBFFN 5 14 D* Field name. D QDBFFNBR 15 16U 0 D* Field number. D QDBFFT 17 18I 0 D* Field type. D QDBFFB 19 20I 0 D* Field buffer offset. D QDBFFF 21 22U 0 D* Field length, bytes. D QDBFFF00 23 24U 0 D* Field digits. D QDBFFF01 25 26I 0 D* Field precision. D QDBFFK 27 27 D* Field KBS. D QDBFFV 28 28 D* Field varlen, Y/N. D QDBFFN00 29 29 D* Field null, Y/N. D QDBFFR 30 30 D* Field rowid, Y/N. D QDBFFI 31 31 D* Field ident, Y/N. D QDBTF816 32 32 D* Field UTF8/16 Y/N. D QDBDTFMT02 33 33 D* Field date format. D QDBDTSEP02 34 34 D* Field seperator. D QDBFFC 35 36U 0 D* Field Ccsid. D QDBFFL 37 38U 0 D* Long field length. D QDBFFL00 39 68 D* Long name. D QDBFFR76 69 144 D* Reserved. D*#ifndef __ILEC400__ } @RKR //ENDSRC //ENDBCHJOB