/*Dynamic Query*/
DEFINE VARIABLE lcWhere AS CHAR NO-UNDO.
DEFINE VARIABLE pcTableName AS CHARACTER NO-UNDO.
DEFINE VARIABLE lcListeFields AS CHARACTER NO-UNDO.
DEFINE VARIABLE hTableBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hFromField AS HANDLE NO-UNDO.
DEFINE VARIABLE li AS INTEGER NO-UNDO.
DEFINE STREAM ls.
pcTableName = "Customer".
lcWhere = " WHERE CustNum < 50".
lcListeFields = "CustNum,Name,City".
DEFINE VARIABLE qh8 AS WIDGET-HANDLE.
CREATE QUERY qh8.
CREATE BUFFER hTableBuffer FOR TABLE pcTableName.
qh8:ADD-BUFFER(hTableBuffer).
qh8:QUERY-PREPARE("FOR EACH " + pcTableName + " NO-LOCK " + lcWhere).
qh8:QUERY-OPEN().
OUTPUT STREAM ls TO "edition.txt".
REPEAT:
qh8:GET-NEXT.
IF qh8:QUERY-OFF-END THEN LEAVE.
DO li = 1 TO hTableBuffer:NUM-FIELDS:
hFromField = hTableBuffer:BUFFER-FIELD(li).
IF LOOKUP(hFromField:NAME, lcListeFields) > 0 THEN
PUT STREAM ls UNFORMATTED STRING(hFromField:BUFFER-VALUE) + " ".
END.
PUT STREAM ls SKIP.
END.
DELETE OBJECT qh8.
OUTPUT STREAM ls CLOSE.