GARANTIR DESCONTO

Fórum Utilizar indices no delphi #176971

23/08/2003

0

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

Responder

Posts

23/08/2003

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;



Responder

Gostei + 0

23/08/2003

Doug_chagas

[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.


Responder

Gostei + 0

23/08/2003

Aroldo Zanela

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.


Responder

Gostei + 0

23/08/2003

Bacalhau

É 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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar