Erro ao executar select no delphi
prezados boa tarde
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?
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
Curtidas 0
Mais Respostas
Rafael Mota
16/05/2014
Boa tarde!
Não sou profundo conhecedor do MySQL, mas creio que o Like é usado em "conjunto" com o %.
Por exemplo:
Espero que seja isso.
Abraços e boa sorte!
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
Ricardo
16/05/2014
Junior,
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 "=".
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
Junior
16/05/2014
Boa tarde
tentei as soluções apontadas mas o erro persiste ainda.
tentei as soluções apontadas mas o erro persiste ainda.
GOSTEI 0
Marcos Saffran
16/05/2014
você colocou espaço depois do like?
poste o código que está sendo enviado.
poste o código que está sendo enviado.
GOSTEI 0
Junior
16/05/2014
sim, tipo até criei um outro banco pensando que era falha no mysql mas o erro continua, tentei usar dois scrpit's mas nenhum obteve resultado.
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;
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
Marcos Saffran
16/05/2014
sim, tipo até criei um outro banco pensando que era falha no mysql mas o erro continua, tentei usar dois scrpit's mas nenhum obteve resultado.
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;
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
Junior
16/05/2014
sim como disse, recriei o bd todo, mas o erro continuou
[img]http://arquivo.devmedia.com.br/forum/imagem/345649-20140526-164230.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/345649-20140526-164230.png[/img]
GOSTEI 0
Romulo Silva
16/05/2014
Tive um problema parecido com este.
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;
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
Nelson Santos
16/05/2014
ganhe dinheiro com softwares 3D com Delphi 7
http://www.3dsistemas.com.br
http://www.3dsistemas.com.br
GOSTEI 0
Junior
16/05/2014
boa tarde amigos, tentei de todas as formas apontadas mas o erro persiste,
ja troquei a versão do mysql e do odbc, mas continua dando erro, alguém tem outra ideia do que posso fazer?
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
Junior
16/05/2014
consegui solucionar, acrescentei uma linha ao script e funcionou!
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
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