Consultor Eletrônico



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.