Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Birtz

Como contar os registros encontrados em uma busca usando SQL?

Recommended Posts

Olá a todos, tenho num aplicativo a instrução SQL "SELECT * FROM Tabela1 WHERE UPPER Nome LIKE 'Nome da Pessoa' " que retorna os registros do banco de dados cujos usuarios tem o nome parecido com o procurado. Como faço para que o programa mostre na tela (num label, por exemplo) quantos registros foram encontrados na busca?

 

Uma outra dúvida: tem como eu buscar uma certa expressão em 2 ou mais campos diferentes da mesma tabela? Por exemplo, tenho uma tabela com campos "telefone residencial", "telefone comercial" e "celular" e gostaria que o programa buscasse o numero digitado pelo usuario nos 3 campos da tabela.

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As TQuerys costumam ter uma propriedade RecordCount que retorna o número de registros que a consulta encontrou... quanto a outra dúvida, você pode pesquisar N campos de sua tabela no mesmo sql usando as cláusulas AND ou OR, dependendo do tipo de filtro que deseja encontrar. É recomendável que você dê uma estudada no básico das consultas sql, visto que esse tipo de pesquisa é básica.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que no meu caso eu to usando componentes IBQuery para trabalhar com o Interbase, e neles não encontro essa propriedade recordcount, então acredito que deva haver algum meio de fazer isso "na unha".

 

Eu tentei usar o AND na linha de comando SQL mas acho que não o posicionei da maneira correta, e o programa não reconhece o comando.

 

Mesmo assim agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá doutor. deixa eu tentar te ajudar também, eu recomendaria para você o recordcount e o locate para resolver o seu problema a sintaxe do locate é assim:

 

DataModule.Query.Locate('tel_comercial',ds_telComercial.Text,[loCaseInsensitive,loPartialKey]);

Aonde:

'tel_comercial' = campo da tabela;

ds_telComercial.Text = Edit para pesquisar;

[loCaseInsensitive,loPartialKey] = Não diferenciar Maiúsculas e Minúsculas, Pegar parte do valor e tentar aproximar.

 

pode jogar esse código dentro do evento onChange, por exemplo, do Edit que ele vai aproximar.

 

Sobre você usar o IBQuery, e querer fazer na unha, como você falou que não encontrou, recomendaria você utilizar outro conector. mas de todo o caso se quiser usar uma query contando os valores a sintaxe é assim:

 

select COUNT(tel_comercial) FROM telefones

Espero ter ajudado.

Um grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que no meu caso eu to usando componentes IBQuery para trabalhar com o Interbase, e neles não encontro essa propriedade recordcount, então acredito que deva haver algum meio de fazer isso "na unha".

 

Eu tentei usar o AND na linha de comando SQL mas acho que não o posicionei da maneira correta, e o programa não reconhece o comando.

 

Mesmo assim agradeço a atenção.

 

Até onde sei, os TIBQuery tem a propriedade RecordCount sim (basta chamar via código por TIBQuery.RecordCount)... mas a forma como ela funciona está descrita neste link... infelizmente parece que ela só retorna os dados corretamente se varrer ao menos uma vez o retorno dos dados....

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.