Fórum Erro ao executar select no delphi #479237
16/05/2014
0
estou fazendo uma consulta no Delphi conforme abaixo:
procedure TPRINCIPAL.SpeedButton1Click(Sender: TObject);
var dat1, dat2,cpn, tp:string;
begin
Edit4.Text:=Edit2.Text;
dat1:=Edit2.Text;
dat2:=Edit3.text;
cpn:=Edit1.Text;
tp:=ComboBox1.Text;
adotg.Close;
adotg.SQL.Add('SELECT * FROM publicacao where tema like'+quotedstr(edit1.text)+'and tipo='+quotedstr(ComboBox1.text)+'and vi='+quotedstr(edit2.text)+'and vf='+quotedstr(Edit3.text));
adotg.Open
end;
No Entando ao clicar no botão ele exibe esta mensagem :
[img]http://arquivo.devmedia.com.br/forum/imagem/345649-20140516-154112.png[/img]
alguem pode me ajudar?
Junior
Curtir tópico
+ 0Posts
16/05/2014
Rafael Mota
Não sou profundo conhecedor do MySQL, mas creio que o Like é usado em "conjunto" com o %.
Por exemplo:
LIKE ‘a%’ // palavras começadas em a
LIKE ‘%a’ // palavras terminadas em
Espero que seja isso.
Abraços e boa sorte!
Gostei + 0
16/05/2014
Ricardo
Tenta assim:
Essa forma faz uma consulta exata pelo o que foi informado.
adotg.Close;
adotg.Clear;
adotg.SQL.Add('SELECT * FROM publicacao where tema like'+ quotedstr(edit1.text));
adotg.SQL.Add('and tipo = '+ quotedstr(ComboBox1.text));
adotg.SQL.Add('and vi = '+ quotedstr(edit2.text));
adotg.SQL.Add('and vf = '+ quotedstr(Edit3.text));
adotg.Open;
Se quiser procurar por parte do que foi informado então faz assim:
adotg.SQL.Add('SELECT * FROM publicacao where tema like'+ quotedstr('%'+edit1.text+'%'));
ou
adotg.SQL.Add('SELECT * FROM publicacao where tema like'+ quotedstr('%'+edit1.text));
ou
adotg.SQL.Add('SELECT * FROM publicacao where tema like'+ quotedstr(edit1.text+'%'));
e por ai vai...
Mantenha os espaços entre o "+" e o QuotedStr e os espaços aos lados do "=".
Gostei + 0
26/05/2014
Junior
tentei as soluções apontadas mas o erro persiste ainda.
Gostei + 0
26/05/2014
Marcos Saffran
poste o código que está sendo enviado.
Gostei + 0
26/05/2014
Junior
1º Tentativa
adotg.Clear;
adotg.SQL.Add('SELECT * FROM tabloide where TEMA like'+ quotedstr(edit1.text));
adotg.SQL.Add('and tipo = '+ quotedstr(ComboBox1.text));
adotg.SQL.Add('and vi = '+ quotedstr(edit2.text));
adotg.SQL.Add('and vf = '+ quotedstr(Edit3.text));
2º tentativa
adotg.Close;
adotg.Clear;
adotg.SQL.Add('SELECT * FROM tabloide where TEMA like '+quotedstr(edit1.text)+' and tabloide_guia = '+quotedstr(ComboBox1.text)+' and vi = '+quotedstr(edit2.text)+' and vf = '+quotedstr(Edit3.text));
adotg.Open;
Gostei + 0
26/05/2014
Marcos Saffran
1º Tentativa
adotg.Clear;
adotg.SQL.Add('SELECT * FROM tabloide where TEMA like'+ quotedstr(edit1.text));
adotg.SQL.Add('and tipo = '+ quotedstr(ComboBox1.text));
adotg.SQL.Add('and vi = '+ quotedstr(edit2.text));
adotg.SQL.Add('and vf = '+ quotedstr(Edit3.text));
2º tentativa
adotg.Close;
adotg.Clear;
adotg.SQL.Add('SELECT * FROM tabloide where TEMA like '+quotedstr(edit1.text)+' and tabloide_guia = '+quotedstr(ComboBox1.text)+' and vi = '+quotedstr(edit2.text)+' and vf = '+quotedstr(Edit3.text));
adotg.Open;
Por favor poste a mensagem de erro com a 2ª tentativa, percebi que você mudou a tabela, é isso mesmo?
Gostei + 0
26/05/2014
Junior
[img]http://arquivo.devmedia.com.br/forum/imagem/345649-20140526-164230.png[/img]
Gostei + 0
26/05/2014
Romulo Silva
troquei * pelo conjunto de campos
se apresentar o mesmo problema execute fora do delphi
para ver como se comporta, o problema também pode estar na versão do mysql
ou até no componente ado
with adotg do
begin
Clear;
SQL.Add('SELECT tema,tipo,vi,vf FROM tabloide where TEMA like'+ quotedstr(edit1.text));
SQL.Add('and tipo = '+ quotedstr(ComboBox1.text));
SQL.Add('and vi = '+ quotedstr(edit2.text));
SQL.Add('and vf = '+ quotedstr(Edit3.text));
open;
end;
Gostei + 0
27/05/2014
Nelson Santos
http://www.3dsistemas.com.br
Gostei + 0
03/06/2014
Junior
ja troquei a versão do mysql e do odbc, mas continua dando erro, alguém tem outra ideia do que posso fazer?
Gostei + 0
03/06/2014
Junior
ado1capa.Close;
ado1capa.SQL.Clear;
ado1capa.SQL.Add('Select * from produtos_p_pagina where secao= "1ª Capa"' + quotedstr('%'+edit2.text+'%')'and vi = '+ quotedstr('%'+edit2.text+'%'));
ado1capa.SQL.Add('and vf = '+ quotedstr(edit3.text));
ado1capa.SQL.Add('and tabloide like '+ quotedstr(edit1.text));
ado1capa.Open;
a linha acrescentada foi : ado1capa.SQL.Clear;
por incrivel que pareca rs, tipo o delphi lia o comando que estava dentro da query executava junto com o select que eu colocava no script do botao
flw pessoal vlw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)