ON CHOOSE OF b_df IN FRAME DEFAULT-FRAME /* DF */
DO:
DEFINE VARIABLE cDir AS CHARACTER NO-UNDO.
DEFINE VARIABLE l AS LOGICAL NO-UNDO.
DEFINE VARIABLE cFile AS CHARACTER EXTENT 3 NO-UNDO.
DEFINE VARIABLE cDFToLoad AS CHARACTER NO-UNDO.
DEFINE VARIABLE lUsers AS LOGICAL NO-UNDO.
DEFINE VARIABLE lSeq AS LOGICAL NO-UNDO.
DEFINE VARIABLE lCollation AS LOGICAL NO-UNDO.
DEFINE VARIABLE lSeqDef AS LOGICAL NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
SYSTEM-DIALOG GET-DIR cDir
TITLE "Select a directory where df file exists"
UPDATE l .
IF NOT l THEN RETURN NO-APPLY.
INPUT FROM OS-DIR(cDir).
REPEAT:
IMPORT cFile.
IF ENTRY(NUM-ENTRIES(cFile[1], "."), cFile[1], ".") = "df" THEN DO:
IF cFile[1] = "_tran.df" THEN DO:
lCollation = true.
NEXT.
END.
IF cFile[1] = "_seqdefs.df" THEN DO:
lSeqDef = true.
NEXT.
END.
cDFToLoad = cDFToLoad + "," + cFile[1].
END.
IF cFile[1] = "_USER.d" THEN lUsers = YES.
IF cFile[1] = "_SeqVal.d" THEN lSeq = YES.
END.
INPUT CLOSE.
cDFToLoad = TRIM(cDFToLoad, ",").
IF cDFToLoad = "" THEN DO:
MESSAGE "Selected directory does not contains structure file!!" SKIP
"Please validate and retry!"
VIEW-AS ALERT-BOX ERROR.
RETURN NO-APPLY.
END.
MESSAGE SUBST("Process will load the following to database &1", cDBName) SKIP
"" (IF lCollation THEN CHR(9) + "_tran.df" + CHR(10) ELSE "")
CHR(9) REPLACE(cDFToLoad, ",", CHR(10) + CHR(9)) SKIP
"" (IF lSeqDef THEN CHR(9) + "_seqdefs.df" + CHR(10) ELSE "")
"" (IF lUSers OR lSeq THEN "And The following data:" + CHR(10) ELSE "")
"" (IF lUsers THEN CHR(9) + "_User.d" + CHR(10) ELSE "")
"" (IF lSeq THEN CHR(9) + "_seqVal.d" + CHR(10) ELSE "") SKIP
"Are you sure you want to proceed?"
VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE l.
IF NOT l THEN RETURN NO-APPLY.
MESSAGE "attempting to Connect to: " SUBST("&1&2", cRoot, cDBName)
VIEW-AS ALERT-BOX INFO.
CONNECT VALUE(SUBST("&1&2", cRoot, cDBName)) -1 -ld VALUE(cDBName).
IF NOT CONNECTED (cDBName) THEN DO:
MESSAGE "Sorry, connection failed!" SKIP
ERROR-STATUS:GET-MESSAGE(1)
VIEW-AS ALERT-BOX ERROR.
RETURN NO-APPLY.
END.
CREATE ALIAS DICTDB FOR DATABASE VALUE(cDBName).
IF lCollation THEN DO:
Message "Loading Collation table" "_tran.df".
RUN prodict/load_df.p(SUBST("&1\&2", cDir, "_tran.df")).
DISCONNECT VALUE(cDBName).
OS-COMMAND VALUE(SUBST("&1\bin\proutil &2 -C idxbuild All",
cDlc,
cDBName)).
CONNECT VALUE(SUBST("&1&2", cRoot, cDBName)) -1 -ld VALUE(cDBName).
IF NOT CONNECTED (cDBName) THEN DO:
MESSAGE "Sorry, connection failed!" SKIP
ERROR-STATUS:GET-MESSAGE(1)
VIEW-AS ALERT-BOX ERROR.
RETURN NO-APPLY.
END.
END.
DO i = 1 TO NUM-ENTRIES (cDFToLoad):
Message "Loading df file" ENTRY(i,cDFToLoad).
RUN prodict/load_df.p(SUBST("&1\&2", cDir, ENTRY(i,cDFToLoad))).
END.
IF lSeqDef THEN DO:
Message "Loading sequence definition" "_seqdefs.df".
RUN prodict/load_df.p(SUBST("&1\&2", cDir, "_seqdefs.df")).
END.
IF lSeq THEN DO:
Message "Loading _seqVal.d from under" cDir.
RUN prodict/load_d.p("_seqVal.d", cDir).
Message "_seqVal.d loaded".
END.
IF lUSers THEN DO:
Message "Loading _User.d from under" cDir.
RUN prodict/load_d.p("_User.d", cDir).
Message "_User.d loaded".
END.
DISCONNECT VALUE(cDBName).
OS-COMMAND VALUE(SUBST("&1\bin\probkup &2 .\&2_AfterStructure.dbk ",
cDlc,
cDBName)).
END.