Hello everyone,
is this OK...
qh:QUERY-PREPARE("FOR EACH xdump WHERE dcode = 'CFIA'").
in this...
DEF VAR tth AS HANDLE NO-UNDO.
DEF VAR bh AS HANDLE NO-UNDO.
DEF VAR qh AS HANDLE NO-UNDO.
DEF VAR bhdytt AS HANDLE NO-UNDO.
DEF VAR hRECID AS HANDLE NO-UNDO.
DEF VAR fld AS HANDLE EXTENT 300 NO-UNDO.
DEF VAR iNUMFLD AS INT NO-UNDO.
DEF VAR i AS INT NO-UNDO.
DEF VAR cROW AS CHAR NO-UNDO.
DEFINE STREAM srep.
OUTPUT STREAM srep TO "C:\TEST.CSV".
/* get database table handles */
bhdytt = BUFFER {1}:HANDLE.
/* create an empty temp-table */
CREATE TEMP-TABLE tth.
/* give it imported table field and index */
tth:CREATE-LIKE(bhdytt).
/* add field RECID */
tth:ADD-NEW-FIELD("fRECID","RECID").
/* no more fields will be added */
tth:TEMP-TABLE-PREPARE("xdump").
/* get the buffer handle for the temp-table */
bh = tthEFAULT-BUFFER-HANDLE.
/* populate requested temp-table */
FOR EACH {1}:
bh:BUFFER-CREATE.
bh:BUFFER-COPY(bhdytt).
ASSIGN hRECID = bh:BUFFER-FIELD("fRECID")
hRECID:BUFFER-VALUE = RECID({1}).
END.
/* run test query to access temp-tale */
CREATE QUERY qh.
qh:SET-BUFFERS(bh).
qh:QUERY-PREPARE("FOR EACH xdump WHERE dcode = 'CFIA'").
qh:QUERY-OPEN().
qh:GET-FIRST().
ASSIGN
iNUMFLD = bh:NUM-FIELDS.
DO i = 1 TO iNUMFLD:
fld = bh:BUFFER-FIELD(i).
END.
/* display test */
REPEAT:
qh:GET-NEXT().
IF qh:QUERY-OFF-END THEN LEAVE.
ASSIGN
cROW = "".
DO i = 1 TO iNUMFLD:
IF i <> iNUMFLD THEN DO:
ASSIGN cROW = cROW + fld:BUFFER-VALUE() + ','.
END.
ELSE DO:
ASSIGN cROW = cROW + fld:BUFFER-VALUE().
END.
END.
EXPORT STREAM srep cROW.
END.
qh:QUERY-CLOSE().
bh:BUFFER-RELEASE().
is this OK...
qh:QUERY-PREPARE("FOR EACH xdump WHERE dcode = 'CFIA'").
in this...
DEF VAR tth AS HANDLE NO-UNDO.
DEF VAR bh AS HANDLE NO-UNDO.
DEF VAR qh AS HANDLE NO-UNDO.
DEF VAR bhdytt AS HANDLE NO-UNDO.
DEF VAR hRECID AS HANDLE NO-UNDO.
DEF VAR fld AS HANDLE EXTENT 300 NO-UNDO.
DEF VAR iNUMFLD AS INT NO-UNDO.
DEF VAR i AS INT NO-UNDO.
DEF VAR cROW AS CHAR NO-UNDO.
DEFINE STREAM srep.
OUTPUT STREAM srep TO "C:\TEST.CSV".
/* get database table handles */
bhdytt = BUFFER {1}:HANDLE.
/* create an empty temp-table */
CREATE TEMP-TABLE tth.
/* give it imported table field and index */
tth:CREATE-LIKE(bhdytt).
/* add field RECID */
tth:ADD-NEW-FIELD("fRECID","RECID").
/* no more fields will be added */
tth:TEMP-TABLE-PREPARE("xdump").
/* get the buffer handle for the temp-table */
bh = tthEFAULT-BUFFER-HANDLE.
/* populate requested temp-table */
FOR EACH {1}:
bh:BUFFER-CREATE.
bh:BUFFER-COPY(bhdytt).
ASSIGN hRECID = bh:BUFFER-FIELD("fRECID")
hRECID:BUFFER-VALUE = RECID({1}).
END.
/* run test query to access temp-tale */
CREATE QUERY qh.
qh:SET-BUFFERS(bh).
qh:QUERY-PREPARE("FOR EACH xdump WHERE dcode = 'CFIA'").
qh:QUERY-OPEN().
qh:GET-FIRST().
ASSIGN
iNUMFLD = bh:NUM-FIELDS.
DO i = 1 TO iNUMFLD:
fld = bh:BUFFER-FIELD(i).
END.
/* display test */
REPEAT:
qh:GET-NEXT().
IF qh:QUERY-OFF-END THEN LEAVE.
ASSIGN
cROW = "".
DO i = 1 TO iNUMFLD:
IF i <> iNUMFLD THEN DO:
ASSIGN cROW = cROW + fld:BUFFER-VALUE() + ','.
END.
ELSE DO:
ASSIGN cROW = cROW + fld:BUFFER-VALUE().
END.
END.
EXPORT STREAM srep cROW.
END.
qh:QUERY-CLOSE().
bh:BUFFER-RELEASE().