Fórum O que há de errado neste comando SQL! Por favor!!!!!!!!!!!!! #37572
24/07/2003
0
o que há de errado neste comando?
procedure TForm1.BitBtn1Click(Sender: TObject);
var SearchDesc,SearchDesc2 : string;
begin
SearchDesc:=edit1.text;
with qryBuscaDesc do
begin
active := False;
sql.clear;
sql.add (´SELECT COD_PRODUTO, DESCRICAO´);
sql.add (´FROM PRODUTO´);
sql.add (´WHERE COD_PRODUTO = ´´´ + SearchDesc + ´´´´);
SearchDesc2:=FieldByName(´DESCRICAO´);
active := True;
label1.caption:=SearchDesc2;
end;
end;
Como podem ver eu quero fazer uma consulta SQL a partir de um código digitado num TEdit, achar a descrição do código digitado e jogar essa descrição num TLabel. Eu uso Delphi6/IB6
Muito obrigado!
Anarchybra
Curtir tópico
+ 0Posts
24/07/2003
Basilio.sp
Vamos lá... Primeiro detalhe: apesar de não ser algo obrigatório, sempre que você precisar passar um parâmetro string para uma query utilize a função QuotedStr. Fica bem mais legível o código e evita erros na quantidade de apóstrofes que você precisa digitar.
Outro detalhe: pelo que pude ver, você quer o resultado da query numa variável chamada SearchDesc2, certo? Mas, antes mesmo de executar a query, você já tenta atribuir o valor... Como você pode querer armazenar o resultado de uma query que ainda não foi executada?
Então, o mais coerente seria deixar o código assim:
procedure TForm1.BitBtn1Click(Sender: TObject);
var SearchDesc,SearchDesc2 : string;
begin
SearchDesc:=edit1.text;
with qryBuscaDesc do
begin
active := False;
sql.clear;
sql.add (´SELECT COD_PRODUTO, DESCRICAO´);
sql.add (´FROM PRODUTO´);
sql.add (´WHERE COD_PRODUTO = ´ + QuotedStr (SearchDesc));
active := True;
SearchDesc2:=FieldByName(´DESCRICAO´);
label1.caption:=SearchDesc2;
end;
end;
Gostei + 0
24/07/2003
Basilio.sp
Vamos lá... Primeiro detalhe: apesar de não ser algo obrigatório, sempre que você precisar passar um parâmetro string para uma query utilize a função QuotedStr. Fica bem mais legível o código e evita erros na quantidade de apóstrofes que você precisa digitar.
Outro detalhe: pelo que pude ver, você quer o resultado da query numa variável chamada SearchDesc2, certo? Mas, antes mesmo de executar a query, você já tenta atribuir o valor... Como você pode querer armazenar o resultado de uma query que ainda não foi executada?
Então, o mais coerente seria deixar o código assim:
procedure TForm1.BitBtn1Click(Sender: TObject);
var SearchDesc,SearchDesc2 : string;
begin
SearchDesc:=edit1.text;
with qryBuscaDesc do
begin
active := False;
sql.clear;
sql.add (´SELECT COD_PRODUTO, DESCRICAO´);
sql.add (´FROM PRODUTO´);
sql.add (´WHERE COD_PRODUTO = ´ + QuotedStr (SearchDesc));
active := True;
SearchDesc2:=FieldByName(´DESCRICAO´);
label1.caption:=SearchDesc2;
end;
end;
Gostei + 0
27/07/2003
Anarchybra
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)