FOCUS/WebFOCUS 1990 - 2011 |
Frank | |
prod: WF 7.6.10 platform Windows, databases: msSQL2000, msSQL2005, RMS, Oracle, Sybase,IE7 test: WF 7.6.10 on the same platform and databases,IE7 |
-*================================================================================================================================================= -* MAXIMUM FIELD LENGTHS -*================================================================================================================================================= -IF &ACTION NE 'M' THEN GOTO NO_MAXLEN ; -MAXLEN -SET &ECHO=ON ; TABLE FILE SYSTABLE PRINT DBMS_CREATOR REALNAME IF NAME EQ '&LFILENAME' ON TABLE SAVE AS SAVETXS END -RUN -READ SAVETXS &DBMS_CREATOR.A8. &REALNAME.A64. -SET &DBMS_CREATOR = TRUNCATE(&DBMS_CREATOR) ; -SET &REALNAME = TRUNCATE(&REALNAME) ; TABLE FILE SYSCOLUM PRINT ALIAS LENGTH IF TBNAME EQ '&LFILENAME' IF NAME NE ' ' IF ACTUAL LIKE 'A%' ON TABLE SAVE AS SAVEIJK END -RUN -REPEAT LOOP2IJK FOR &CTR FROM 1 TO 4 ; -SET &FN = IF &CTR EQ 1 THEN 'MAX' ELSE IF &CTR EQ 2 THEN 'AVG' ELSE IF &CTR EQ 3 THEN 'COUNT' ELSE 'COUNT DISTINCT' ; SQL &ADAPTER PREPARE SQLOUT FOR -READ SAVEIJK &ALIAS.A66. &LENGTH.A4. -IF &IORETURN NE 0 THEN GOTO LOOP1IJK ; -SET &ALIAS = TRUNCATE(&ALIAS) ; -SET &ALIASLENGTH = &ALIAS || LJUST(&LENGTH.LENGTH,&LENGTH,&LENGTH); -SET &FUNCTION = IF &ADAPTER EQ 'SQLMSS' THEN 'LEN' ELSE 'LENGTH' ; -IF &CTR EQ 4 THEN GOTO YES_DIST1 ; SELECT &FN(&FUNCTION(&ALIAS)) AS &ALIASLENGTH -YES_DIST1 -IF &CTR NE 4 THEN GOTO NO_DIST1 ; SELECT COUNT( DISTINCT &ALIAS ) AS &ALIASLENGTH -NO_DIST1 -READ SAVEIJK &ALIAS.A66. &LENGTH.A4. -REPEAT LOOP1IJK WHILE &IORETURN EQ 0; -SET &ALIAS = TRUNCATE(&ALIAS) ; -SET &ALIASLENGTH = &ALIAS || LJUST(&LENGTH.LENGTH,&LENGTH,&LENGTH); -IF &CTR EQ 4 THEN GOTO YES_DIST2 ; , &FN(&FUNCTION(&ALIAS)) AS &ALIASLENGTH -YES_DIST2 -IF &CTR NE 4 THEN GOTO NO_DIST2 ; , COUNT( DISTINCT &ALIAS ) AS &ALIASLENGTH -NO_DIST2 -READ SAVEIJK &ALIAS.A66. &LENGTH.A4. -LOOP1IJK -CLOSE SAVEIJK -*FROM &DBMS_CREATOR|.&LFILENAME ; FROM &REALNAME ; END -RUN TABLE FILE SQLOUT HEADING " &FILENAME Fieldsize &FN " PRINT * END -RUN -LOOP2IJK -NO_MAXLEN