FindNearest no IBTable

Delphi

05/07/2004

Alguém sabe se existe um comando similar ao FindNearest do componente Table? Estou usando Delphi 5 e Interbase. Utilizo IBTable.

Valeu a foça!!

JR.


Jrjoliv2003

Jrjoliv2003

Curtidas 0

Respostas

Reginaldo174

Reginaldo174

05/07/2004

para cria pesquisas utilize o componente IBquery com ele vc pode fazer

IBQuery1.locate(´nomedocampo´,edit1.text,[lopartialkey, locaseinsensitive]);

Espero ter ajudado.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Fiz isso:

data.IBTRep.Locate(´nomealuno´,edit1.text,[lopartialkey, locaseinsensitive]);

Só que quando vou compilar da erro com a mensagem de não identificado em relação essas duas palavras :lopartialkey, locaseinsensitive.

Sabe o que devo fazer?


Valeu a força!!!

JR.


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

Adicione a Unit [color=red:e25cbed491]DB[/color:e25cbed491] na Cláusula Uses de seu Formulário.


:(


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Que Unit DB é essa? Estou utlizando Delphi 5.

Valeu a força!!

JR. :roll:


GOSTEI 0
Otto

Otto

05/07/2004

acrescente a palavra [color=blue:34650f7fba]DB[/color:34650f7fba] la em cima na seção [color=blue:34650f7fba]uses[/color:34650f7fba]


:wink:


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Valeu!!!

Funcionou!!!

JR.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Beleza!!! A primeira parte funciona com o LOCATE.

Só que ele localiza apenas apontando e não filtrando.
E aponta o primeiro que encontra. Os dados estão em uma DbGrid.

Resumindo o que quero fazer em uma outra situação:
Tenho um combobox com alguns nomes (representam os campos da tabela).
Escolho o campo. No edit ao lado começo a digitar letras e a tabela
vai sendo filtrada conforme a digitação.

Se puder me ajudar...

Valeu a força!!!

JR.


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

Evento OnKeyPressDoEdit
Begin
   Query.Close;
   Query.Sql.Clear;
   Query.Sql.Add(´Select * From Tabela´);
   Query.Sql.Add(´Where ´ + ComboBox.Text + ´ = ´ + ´Like ¬´ + Edit.Text + ´¬´);
   Query.Open;
End;



GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

OK!!

Uma Dúvida!!

Essa Query eu coloco no DataModule, especifico o Banco de dados e deixo ela vazia, sem comandos SQL?

Valeu a força!!!

JR.


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

Aí amigo, é com você. Particularmente, trago em minhas consultas apenas um registro. Mas, no seu caso, alimentea com o seguinte SQL:

Select * From Tabela

Quando tudo tiver funcionando perfeitamente, tome as providências cabíveis. :roll:


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Beleza!!

Vou fazer à tarde e hoje a noite. Respondo assim q tiver um resultado!!

Muito Obrigado pela força.

JR.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

O primeiro teste é com esse código. Na hora da execução, qunado digito uma letra ele dá erro por causa do (¬). Não sei o que está errado. Se puder ajudar..


Código é um pocuo grande:

data.ibqrep.Close;
data.ibqrep.Sql.Clear;
data.ibqrep.Sql.Add(´select REP_NUMERO, MAT_NOME, REP_DT,´); data.ibqrep.Sql.Add(´REP_HINI, REP_HFIM, MOD_NOME, REP_TIPO, REP_SALNUMERO,´);
data.ibqrep.Sql.Add(´Fun1.FUN_NOME, REP_OBS, Fun2.FUN_NOME, REP_DTCAD, REP_VALOR´);
data.ibqrep.Sql.Add(´from REPOSICAO, Matricula, Modulos, Funcionarios Fun1,´);
data.ibqrep.Sql.Add(´Funcionarios Fun2 where (MAT_MATRI= REP_MATALUNO) and´);
data.ibqrep.Sql.Add(´(MOD_NUMERO=REP_MODULO) and (Fun1.FUN_MATRI = REP_PROFESSOR)´);
data.ibqrep.Sql.Add(´and (REP_FUNMATRI = Fun2.FUN_MATRI)´);
data.ibqrep.Sql.Add(´and ´ + ComboBox1.Text + ´ LIKE ´ + Edit1.Text + ´¬´);
data.ibqrep.Open;

Valeu a força!!

JR.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Mudei de :
data.ibqrep.Sql.Add(´and ´ + ComboBox1.Text + ´ LIKE ´ + Edit1.Text
+ ´¬´);

Para:
data.ibqrep.Sql.Add(´and ´ + ComboBox1.Text + ´ LIKE ´´¬´ + Edit1.Text
+ ´¬´´´);

(Repare nas aspas)

Beleza!! Começou a funcionar.
Só que a filtragem não está coerente!!
Por exemplo:
Tenho os nomes:

Amarildo
Cecília
Camila

Se digito c (minúsculo) não a acontece nada;
Se digito ca (mínúsculo) ele filtra aparecendo somente Cecília e não Camila;
Se dígito ama (mínúsculo) ele filtra aparecendo o nome Camila e não Amarildo;
O nome Amarildo aparece se digitar 3 letras e a primeria em minúscula;


Se digito alguma letra maiúscula não parece nada;
Gostaria que ao digitar a primeira ele já filtrasse.

O que devo fazer?

Valeu a força!!!

JR.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Ninguém tem uma idéia?

Tá funcionando só que a filtragm não está adequada!!

Valeu!!

JR. :?


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

Mude para:

data.ibqrep.Sql.Add(´and Upper(´ + ComboBox1.Text +´) LIKE ´´¬´ + UpperCase(Edit1.Text)
+ ´¬´´´); 


:wink: Upper e UpperCase // Convertem para maiúsculo


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Nesse caso eu teria que gravar no banco de dados em maiúsculas, certo?

Como posso fazer isso?

Uso Interbase..

Valeu Força!!!

JR.


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

[quote:832525d6e5=´Meu amigo´]Nesse caso eu teria que gravar no banco de dados em maiúsculas, certo? [/quote:832525d6e5]

Não. Perceba que o commando UPPER já seleciona(select) os dados transformando-os para maiúsculos. Já o commando UpperCase converte o conteúdo do Edit para Maiúsculo. Por isso, do jeito que tiver no banco(Camila,CaMiLA,CAMIla,camiLA) os dados serão selecionados.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Beleza!!! Vou testar e te envio resposta!!!

Valeu!!

JR.


GOSTEI 0
Jrjoliv2003

Jrjoliv2003

05/07/2004

Resolvidoooooooooooo:

A última linha ficou assim:

data.ibqrep.Sql.Add(´and Upper(´+ ComboBox1.Text + ´) LIKE ´ + ´´´´ + UpperCase(Edit1.Text) + ´¬´+ ´´´´);

Assim ele já converte para maiúsculas tanto os dados do BD quanto os digitados no edit.

Também está fazendo a filtragem conforme digitação.

Valeu!!!

JR.


GOSTEI 0
POSTAR