lazarodm Postado Julho 4, 2004 Denunciar Share Postado Julho 4, 2004 Gostaria de saber como se faz uma consulta em delphi que quando se digita uma letra em um EDIT o DBGRID mostre apenas o que começa com essa letra e não redirecione o para onde se encontra essa letra mostrando todos os outros. Link para o comentário Compartilhar em outros sites More sharing options...
0 ricardo_sdl Postado Julho 4, 2004 Denunciar Share Postado Julho 4, 2004 Simples faça assim:query1.sql.add('Select * from tabela.db where Nome like " '+letra+");acho que deve funcionar. Link para o comentário Compartilhar em outros sites More sharing options...
0 lazarodm Postado Julho 5, 2004 Autor Denunciar Share Postado Julho 5, 2004 Obrigado Ricardo_sdl, só mais uma coisa. Isso funciona com qualquer tipo de banco de dados? e where Nome like esse "NOME" é o nome do campo e " '+letra+"); o edit, certo? Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Julho 5, 2004 Denunciar Share Postado Julho 5, 2004 o ideial (mais simples de funcionar) é usar Params ou ParamByName:query1.sql.add('Select * from tabela.db where Nome like :item);query1.sql.Params('0').asstring := edit1.text ou query1.sql.ParamByName('item').asstring := edit1.text Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 5, 2004 Denunciar Share Postado Julho 5, 2004 Valeu, Corposemalma! vou testar e logo trarei respostas! Link para o comentário Compartilhar em outros sites More sharing options...
0 lazarodm Postado Julho 5, 2004 Autor Denunciar Share Postado Julho 5, 2004 Valeu, Corposemalma! vou testar e logo trarei respostas! "Obs.: esqueci de logar" Link para o comentário Compartilhar em outros sites More sharing options...
0 lazarodm Postado Julho 6, 2004 Autor Denunciar Share Postado Julho 6, 2004 O que seria esse item? Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Ricardo Soares de Lima Postado Julho 6, 2004 Denunciar Share Postado Julho 6, 2004 Este item é o parâmetro passado ao comando sql aquele : antes dele indica que ele é um parâmetro. Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Julho 6, 2004 Denunciar Share Postado Julho 6, 2004 Exato...Usar parametro sempre é melhor que jogar valores na linha SQL.Facilita na implementação, por que voce não se enrola com aquele monte de "" aspas e + Sinais de adicaoE tambem por que fica mais facil de tratar os tipos de variaveis (Date, string, boolean)...Voce vai ver que quando precisar fazer algo um pouco mais complicado vai ter que usar parametros.... Link para o comentário Compartilhar em outros sites More sharing options...
0 lazarodm Postado Julho 10, 2004 Autor Denunciar Share Postado Julho 10, 2004 Tentei usar os dois métodos acima, mas não funcionou. Dava vários tipos de erro... E se alguém souber algum tipo de consulta que pode ser utilizado com o componente TTable, ou melhor, algumas apostilas explicando como utilizar o componente TQuery. Link para o comentário Compartilhar em outros sites More sharing options...
0 KeitaroSan Postado Julho 10, 2004 Denunciar Share Postado Julho 10, 2004 Qual o tipo de banco de dados você esta utilizando Lazarodm? Link para o comentário Compartilhar em outros sites More sharing options...
0 lazarodm Postado Julho 10, 2004 Autor Denunciar Share Postado Julho 10, 2004 KeitaroSan, estou usando o Access! Link para o comentário Compartilhar em outros sites More sharing options...
0 KeitaroSan Postado Julho 10, 2004 Denunciar Share Postado Julho 10, 2004 Bom, eu perguntei, pois quando eu trabalho com banco de dados, a sintaxe do SQL costuma mudar pra quem esta acostumado com a do BDE, geralmente eu utilizo Access tambem, mas eu uso componente de acesso pelo Jet, espero que isso não afete o a sintaxe do SQL...Eu faria a query de seleção da seguinte maneira: Query1.SQL.Text := 'SELECT * FROM tabela_desejada WHERE nome_do_campo LIKE '+#39+ var_substring + '*' +#39+'note que esse que eu pus logo apos o "var_substring" é um caracter curinga, entende?ou seja, ele vai mostrar todos os registros que começam com o texto que esta na var_substring e terminem com qualquer coisa...no Paradox o caracter curinga é o "%", por isso eu queria saber qual sintaxe de SQL usar...Bom, se der erro, posta o erro aqui, mas acho dificil, sempre uso assim e nunca obtenho erro...falows Link para o comentário Compartilhar em outros sites More sharing options...
0 lazarodm Postado Julho 10, 2004 Autor Denunciar Share Postado Julho 10, 2004 Estamos progredindo...Ainda não está funcionando totalmente, não dá mais nehum erro que para o programa e manda recompilar, etc.Mas o DBGrid fica em branco, todos os campos ficam em branco, mesmo eu digitando um valor que está na tabela... Acho que só falta esse problema. Link para o comentário Compartilhar em outros sites More sharing options...
0 KeitaroSan Postado Julho 11, 2004 Denunciar Share Postado Julho 11, 2004 Tipo, como eu tow sem Access no momento, não posso te fazer um exemplo, mas quando eu testei, testei no Database Desktop e notei que ele era "Case Sensitive", ou seja, diferenciava letras maiusculas de minusculas... será que não está retornando nada por algum caso assim??Tipo, se não funcionar bem com o '*', tenta usar o '%'... quem sabe não funciona? Link para o comentário Compartilhar em outros sites More sharing options...
0 Capablanca Postado Julho 12, 2004 Denunciar Share Postado Julho 12, 2004 Olá,Acho que está resolvido (aqui deu certo).Tente usar a seguinte sentença SQL no evento OnKeyUp do Edit1:=======================================================================================ADOQuery1.Close; ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('SELECT * FROM NomeDaTabela WHERE NomeDoCampo LIKE ' + #39 + Edit1.Text + '%' + #39);ADOQuery1.Open;=======================================================================================Caso você ainda não consiga, me fala que eu te mando o arquivo fonte do exemplo.Abs. Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Julho 12, 2004 Denunciar Share Postado Julho 12, 2004 Capablanca... não é bom utilizar o valor do edit dentro da setença SQLO ideal é utilizar o Param, fica mais simples e dificil de se enrolar porque voce tem que ficar colocando as " aspas Link para o comentário Compartilhar em outros sites More sharing options...
0 Capablanca Postado Julho 12, 2004 Denunciar Share Postado Julho 12, 2004 Capablanca... não é bom utilizar o valor do edit dentro da setença SQLO ideal é utilizar o Param, fica mais simples e dificil de se enrolar porque voce tem que ficar colocando as " aspas Sim, é uma outra opção. Elaborei a sentença daquele modo para ficar mais fácil para o Lázaro entender. Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Julho 12, 2004 Denunciar Share Postado Julho 12, 2004 Tenta fazer assim: (eu sempre tive menos problema usando params ao invés de botar o valor do edit direto na SQL...)Query1.SQL.add(SELECT * FROM tabela_desejada WHERE nome_do_campo LIKE UPPER :param1 + %)query1.sql.Params('0').asstring := edit1.text ou query1.sql.ParamByName('param').asstring := edit1.text Link para o comentário Compartilhar em outros sites More sharing options...
0 Capablanca Postado Julho 12, 2004 Denunciar Share Postado Julho 12, 2004 Tenta fazer assim: (eu sempre tive menos problema usando params ao invés de botar o valor do edit direto na SQL...)Query1.SQL.add(SELECT * FROM tabela_desejada WHERE nome_do_campo LIKE UPPER :param1 + %)query1.sql.Params('0').asstring := edit1.text ou query1.sql.ParamByName('param').asstring := edit1.text Beleza... Valeu pelo complemento. Link para o comentário Compartilhar em outros sites More sharing options...
0 lazarodm Postado Julho 17, 2004 Autor Denunciar Share Postado Julho 17, 2004 Valeu pessoal, juntando um pouquinho de cada código deu pra montar a consulta do jeito que eu queria. Obrigado a todos que postaram enviando dicas e códigos... Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
lazarodm
Gostaria de saber como se faz uma consulta em delphi que quando se digita uma letra em um EDIT o DBGRID mostre apenas o que começa com essa letra e não redirecione o para onde se encontra essa letra mostrando todos os outros.
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados