General information
Category:
Databases,Tables, Views, Indexing and SQL syntax
You could use the FOR clause:
INDEX ON NAME TAG MYTAG FOR ACTIVE
>I have a table with fields including a date field, a character field and a logical field that stores the deleted status of the record - .T. = current, .F. = Deleted.
>id = N(10)
>Char = Name C(30)
>Date = Birth date D(8)
>Active = L(1)
>among other fields
>
>When changes are made to a record a new record is created with the changes, Active = .T. and the active = .f. for the old record. Thus we have an audit trail of changes.
>
>How do I create an index on the character field so as to SEEK only those that are active.
>
>I use Locate for name = "MYNAME" and ACTIVE = .T. but this is too slow. I need SEEK so how do I create an index for this??
>
>Set filter to ACTIVE = .T. is also too slow. There are > 250000 records (including the non active ones)
>
>I need to
>
>Set ORDER to TAG myindextag
>and
>SEEK "MYNAME" which will give me an active record.
>
>Bernard
Previous
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only