11 Haziran 2010 Cuma

Read File with Progress 4GL Example


DEF INPUT PARAM pfName AS CHAR NO-UNDO.
DEF INPUT PARAM pTable AS CHAR NO-UNDO.

DEF VAR ttHandle AS HANDLE.
DEF VAR bHandle AS HANDLE.
DEF VAR qHandle AS HANDLE.
DEF VAR fHandle AS HANDLE.
DEF VAR bTableHandle AS HANDLE NO-UNDO.

DEF VAR pBaslik AS CHAR NO-UNDO.
DEF VAR pSatir AS CHAR NO-UNDO.
DEF VAR pColName AS CHAR NO-UNDO.
DEF VAR pDbColName AS CHAR NO-UNDO.

DEF VAR i AS INT NO-UNDO.

CREATE TEMP-TABLE ttHandle.

INPUT FROM VALUE(pfName).

IMPORT UNFORMATTED pBaslik.

DO i=1 TO NUM-ENTRIES(pBaslik,";"):
    pColName = ENTRY(i, pBaslik,";").
    IF pColName EQ "" THEN NEXT.
    pDbColName = pTable + "." + pColName.
    ttHandle:ADD-LIKE-FIELD(pColName,pDbColName).
END.

ttHandle:TEMP-TABLE-PREPARE("tFile").

bHandle = ttHandle:DEFAULT-BUFFER-HANDLE.

REPEAT:

    IMPORT UNFORMATTED pSatir.
    bHandle:BUFFER-CREATE.

    DO i=1 TO NUM-ENTRIES(pBaslik,";"):
        pColName = ENTRY(i, pBaslik,";").
        IF pColName EQ "" THEN NEXT.
        fHandle = bHandle:BUFFER-FIELD(pColName).
        fHandle:BUFFER-VALUE = ENTRY(i,         pSatir,";").
    END.

END.

INPUT CLOSE.

CREATE QUERY qHandle.
qHandle:SET-BUFFERS(bHandle).
qHandle:QUERY-PREPARE("FOR EACH tFile").
qHandle:QUERY-OPEN().

CREATE BUFFER bTableHandle FOR TABLE pTable.

REPEAT TRANSACTION:
qHandle:GET-NEXT().
IF qHandle:QUERY-OFF-END THEN LEAVE.

bTableHandle:BUFFER-CREATE().
bTableHandle:BUFFER-COPY(bHandle).
bTableHandle:BUFFER-RELEASE().

END.

qHandle:QUERY-CLOSE().
bHandle:BUFFER-RELEASE().

DELETE OBJECT bTableHandle.
DELETE OBJECT ttHandle.
DELETE OBJECT qHandle.

Hiç yorum yok:

Yorum Gönder