Birtz 0 Denunciar post Postado Novembro 5, 2009 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
Chrnos 30 Denunciar post Postado Novembro 6, 2009 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
Birtz 0 Denunciar post Postado Novembro 6, 2009 É 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
btovix 0 Denunciar post Postado Novembro 9, 2009 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
Chrnos 30 Denunciar post Postado Novembro 10, 2009 É 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