Dynamically taking the Dump and Load

pass table name to dump.p load.p as command line parameter by writing a small script.

Arshad
/shell file /
#!/bin/ksh
bpro -db <db> -p load.p -param "$table
,path"

/load.p/
def var tname as char.
def var tloc as char.
tname=entry(1,session:parameter).
tloc=entry(2,session:parameter).
message tname tloc.
run prodict/load_d.p ( input tname,input tloc).
output to "/tmp/completed" append.
message tname "Completed ======>" string(time,"hh:mm").
return.

similarly do a dump also.
 
You'll have to do the rest of your homework yourself ....


Code:
DEFINE STREAM sDump.
DEFINE VARIABLE hBuffer    AS HANDLE     NO-UNDO.
DEFINE VARIABLE hfield     AS HANDLE     NO-UNDO.
DEFINE VARIABLE hQuery     AS HANDLE     NO-UNDO.
RUN ipdump ("customer","c:\customerdump.txt").
PROCEDURE ipDump:
    DEFINE INPUT  PARAMETER picTable     AS CHARACTER  NO-UNDO.
    DEFINE INPUT  PARAMETER picDumpFile  AS CHARACTER  NO-UNDO.
    
    DEFINE VARIABLE iDumpCount AS INTEGER    NO-UNDO.
    OUTPUT STREAM sDump TO VALUE (picDumpFile).
    CREATE BUFFER hbuffer FOR TABLE pictable.
    CREATE QUERY hquery.
    hquery:SET-BUFFERS(hBuffer).
    hquery:QUERY-PREPARE("for each customer no-lock").
    hquery:QUERY-OPEN.
    hquery:GET-FIRST.
    REPEAT:
        idumpcount = idumpcount + 1.
        IF hquery:QUERY-OFF-END THEN LEAVE.
        IF iDumpCount > 100 THEN LEAVE.
        RUN ipDumpField.
        hquery:GET-NEXT.
    END.
    OUTPUT STREAM sDump CLOSE.
END PROCEDURE.
PROCEDURE ipDumpField:
    DEFINE VARIABLE iField     AS INTEGER    NO-UNDO.
    DEFINE VARIABLE iextent    AS INTEGER    NO-UNDO.
    DEFINE VARIABLE cquote     AS CHARACTER  NO-UNDO.
    
    _FIELD_LOOP:
    DO ifield = 1 TO hBuffer:NUM-FIELDS.
        ASSIGN hfield = hbuffer:BUFFER-FIELD (iField).
        IF hfield:DATA-TYPE = "character" THEN 
            cQuote = """".
        ELSE 
            cquote = "".
        IF hfield:EXTENT = 0 THEN 
            PUT STREAM sDump UNFORMATTED cquote hfield:BUFFER-VALUE cquote " ".
        ELSE DO iextent = 1 TO hfield:EXTENT:
            PUT STREAM sDump UNFORMATTED cquote hfield:BUFFER-VALUE (iextent) cquote " ".
        END.
    END.
    PUT STREAM sDump UNFORMATTED SKIP.
END PROCEDURE.
 
Back
Top