Febri bin Sahi
New Member
Huy guys, I have been trying to write a dynamic temp table. source code as below. but when execute no output is generated. anyone can help a friend?
Code:
DEF TEMP-TABLE t-arrangement LIKE arrangement.
DEF VAR table-name AS CHAR INIT "arrangement".
DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hfield AS HANDLE NO-UNDO.
DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
RUN ipdump (table-name).
FOR EACH t-arrangement:
DISP t-arrangement.
END.
PROCEDURE ipDump:
DEFINE INPUT PARAMETER picTable AS CHARACTER NO-UNDO.
DEFINE VARIABLE iDumpCount AS INTEGER NO-UNDO.
DEFINE VARIABLE str-query AS CHAR.
str-query = "for each " + picTable + " no-lock".
CREATE BUFFER hbuffer FOR TABLE pictable.
CREATE QUERY hquery.
hquery:SET-BUFFERS(hBuffer).
hquery:QUERY-PREPARE(str-query).
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.
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.
END PROCEDURE.
Last edited: