Query Passagem de Parâmetro SSoooocccooorrooo!!!!!!!!
como montar SQL com:
parâmetro e com LIKE ????
[b:7cff683a88]vejam o que fiz, mas não funciona!!!: [/b:7cff683a88]
:arrow: SELECT nome FROM Pessoa WHERE nome LIKE :dados
[b:7cff683a88]vejam a passagem:[/b:7cff683a88]
with dm.qryGeral do begin
Parameters[0].Value := Edit1.text;
open;
end;
[i:7cff683a88]Obs.: estou usando ADO e Access.[/i:7cff683a88]
Obrigadinha... :)
parâmetro e com LIKE ????
[b:7cff683a88]vejam o que fiz, mas não funciona!!!: [/b:7cff683a88]
:arrow: SELECT nome FROM Pessoa WHERE nome LIKE :dados
[b:7cff683a88]vejam a passagem:[/b:7cff683a88]
with dm.qryGeral do begin
Parameters[0].Value := Edit1.text;
open;
end;
[i:7cff683a88]Obs.: estou usando ADO e Access.[/i:7cff683a88]
Obrigadinha... :)
Anonymous
Curtidas 0
Respostas
Anonymous
01/03/2003
Oi,
Dá uma olhada
with Query1 do begin
Sql.Clear
Sql.Add(´SELECT nome FROM Pessoa WHERE upper(nome) LIKE upper (:dados) ´);
ParamByName(´nome´).asString := Edit1.text;
Close;
Open;
End;
Fui
Dá uma olhada
with Query1 do begin
Sql.Clear
Sql.Add(´SELECT nome FROM Pessoa WHERE upper(nome) LIKE upper (:dados) ´);
ParamByName(´nome´).asString := Edit1.text;
Close;
Open;
End;
Fui
GOSTEI 0
Anonymous
01/03/2003
Somente um acréscimo à resposta do [b:9a74d8aa76]Visitante[/b:9a74d8aa76]:
Do jeito que está somente irá encontrar se o item procurado for digitado EXATAMENTE igual ao que foi cadastrado.
Utilize o caracter ´¬´ como curinga. Por exemplo:
Query1.ParamByName(´nome´).asString := Edit1.text+´¬´;
Se no Edit1 tiver sido digitado ´MARIA´, serão mostrados todos os nomes que iniciam com MARIA. Verifique também se a busca faz diferença entre maiúsculas e minúsculas.
Do jeito que está somente irá encontrar se o item procurado for digitado EXATAMENTE igual ao que foi cadastrado.
Utilize o caracter ´¬´ como curinga. Por exemplo:
Query1.ParamByName(´nome´).asString := Edit1.text+´¬´;
Se no Edit1 tiver sido digitado ´MARIA´, serão mostrados todos os nomes que iniciam com MARIA. Verifique também se a busca faz diferença entre maiúsculas e minúsculas.
GOSTEI 0
Ilanocf
01/03/2003
Olá Monique,
Eu trabalho com Access e agora estou migrando para Delphi, portanto, não sou nenhum grande programador em Delphi, mas pelos trabalhos q já fiz minha consulta foi resolvida da seguinte forma:
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE:P1 ORDER BY Aluno´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit2.Text;
DMDados.ConsDiplomas.Open;
DMDados é o nome do meu DataModule, assim todas as tabelas e consultas ficam centralizadas em um sólugar, é como uma caixinha, e se precisar ser colocado em Rede não dará problemas para conectá-las.
Na terceira linha peço para localizar o campo Curso e organizar minha consulta pelo nome do aluno em ordem crescente, mas acho q já sabe disso tb.
Na quarta linha, é usado Parameters antes de ParamByName por se tratar de tabela Access, se fosse tabela Paradox não necessitaria do Parameters.
Boa sorte e um feliz carnaval.
Ilano.
Eu trabalho com Access e agora estou migrando para Delphi, portanto, não sou nenhum grande programador em Delphi, mas pelos trabalhos q já fiz minha consulta foi resolvida da seguinte forma:
DMDados.ConsDiplomas.Close;
DMDados.ConsDiplomas.SQL.Clear;
DMDados.ConsDiplomas.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Curso LIKE:P1 ORDER BY Aluno´);
DMDados.ConsDiplomas.Parameters.ParamByName(´P1´).Value:=Edit2.Text;
DMDados.ConsDiplomas.Open;
DMDados é o nome do meu DataModule, assim todas as tabelas e consultas ficam centralizadas em um sólugar, é como uma caixinha, e se precisar ser colocado em Rede não dará problemas para conectá-las.
Na terceira linha peço para localizar o campo Curso e organizar minha consulta pelo nome do aluno em ordem crescente, mas acho q já sabe disso tb.
Na quarta linha, é usado Parameters antes de ParamByName por se tratar de tabela Access, se fosse tabela Paradox não necessitaria do Parameters.
Boa sorte e um feliz carnaval.
Ilano.
GOSTEI 0
Anonymous
01/03/2003
Valeu rapazes, com a gentil ajuda de vocês eu CONSEGUI!!!
:arrow: Monique Farias
:arrow: Monique Farias
GOSTEI 0
Anonymous
01/03/2003
Oi,
Dá uma olhada
with Query1 do begin
Sql.Clear
Sql.Add(´SELECT nome FROM Pessoa WHERE upper(nome) LIKE upper (:dados) ´);
ParamByName(´nome´).asString := Edit1.text;
Close;
Open;
End;
Fui
Como faço para incluir mais de um parametro no caso acima?
GOSTEI 0
Paulino
01/03/2003
Você teve a resposta, porém, creio que não a que você queria. Para ter mais de um parâmetro em sua pesquisa você deve adicioná-los, em seu código SQL pelas condições creio que já conhecidas por você (AND ou OR)
Assim poderiamos ter:
With Query1 do
begin
Close;
SQL.Clear;
SQL.Add(´Select * from Tabela Where (Parametro1=:Parametro1 AND Parametro2=:Parametro2 AND Parametro3=:Parametro3) ´);
Parameters.ParamByName(´Parametro1´).Value:=ValorDoParametro1;
Parameters.ParamByName(´Parametro2´).Value:=ValorDoParametro2;
Parameters.ParamByName(´Parametro3´).Value:=ValorDoParametro3;
Open;
end;
Onde os parênteses antes dos parâmetros são para indicar prioridade, caso use OR entre AND´s... os AND´s podem ser OR´s e no código podem estar inclusos também Order by, Group By, após as condições... dependendo dos tipos de dados deve-se também modificá-los...
para mais escreva-me... paulino@usa.com
:wink:
Assim poderiamos ter:
With Query1 do
begin
Close;
SQL.Clear;
SQL.Add(´Select * from Tabela Where (Parametro1=:Parametro1 AND Parametro2=:Parametro2 AND Parametro3=:Parametro3) ´);
Parameters.ParamByName(´Parametro1´).Value:=ValorDoParametro1;
Parameters.ParamByName(´Parametro2´).Value:=ValorDoParametro2;
Parameters.ParamByName(´Parametro3´).Value:=ValorDoParametro3;
Open;
end;
Onde os parênteses antes dos parâmetros são para indicar prioridade, caso use OR entre AND´s... os AND´s podem ser OR´s e no código podem estar inclusos também Order by, Group By, após as condições... dependendo dos tipos de dados deve-se também modificá-los...
para mais escreva-me... paulino@usa.com
:wink:
GOSTEI 0
Anonymous
01/03/2003
Eu nao uso ADO mas acredito que isso funcione:
TIBQUERY.SQL.CLEAR;
TIBQUERY.SQL.ADD(´
select campo from tabela
where campo like ´´´+EDIT1.TEXT+´¬´´´ ´);
TIBQUERY.CLOSE;
TIBQUERY.OPEN;
tem que ser sql dinamico para passar o parametro edit1.text.
Se funcionar e quiser trocar uma ideia sobre o delphi
pode escrever para flmzsjlle@yahoo.com.br meu nome e Francisco
TIBQUERY.SQL.CLEAR;
TIBQUERY.SQL.ADD(´
select campo from tabela
where campo like ´´´+EDIT1.TEXT+´¬´´´ ´);
TIBQUERY.CLOSE;
TIBQUERY.OPEN;
tem que ser sql dinamico para passar o parametro edit1.text.
Se funcionar e quiser trocar uma ideia sobre o delphi
pode escrever para flmzsjlle@yahoo.com.br meu nome e Francisco
GOSTEI 0