Consultor Eletrônico



Kbase P7512: 4GL. How can to get de RECID or ROWID of a record used in a
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   12/03/2003
Status: Unverified

GOAL:

4GL. How can to get de RECID or ROWID of a record used in a Query Dynamic?

FACT(s) (Environment):

Progress 9.1X

FIX:

DEFINE VARIABLE qry1 AS HANDLE.
DEFINE VARIABLE wherev AS CHARACTER INITIAL "WHERE custnum < 10".
DEFINE VARIABLE sortv AS CHARACTER INITIAL "BY salesrep".
DEFINE VARIABLE bval AS LOGICAL.
DEFINE VARIABLE i AS INTEGER.
DEFINE VARIABLE bh AS WIDGET-HANDLE EXTENT 4.

CREATE QUERY qry1.
REPEAT:
  UPDATE wherev FORMAT "x(70)"
  LABEL "Enter WHERE and BY information." SKIP
  sortv FORMAT "x(70)" NO-LABEL.
  qry1:SET-BUFFERS(BUFFER customer:HANDLE, BUFFER order:HANDLE).
  bval = qry1:QUERY-PREPARE("PRESELECT EACH customer " + wherev +
  ", EACH order OF customer " + sortv).

REPEAT i = 1 TO qry1:NUM-BUFFERS:
 bh[i] = qry1:GET-BUFFER-HANDLE(i).
 DISPLAY bh[i]:NAME . /* display the buffer names */
END.

IF (bval = FALSE) THEN NEXT.

 qry1:QUERY-OPEN.

 REPEAT WITH FRAME fr1 ROW 8:
   qry1:GET-NEXT.
   IF (qry1:QUERY-OFF-END) THEN LEAVE.
     DISPLAY cust.custnum SKIP cust.name SKIP cust.salesrep SKIP
           cust.state SKIP order.ordernum SKIP
           STRING(RECID(CUSTOMER)) LABEL "RECID" SKIP
           STRING(ROWID(CUSTOMER)) FORMAT "X(25)" LABEL "rowid" WITH SIDE-LABELS.
   END.
   qry1:QUERY-CLOSE.
END.
DELETE OBJECT qry1.