James Bott wrote:Hua,
Here is a more complete New() method. You can use this as a starting point for each class (one class for each database). The file is opened (with automatic retrys) and then the primary key index is set. So with just this one line of code you open the database, open the indexes, and set the order.
oCustomers:= TCustomers():New()
Sample New() method:
- Code: Select all Expand view RUN
CLASS TCustomers from TDatabase
Method New()
ENDCLASS
Method New( lShared ) Class TCustomers
Default lShared:= .T.
::Super:New(,"customers",,lShared)
If ::Use()
::SetOrder("CUSTNO") // Primary key
::Gotop()
Endif
Return self
Note that at the start of your application you need to do this (assuming you are using CDX's):
- Code: Select all Expand view RUN
REQUEST DBFCDX
rddsetdefault( "DBFCDX" )
SET EXCLUSIVE OFF
SET(_SET_AUTOPEN, .T. )
This causes all the indexes to be automatically opened whenever you open a DBF.
Thanks James! It could serve as a template for new projects