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.