Try OpenEdge Now
skip to main content
ABL Reference
ABL Syntax Reference : TO-ROWID function
 

TO-ROWID function

Converts a string representation of a ROWID to a valid ROWID value.

Syntax

TO-ROWID ( rowid-string )
rowid-string
A string representation of a ROWID. Since ROWID values are a variable sequence of hexadecimal digits, rowid-string must be in the form "0xhex-digits", where hex-digits is any string of characters from 0 through 9 and A through F.

Example

The following procedure (r-torwid.p) selects Customer Balance and credit information and displays it in a browse. You can select any number of rows to store and display more information on the selected Customers.
r-torwid.p
DEFINE VARIABLE hcustb AS HANDLE  NO-UNDO.
DEFINE VARIABLE irow   AS INTEGER NO-UNDO.

DEFINE QUERY custq FOR Customer.
DEFINE BUFFER cust2 FOR Customer.

DEFINE TEMP-TABLE rowtab FIELD rowchar AS CHARACTER
  INDEX rowi IS UNIQUE PRIMARY rowchar ASCENDING.

DEFINE BROWSE custb QUERY custq
  DISPLAY Customer.CustNum Customer.Name Customer.Balance
    Customer.CreditLimit WITH 10 DOWN MULTIPLE.

DEFINE BUTTON bstore   LABEL "Store Selections".
DEFINE BUTTON bdisplay LABEL "Display Call Selections".
DEFINE BUTTON bclear   LABEL "Clear Storage".

DEFINE FRAME brs-frame custb SKIP bstore bdisplay bclear.
DEFINE FRAME dsp-frame cust2.CustNum cust2.Name cust2.Phone
  WITH 5 DOWN SCROLL 1.

ON CHOOSE OF bstore DO:
  DO irow = 1 TO custb:NUM-SELECTED-ROWS:
    IF custb:FETCH-SELECTED-ROW(irow) AND
      NOT CAN-FIND(rowtab WHERE STRING(ROWID(Customer)) = rowchar) THEN DO:
      CREATE rowtab NO-ERROR.
      ASSIGN rowchar = STRING(ROWID(Customer)) NO-ERROR.
    END.
  END.
END.

ON CHOOSE OF bdisplay DO:
  CLEAR FRAME dsp-frame ALL.
  FOR EACH rowtab WITH FRAME dsp-frame:
    FIND cust2 WHERE ROWID(cust2) = TO-ROWID(rowchar).
    DISPLAY cust2.CustNum cust2.Name cust2.Phone.
    DOWN WITH FRAME dsp-frame.
  END.
END.

ON CHOOSE OF bclear DO:
  IF custb:DESELECT-ROWS() THEN
  FOR EACH rowtab:
    DELETE rowtab.
  END.
  FRAME dsp-frame:VISIBLE = FALSE.
END.

OPEN QUERY custq PRESELECT EACH Customer.
ENABLE ALL WITH FRAME brs-frame.

WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.
Thus, when you choose the bstore button, r-torwid.p stores the ROWID string values of all selected Customer records in a temp-table. When you choose the bdisplay button, it displays the selected Customer Phone information in a DOWN frame by converting each stored ROWID string to a ROWID value and finding the corresponding Customer record. (The example also allows you to add selections and restart by deleting the existing selections.)

Note

Although TO-ROWID converts a properly formatted string to a ROWID value, there is no guarantee that this value corresponds to an existing record in your database.

See also

DATE function, DECIMAL function, INTEGER function, ROWID function, STRING function