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