1) Fastet way to count the records in database table.
>> you can use these simple code,
def var count# as ineger .
count# = 0 .
for each table no-lock:
count# = count# + 1.
end.
disp count# .
2)Without putting the exclusive lock can we modify the record?
you must lock a record before you want to modify it.
3) Advantage and disadvantage of a frame, multiple frames?
frames are useful in different application, so ....,I cann't express because of my bad english.
4) What is META information?
I want to know also.
5) How can we check what transactions are locked and on what tables?
commonly ,a record or table is locked , when you read a record which is locked, system will show a waring box and tell you what table and who is locking.
6) Where is PRESELECT statement useful? Could you please explain this with an example.
copy from progress manual .
To process a multi-table collection gathered by the PRESELECT option, use the last table named in the collection when you want to read the selected records. PROGRESS then automatically retrieves records from the other tables.
/* r-presl1.p */
REPEAT PRESELECT EACH order, customer OF order, EACH order-line OF order
BY order.order-date BY order.cust-num BY order-line.item-num:
FIND NEXT order-line.
DISPLAY order.order-date order.cust-num customer.name
order-line.item-num.
END.
The PRESELECT option in this example selects the logically joined record that consists of order, order-line, and customer, and makes all of these records available in the REPEAT block. Usually you perform more complex processing within the PRESELECT block.
If, within a PRESELECT block, you find a record using the ROWID of that record, PROGRESS disregards any other selection criteria you applied to the PRESELECT. For example, suppose the ROWID of order number 4 is stored in the variable ord-rowid.
DO PRESELECT EACH order WHERE order-num > 5:
FIND FIRST order WHERE ROWID(order) = ord-rowid.
DISPLAY order.
END.
In this example, PROGRESS finds and displays order number 4 even though the selection criteria specifies that the order number must be greater than 5. The ROWID always overrides other selection criteria. Furthermore, if you use FIND...WHERE ROWID(record) =..., the index cursor is not reset in the preselected list. That is, even if record ROWID(record) is in the preselected list, FIND NEXT does not find the record that follows it in the preselected list.