Fórum Utilizar indices no delphi #176971
23/08/2003
0
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
Curtir tópico
+ 0Posts
23/08/2003
Aroldo Zanela
É 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
23/08/2003
Doug_chagas
É 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;
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
23/08/2003
Aroldo Zanela
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
23/08/2003
Bacalhau
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
Clique aqui para fazer login e interagir na Comunidade :)