Consultor Eletrônico



Kbase 20880: 4GL to Create an idxcompact Script from Metaschema
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   04/08/2004
Status: Unverified

GOAL:

4GL program to create a script to compact all the indexes of a database.

FACT(s) (Environment):

Progress 4GL

FIX:

The 4GL code:
DEFINE VARIABLE cDbname AS CHAR LABEL "Database Name:".
DEFINE VARIABLE cFrontend AS CHAR.
DEFINE VARIABLE cOutstring AS CHAR FORMAT "X(100)".
DEFINE VARIABLE cDelim AS CHAR FORMAT "X(1)".
DEFINE VARIABLE iCompPerc AS INTEGER LABEL "Index Compactation:".

SET cDbname iCompPerc.

IF OPSYS = "WIN32" THEN
DO:
cDelim = "~\".
OUTPUT TO idxcomp.bat.
cFrontend = "call proutil " + cDbname.
END.
ELSE
DO:
cDelim = "/".
OUTPUT TO idxcomp.sh.
cFrontend = "proutil " + cDbname.
END.

FOR EACH _file WHERE _file-num > 0 AND _file-num < 32768:
FOR EACH _index OF _file:
cOutstring = cFrontend + " -C idxcompact " + _file-name + "."
+ _index-name + " " + STRING(iCompPerc).
PUT UNFORMATTED cOutstring SKIP.
END.
END.

OUTPUT CLOSE.

The output file that is generated from the sports database on a NT
system looks like the following:

call proutil sp2k -C idxcompact Invoice.CustNum 99
call proutil sp2k -C idxcompact Invoice.InvoiceDate 99
call proutil sp2k -C idxcompact Invoice.InvoiceNum 99
call proutil sp2k -C idxcompact Invoice.OrderNum 99
call proutil sp2k -C idxcompact Customer.Comments 99
call proutil sp2k -C idxcompact Customer.CountryPost 99
call proutil sp2k -C idxcompact Customer.CustNum 99
call proutil sp2k -C idxcompact Customer.Name 99
call proutil sp2k -C idxcompact Customer.SalesRep 99
call proutil sp2k -C idxcompact Item.CatDescription 99
call proutil sp2k -C idxcompact Item.Category2ItemName 99
call proutil sp2k -C idxcompact Item.CategoryItemName 99

If this code is run on a UNIX system, set the execute permission on the command files. The execute permission are set on the command files with the following command:

chmod +x idxcomp.sh