Fórum IndexfieldNames do Table nao funciona #283417

31/05/2005

0

Ola amigos,

Primeiramente uso tabela PARADOX e DELPHI 5

Tem como eu indexar um table sem ter que criar um index na propriedades IndexName ou IndexFieldName do Table ou sem usar uma chave primaria no DataBase Desktop?

Tentei fazer dessa maneira para uma consulta de nome, mais da erro e nao quero criar um index no Table e nem criar uma chave primaria do DataBase Desktop, e sim so na hora de fazer a busca do nome.

Fiz assim no events de um Edit mais nao funcionou

procedure TFaltseg2.Edit1Change(Sender: TObject);
begin
fcadseg.table1.indexfieldNames:= ´nome´; // da erro nesse index para organizar por nome
fcadseg.TABLE1.FindNearest([EDIT1.TEXT]);
end;

Agradeço pela Atençao!
Adriano.


Adriano_servitec

Adriano_servitec

Responder

Posts

31/05/2005

Fernando

nao tem como fazer um index sem o indice,

mas para fazer a pesquisa vc podera usar o locate que funciona tambem, mas se vc for usar em uma tabela muito grande ele vai demorar muito pq o comando locate faz um while na sua tabela


no caso do locate vc nao vai precisar de um indice

Query1.Locate(´campo onde ira porcurar´,´Texto a buscar´,[loPartialKey,loCaseInsensitive]);

ou mesmo no exemplo que vc citou


Responder

Gostei + 0

31/05/2005

Adriano_servitec

Obrigado amigo Fernando pela dica, ja conheço o comando Locate

Mais o Locate so funciona com query e no meu caso preciso usar o table tambem.

Bom vou ter mesmo que criar um indice no DataBase Desktop

Obrigado pela dica.
Valeu.


Responder

Gostei + 0

31/05/2005

Marco Salles

Mais o Locate so funciona com query e no meu caso preciso usar o table tambem


O Locate funciona com o componente Table Tb

Qaundo se Usa o Locate Numa Tabela que tem Um Indice o Locate utiliza este Indice de modo automatico , caso a tabela não tenha indice o Locate realiza uma pesquisa senquencial e Portanro mais lenta...

Amigo Adriano_Servitec , nun consegui abrir o projeto, devido a este erro:

[URL=http://www.imageshack.us][img:18719f1693]http://img212.echo.cx/img212/2951/imagemclassedesconhecida3vr.jpg[/img:18719f1693][/URL]

:?: :?: Que Classe e esta amigo.. Onde esta o Aquivo dcu destra Classe :?: :?: :?:


Responder

Gostei + 0

31/05/2005

Adriano_servitec

Ola meu amigo Marco, essa classe deve ser referente a um componente que acompanha meu projeto, SunisoftUI. Que esta na dentro pasta licitacao

c:\licitacao\suipackPro\source

o arquivo eh suipackD5

Instalei esse componente no Delphi para ficar mais bonito o form.

Ah sobre o comando Locate, se for usar ele num table preciso criar um indice no databasedesktop por exemplo na tabela Declara.DB na parte aonde esta o nome do declarante tenho que fazer assim: nome A 50 *, para criar um indice nao eh?

O ruim disso depois eh instalar em outra maquina, da um trabalho por causa desses arquivos que cria com o indice, ainda nao sei uma maneira de fazer melhor o paradox eh muito trabalhoso nessa parte, pelo menos pra mim.

Valeu pela ajuda amigao.
Um abraço!


Responder

Gostei + 0

31/05/2005

Marco Salles

Ah sobre o comando Locate, se for usar ele num table preciso criar um indice no


Não e necessário , mas é aconselhavel.. Pelas razões ja espostas anteriormente:

Qaundo se Usa o Locate Numa Tabela que tem Um Indice o Locate utiliza este Indice de modo automatico , caso a tabela não tenha indice o Locate realiza uma pesquisa senquencial e Portanro mais lenta..


tenho que fazer assim: nome A 50 *, para criar um indice nao eh?


Eu não manjo muito bem de paradox :cry: , mas acho que assim voce esta criando Uma Chave primária.... Acredito para o seu propósito serve também..

:idea: Mas se quiser criar outros Indices ppode seguir estes passos:


1) Abrir a Tabela 
2) Coloca-la No Modo de reestruturação
3)Ai voce do lado direito na parte de cima voce tem escrito assim:
Table properties --->> Validity checks
4) click ai
5)escolha a opção secundary Index
6)Aperte o Botão Define que agora estara habilitado
7)abrira a guia define secondary Index
8)Escolha o campo , que voce quer criar um indice
9)e na guia Index Options , escolha o Tipo ,.. se ele sera Unique etc..
10)Click Ok
11)dar um nome para ele , que deve ser bem sugestivo ..Tipo assim o Nome do Campo com a Letra I Na Frente
12)...Praticamente concluido
13)Salve
14)etc...


:arrow: Acho tb que :
[b:9cbbd37fe0]Para usar este Indice , quando se fizer uma consulta voce deve usar antes da Pesquisa a Sinta-se [/b:9cbbd37fe0]
Table1.indexFieldName:=´NomeDoCampoQueIndice´


Como eu disse , eu não uso muito o Paradox, mas qualquer duvida post ai , que a gente cria uma tabela exemplo e verifica todos esses pasos

Valeu...


Responder

Gostei + 0

01/06/2005

Adriano_servitec

Obrigado meu amigo Marco Salles pela dica.

Para criar esse indice que vc montou tenho que usar mesmo uma chave primaria o famoso * se nao nao cria o indice.

Vou coloca-lo para fazer pesquisa pelo;

fcadseg.table1.indexfieldNames:= ´nome´; // vai localizar pelo nome pq o NOME esta indexado pela chave primaria e criado o indice no secoundary index e salvo como ixdnome no database desktop e ligado o indice na table do form.


Ja esta montado e trabalhando 100¬, foi feito o indice acima.

Obrigado amigo Marco Salles pela ajuda
Um abraço!


Responder

Gostei + 0

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

Aceitar