iMasters Fóruns: Como contar os registros encontrados em uma busca usando SQL? - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

Como contar os registros encontrados em uma busca usando SQL?

#1 Membro offline   Birtz Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 7
  • Cadastrado: 05-agosto 07

Postou 05 novembro 2009 - 18:28

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.

#2 Membro online   Chrnos Ícone

  • Bacharél em Informática - Programador Pleno
  • Ícone
  • Grupo: Membros
  • Posts: 1037
  • Cadastrado: 18-setembro 08
  • Sexo:Masculino
  • Localização:Santo André - SP

Postou 06 novembro 2009 - 08:15

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

#3 Membro offline   Birtz Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 7
  • Cadastrado: 05-agosto 07

Postou 06 novembro 2009 - 19:22

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

#4 Membro offline   btovix Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 28
  • Cadastrado: 19-janeiro 05
  • Localização:Teixeira de Freitas

Postou 09 novembro 2009 - 12:17

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!

#5 Membro online   Chrnos Ícone

  • Bacharél em Informática - Programador Pleno
  • Ícone
  • Grupo: Membros
  • Posts: 1037
  • Cadastrado: 18-setembro 08
  • Sexo:Masculino
  • Localização:Santo André - SP

Postou 10 novembro 2009 - 20:29

Ver postBirtz, em 06 novembro 2009 - 19:22 , disse:

É 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

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)