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.