Nothing comming out - QUERY-PREPARE

djeanveau

New Member
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 = tth:DEFAULT-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().
 
Top