Utilizar indices no delphi

Delphi

23/08/2003

Criei indices para uma tabela paradox via database desktop. Como faço para utilizalos no delphi?
Eles aparecem na propriedade Index Name da Table. Mas não sei como utilizalos para localizar um registro.
No clipper eu utilizava o comando dbseek, mas este não existe no Delphi.

Se alguém puder me ajudar.
Obrigado,

Douglas Chagas.


Doug_chagas

Doug_chagas

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

23/08/2003

Colega,

É praticamente a mesma coisa, mas ao invés de função, utilizamos o método findkey.

Exemplo em Clipper:

If TABELA -> (!dbSeek( nChave ))
  ... Faça algo
EndIf


Em Delphi com tabelas desktop (Paradox e xBase):

if not tbTabela.FindKey([ nChave ]) then
begin
  ... Faça algo
end;



GOSTEI 0
Doug_chagas

Doug_chagas

23/08/2003

[quote:78fc12bbb9=´Aroldo Zanela´]Colega,

É praticamente a mesma coisa, mas ao invés de função, utilizamos o método findkey.

Exemplo em Clipper:

If TABELA -> (!dbSeek( nChave ))
  ... Faça algo
EndIf


Em Delphi com tabelas desktop (Paradox e xBase):

if not tbTabela.FindKey([ nChave ]) then
begin
  ... Faça algo
end;
[/quote:78fc12bbb9]

Funcionou, mas no clipper ele localiza pedaços de strings como por exemplo nome. Se eu digitar no clipper somente as primeiras letras de um nome ele localiza o mais proximo. já esse findkey localiza só strings exatas.
Vc sabe como faço para localizar semelhante ao clipper?

Valew.
Douglas Chagas.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

23/08/2003

Colega,

Neste caso é só utilizar o método FindNearest, porém, este método não retorna valor e dependendo da situação, vc poderá combinar os dois métodos para obter o realtado desejado. Mais detalhes no help do Delphi.

Se ainda não conseguir, posta aqui o fragmento do código e detalhes do que necessida que a gente te ajuda.


GOSTEI 0
Bacalhau

Bacalhau

23/08/2003

É assim:

Supõe que tens uma tabela CLIENTES.DB com os seguintes campos:

Código -> é indice primário
Nome -> é um campo definido pelo indice CLINOME

Para aceder à tabela através do indice CLINOME, escreves o seguinte código:

table1.tablename := ´CLIENTES.DB´;
table1.indexname := ´CLINOME´;
table1.open;
table1.setkey;
table1.fieldbyname(´Nome´).asstring := <o que quero pesquisar>;
table1.gotonearest;

Para alterar o indice escreves:

table1.indexname := ´´; // passa para o primário que é o Código

Se houver mais indices simplesmente alteras com a linha table1.indexname := <nome que definiste>

Agora sê feliz!!! (eheheheh)
Bacalhau


GOSTEI 0
POSTAR