PreviousNextIndex

CREATE TEMP-TABLE statement

Creates a TEMP-TABLE dynamically at run time. The TEMP-TABLE that is created is empty and must be defined using ADD/CREATE methods.

Syntax

CREATE TEMP-TABLE handle 
 [ IN WIDGET-POOL widget-pool-name ] 

handle
IN WIDGET-POOL widget-pool-name
Example

The following example creates a TEMP-TABLE like the Order table and populates it from the Order table. In addition, the corresponding SalesRep name is added from the SalesRep table, as shown:

r-cretmpt.p 
DEFINE VARIABLE tth          AS HANDLE NO-UNDO. 
DEFINE VARIABLE bh           AS HANDLE NO-UNDO. 
DEFINE VARIABLE qh           AS HANDLE NO-UNDO. 
DEFINE VARIABLE buf-ord-hndl AS HANDLE NO-UNDO. 
DEFINE VARIABLE buf-rep-hndl AS HANDLE NO-UNDO. 
DEFINE VARIABLE fld1         AS HANDLE NO-UNDO. 
DEFINE VARIABLE fld2         AS HANDLE NO-UNDO. 
/* Get database table handles */ 
buf-ord-hndl = BUFFER Order:HANDLE. 
buf-rep-hndl = BUFFER SalesRep:HANDLE. 
/* Create an empty, undefined TEMP-TABLE */ 
CREATE TEMP-TABLE tth. 
/* Give it Order table’s fields & indexes */ 
tth:CREATE-LIKE(buf-ord-hndl). 
/* Add field like SalesRep.RepName */ 
tth:ADD-LIKE-FIELD("RepName","SalesRep.RepName"). 
/* No more fields will be added */ 
tth:TEMP-TABLE-PREPARE("ordx"). 
/* Get the buffer handle for the temp-table */ 
bh = tth:DEFAULT-BUFFER-HANDLE. 
/* Populate the temp-table from order */ 
FOR EACH Order NO-LOCK: 
  bh:BUFFER-CREATE. 
  bh:BUFFER-COPY(buf-ord-hndl). 
  /* Add the corresponding salesrep name */ 
  FIND SalesRep NO-LOCK WHERE SalesRep.SalesRep = Order.SalesRep NO-ERROR. 
  IF AVAILABLE SalesRep THEN 
    bh:BUFFER-COPY(buf-rep-hndl,?,"RepName,repname"). 
END.  
/* Run a query to access the TEMP-TABLE */ 
CREATE QUERY qh. 
qh:SET-BUFFERS(bh). 
qh:QUERY-PREPARE("FOR EACH ordx WHERE ordx.OrderNum < 50 BY ordx.RepName"). 
qh:QUERY-OPEN(). 
fld1 = bh:BUFFER-FIELD("OrderNum"). 
fld2 = bh:BUFFER-FIELD("RepName"). 
/* Display the order number and the salesrep name */ 
REPEAT: 
  qh:GET-NEXT(). 
  IF qh:QUERY-OFF-END THEN LEAVE. 
  DISPLAY fld1:BUFFER-VALUE() FORMAT "X(10)". 
  DISPLAY fld2:BUFFER-VALUE() FORMAT "X(20)". 
END. 
qh:QUERY-CLOSE(). 
bh:BUFFER-RELEASE(). 
DELETE OBJECT tth. 
DELETE OBJECT qh. 

Notes
See also

DEFINE TEMP-TABLE statement, TEMP-TABLE-PREPARE( ) method


OpenEdge Release 10.2B
Copyright © 2009 Progress Software Corporation
PreviousNextIndex