Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Set Collate
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Miscellaneous
Thread ID:
00607638
Message ID:
00607649
Views:
36
Oi Rodolfo,

O que está acontecendo é que o índice foi criado em uma seqüência de Collate e está sendo usado em outra. Desta forma, as informações do índice tonam-se sem sentido, já que a pesquisa está sendo feita de uma forma imcompatível com a forma que os índices estão armazenados. Veja o teste abaixo (só copie para a Command Window e execute). Veja que ao mudar a seqüência de Collate o Rushmore pára de funcionar...

(Espero que te ajude de alguma forma)
CLEAR

SYS(3054,1)

CREATE TABLE Teste (ID char(10))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))
INSERT INTO Teste (ID) VALUES (SYS(2015))

SET COLLATE TO "MACHINE"
INDEX ON ID TAG Id

? "Consulta 1"
* Usa Rushmore
SELECT ID from Teste WHERE ID = "5" INTO CURSOR Teste1 NOFILTER 

SET COLLATE TO "GENERAL"
? "Consulta 2"
* Não usa Rushmore
SELECT ID from Teste WHERE ID = "5" INTO CURSOR Teste2 NOFILTER 

* Vamos recriar o índice, agora com COLLATE GENERAL e executar a mesma query...
SELECT Teste
DELETE TAG ALL
SET COLLATE TO "GENERAL"
INDEX ON ID TAG Id
? "Consulta 3"
* Usa Rushmore
SELECT ID from Teste WHERE ID = "5" INTO CURSOR Teste3 NOFILTER 
-----
Fabio Vazquez
http://www.fabiovazquez.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform