Jump to content

Pesquisa DBGrid


CanonTG
 Share

Recommended Posts

Boas, eu tenho um edit onde coloco um numero de visita e faz bem a pesquisa depois ao apagar o que coloquei no Edit dá esta erro " Erro de correspondência entre tipos"e não actualiza a DBGrid. Isto só acontece quando o campo na BD é int.


ADOTable1.Filter := 'nVisita = '+QuotedStr(Edit1.Text);
 ADOTable1.Filtered := true;

 if Edit1.Text = '' then
   ADOTable1.Filtered := false;

Link to comment
Share on other sites

Mete o teste em cima...

 if Edit1.Text = '' then
   ADOTable1.Filtered := false;
 else begin
        ADOTable1.Filter := 'nVisita = '+QuotedStr(Edit1.Text);
        ADOTable1.Filtered := true;
      end;
  • Vote 1

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Verifica se a data que estás a usar está no mesmo formato.

Vais ao painel de controlo do windows, Opções Regionais, e verifica também lá o formato da data.

Quando há diferenças, pode dar esses erros, e podes ter de fazer a conversão para isso dar bem.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Sim está tudo certo, eu coloco o primeiro numero da data e dá-me logo o erro

Tens a pesquisa no onchange, certo?

Mete no OnExit. O problema é que, antes de teres a data completa, ele já tentar pesquisar, e depois falha.

Ou então, mantém no onchange, mas valida-a primeiro.

Por exemplo, apenas se tiver 10 caracteres é que avança com a pesquisa.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Mas no OnExit não dá porque Obriga o utilizador a clicar com o rato noutro local.

Mas por exemplo quando pesquiso por nome também ainda não tenho o nome completo e não tenho nenhum erro

Edited by CanonTG
Link to comment
Share on other sites

Fiz a contagem dos caracteres.

já agora sabes como faço uma pesquisa parcial?

á medida que insiro letras filtra todos os que tem ate chegar ao item que quero.

eu usei este codigo mas dá erro

adotable1.FilterOptions := [foCaseInsensitive];
Link to comment
Share on other sites

pode fazer algo do tipo no onchange mesmo:

var
 d : TDate;
begin
 if not TryStrToDate(Edit1.Text, d) then
ADOTable1.Filtered := false;
 else begin
	 ADOTable1.Filter := 'nVisita = '+QuotedStr(Edit1.Text);
	 ADOTable1.Filtered := true;
   end;
Edited by Gilson Nunes
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.