Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
APPEND BLANK to cursor, CANDIDATE INDEX, index violation
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01312895
Message ID:
01312920
Views:
16
>>Keep in mind that deleted records are also taken into account by the index.
>>
>>>I'm getting some inconsistent errors that have left me confused about the situation.
>>>
>>>I have created a cursor and a candidate index for that cursor. The index uses two fields of the cursor. Here is the INDEX command that I am using.
>>>
>>>INDEX ON BINTOC(GroupID) + BINTOC(VisitID) TAG ixPrjSess CANDIDATE
>>>
>>>GroupID and VisitID are integer fields. The index using these two fields should be unique, thus my use of CANDIDATE.
>>>
>>>I use APPEND BLANK to add records to the cursor. After appending a blank record I fill in the fields with REPLACE commands.
>>>
>>>Some of the time I can add records with the APPEND BLANK command without any errors. Other times I get an error saying that the uniqueness of the index is violated.
>>>
>>>If a new index value is created when the APPEND BLANK is executed, I would expect that the index would be identical every time. Why do I not get a uniqueness violation every time?
>>>
>>>Thanks for your thoughts.
>>>
>>>Jim
>
>Sergey,
>
>Thank you for that suggestion. I am checking for deleted records before attempting to APPEND a new one. If the one that I am attempting to add has been there already and deleted, then I just RECALL it.
>
>Jim
Make it filtered index [FOR DELETED()]
If SET DELETED is ON that index still can be used in Rushmore.
Other way is:
SET DELETED OFF
SEEK BINTOC(0) + BINTOC(0) IN AliasHere
IF FOUND([AliasHere])
   IF DELETED([AliasHere])
      RECALL IN AliasHere
   ENDIF
ELSE
   APPEND BLANK IN AliasHere
ENDIF
SET DELETED ON
But I am with Naomi here. Just use INSERT INTO ....
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Previous
Reply
Map
View

Click here to load this message in the networking platform