Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Rushmore work differently in VFP9?
Message
De
10/03/2005 08:55:32
 
 
À
10/03/2005 08:49:46
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9
Database:
Visual FoxPro
Divers
Thread ID:
00994380
Message ID:
00994390
Vues:
11
My real world reason for using it is I have a numeric autoint field that I want to treat as a string. The field is named acctnumber. The index is
INDEX ON ALLT(STR(acctnumber)) TAG acctnumber.

I'm treating is as a string so I perform partial matches with ANSI OFF.

1255 = 12

Do you have a suggestion on another way to accomplish this?

Brian


>Without going into detail, I advice you to NEVER, I repeat NEVER, use ALLTRIM() in an index expression, it's asking for problems! All index expressions MUST give a fixed length value!
>
>>Would some try this sample code in VFP8, then again in VFP9? On my machine the both queries run optimized in VFP8, but only the 2nd one in VFP9. I don't know what settings to check other than ANSI and EXACT. Could it be a problem with VFP9?
>>
>>SET ANSI OFF
>>SET EXACT ON
>>CLEAR
>>* Turn rushmore reporting on
>>SYS(3054,2)
>>* Create a test cursor
>>CREATE CURSOR test (field C(10))
>>INDEX on field TAG field
>>INDEX on ALLTRIM(field) TAG field_t
>>* Put some data in the cursor
>>FOR i = 1 TO 10000
>> INSERT INTO test VALUES (SYS(2015))
>>ENDFOR
>>* Determine the last value
>>cValue = LEFT(test.field,LEN(ALLTRIM(test.field))-1)
>>* Try the untrimmed index
>>?"This one works"
>>?"---------------------------------"
>>SELECT * FROM test WHERE field = cValue INTO CURSOR index
>>* Try the trimmed index
>>?
>>?"This one does not work"
>>?"---------------------------------"
>>SELECT * FROM test WHERE ALLTRIM(field) = cValue INTO CURSOR noindex
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform