Question How to Dynamically Delete Table Records

rzr

Member
Is there a way to dynamically delete records of a table? In my below code what goes with the DELETE ?

Code:
DEFINE VARIABLE cTableName     AS CHARACTER NO-UNDO.
DEFINE VARIABLE iFieldCounter  AS INTEGER   NO-UNDO.
DEFINE VARIABLE iExtentCounter AS INTEGER   NO-UNDO.
DEFINE VARIABLE hFieldHandle   AS HANDLE    NO-UNDO.
DEFINE VARIABLE hQueryHandle   AS HANDLE    NO-UNDO.
DEFINE VARIABLE hBufferHandle  AS HANDLE    NO-UNDO.

RUN ExportAndDeleteTableData (INPUT 'Customer').

PROCEDURE ExportAndDeleteTableData:

    DEFINE INPUT PARAMETER cTableName AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cFileName         AS CHARACTER NO-UNDO.

    cFileName = cTableName + ".dat".
    OUTPUT TO VALUE(cFileName).

    /* Create dynamic query for the cTablename */
    CREATE BUFFER hBufferHandle FOR TABLE cTableName.
    CREATE QUERY hQueryHandle.
    hQueryHandle:SET-BUFFERS(hBufferHandle).
    hQueryHandle:QUERY-PREPARE("for each " + cTableName + " EXCLUSIVE-LOCK").
    hQueryHandle:QUERY-OPEN.

    /* Iterate through all the records of the current table */
    REPEAT:
        hQueryHandle:GET-NEXT().
        IF hQueryHandle:QUERY-OFF-END THEN LEAVE.

        DELETE ??????   <------   "What goes here" ???

    END. /* REPEAT */
    OUTPUT CLOSE.
    DELETE OBJECT hBufferHandle.
    DELETE OBJECT hQueryHandle.
END PROCEDURE.
 
Top