Consultor Eletrônico



Kbase P17640: How to achieve a kind of dynamic export with a given record buffer handle?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   20/05/2011
Status: Unverified

GOAL:

How to achieve a level of dynamic export when using dynamic queries?

GOAL:

How to achieve a kind of dynamic export with a given record buffer handle?

FACT(s) (Environment):

Progress 9.1X

FIX:

Since there is not dynamic export function, following code can be used in order to dynamically export content of your table:

DEF VAR cFileName AS CHAR NO-UNDO INIT "customer".
DEF VAR ii AS INT NO-UNDO.
DEF STREAM ven.

DEF VAR qh AS WIDGET-HANDLE NO-UNDO.
DEF VAR bh AS WIDGET-HANDLE NO-UNDO.
DEF VAR fh AS WIDGET-HANDLE NO-UNDO.

CREATE QUERY qh.
CREATE BUFFER bh FOR TABLE cFileName.
qh:SET-BUFFERS(bh).
qh:QUERY-PREPARE("FOR EACH " + cFileName + " NO-LOCK").
qh:QUERY-OPEN().

OUTPUT STREAM ven TO d:\out.txt.
REPEAT:
qh:GET-NEXT().
IF qh:QUERY-OFF-END THEN LEAVE.

DO ii = 1 TO bh:NUM-FIELDS:
fh = bh:BUFFER-FIELD(ii).
IF ii > 1 THEN PUT STREAM ven UNFORMATTED " ".
IF fh:DATA-TYPE BEGINS "char"
THEN PUT STREAM ven UNFORMATTED '"' fh:BUFFER-VALUE '"'.
ELSE PUT STREAM ven UNFORMATTED fh:BUFFER-VALUE.
END.
PUT STREAM ven UNFORMATTED SKIP.

END.
OUTPUT STREAM ven CLOSE.

IF VALID-HANDLE(qh) THEN DO: qh:QUERY-CLOSE. DELETE OBJECT qh. END.
IF VALID-HANDLE(bh) THEN DELETE OBJECT bh.