Kbase 15306: How to create a Progress database from an existing schema holder?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  3/10/2010 |
|
Status: Verified
GOAL:
How to create a Progress database from an existing schema holder?
GOAL:
How to create an OpenEdge database from an existing schema holder?
GOAL:
How to convert schema holder .df to Progress database .df?
GOAL:
How to convert to a Progress database .df from a schema holder .df created by DataServer?
FACT(s) (Environment):
Progress/OpenEdge Product Family
All Supported Operating Systems
DataServers
FIX:
This procedure reads a AS400, ORACLE, MSS, or ODBC definition (".df") file and creates a definition file for a Progress Database.
&SCOPED-DEFINE infile /* df file name */
&SCOPED-DEFINE outfile /* Progres df file name */
DEFINE VARIABLE pv_line AS CHARACTER NO-UNDO FORMAT "X(255)".
DEFINE VARIABLE pv_read AS INTEGER NO-UNDO.
DEFINE VARIABLE pv_wrote AS INTEGER NO-UNDO.
DEFINE STREAM ss_infile.
DEFINE STREAM ss_outfile.
DEFINE FRAME fr_outfile
pv_line AT ROW 1 COL 1 NO-LABEL
WITH WIDTH 260 STREAM-IO NO-BOX.
DEFINE FRAME fr_status
pv_read LABEL "Lines read" AT ROW 2 COL 20 COLON-ALIGNED
pv_wrote LABEL "Lines written" AT ROW 4 COL 20 COLON-ALIGNED
WITH SIZE 40 BY 6 SIDE-LABELS VIEW-AS DIALOG-BOX THREE-D TITLE "Processing ...".
INPUT STREAM ss_infile FROM {&infile}.
OUTPUT STREAM ss_outfile TO {&outfile}.
VIEW FRAME fr_status.
REPEAT WITH WIDTH 260:
IMPORT STREAM ss_infile UNFORMATTED pv_line.
ASSIGN pv_read = pv_read + 1
pv_read:SCREEN-VALUE IN FRAME fr_status = STRING(pv_read, pv_read:FORMAT).
IF INDEX(pv_line, "ADD DATABASE") > 0 THEN
ASSIGN pv_line = "UPDATE DATABASE ""?""".
ELSE
ASSIGN pv_line = REPLACE(pv_line, "TYPE AS400", "")
pv_line = REPLACE(pv_line, "TYPE ORACLE", "")
pv_line = REPLACE(pv_line, "TYPE MSS", "")
pv_line = REPLACE(pv_line, "TYPE ODBC", "").
IF SUBSTRING(pv_line,1,12) = " QUALIFIER"
OR SUBSTRING(pv_line,1,5) = " VAL"
OR SUBSTRING(pv_line,1,6) = " DSRV"
OR SUBSTRING(pv_line,1,8) = " DBNAME"
OR SUBSTRING(pv_line,1,8) = " LENGTH"
OR SUBSTRING(pv_line,1,8) = " SHADOW"
OR SUBSTRING(pv_line,1,8) = " DRIVER"
OR SUBSTRING(pv_line,1,9) = " FOREIGN"
OR SUBSTRING(pv_line,1,9) = " DB-MISC"
OR SUBSTRING(pv_line,1,9) = " DRIVER-"
OR SUBSTRING(pv_line,1,10) = " SEQ-MISC"
OR SUBSTRING(pv_line,1,11) = " FILE-MISC"
OR SUBSTRING(pv_line,1,11) = " INDEX-NUM"
OR SUBSTRING(pv_line,1,12) = " FIELD-MISC"
OR SUBSTRING(pv_line,1,13) = " HIDDEN-FLDS"
OR SUBSTRING(pv_line,1,13) = " QUOTED-NAME"
OR SUBSTRING(pv_line,1,13) = " RECID-INDEX"
OR SUBSTRING(pv_line,1,13) = " ESCAPE-CHAR"
OR SUBSTRING(pv_line,1,14) = " DB-LINK-NAME"
OR SUBSTRING(pv_line,1,14) = " DBMS-VERSION"
OR SUBSTRING(pv_line,1,15) = " CODEPAGE-NAME"
OR SUBSTRING(pv_line,1,16) = " FLD-NAMES-LIST"
OR SUBSTRING(pv_line,1,16) = " RECID-FLD-NAME"
OR SUBSTRING(pv_line,1,16) = " PROGRESS-RECID"
OR SUBSTRING(pv_line,1,16) = " INDEX-FREE-FLD"
OR SUBSTRING(pv_line,1,16) = " CASE-SENSITIVE"
OR SUBSTRING(pv_line,1,17) = " MISC-PROPERTIES"
OR SUBSTRING(pv_line,1,18) = " PROGRESS-VERSION"
THEN NEXT.
DISPLAY STREAM ss_outfile pv_line NO-LABEL WITH FRAME fr_outfile.
DOWN WITH FRAME fr_outfile.
ASSIGN pv_wrote = pv_wrote + 1
pv_wrote:SCREEN-VALUE IN FRAME fr_status = STRING(pv_wrote, pv_wrote:FORMAT).
END.
INPUT STREAM ss_infile CLOSE.
OUTPUT STREAM ss_outfile CLOSE.