Logo Hardware.com.br
Flávio Borges
Flávio Borge... Super Participante Registrado
532 Mensagens 4 Curtidas

Ajuda com função Update usando Delphi 7 + access + ADO

#1 Por Flávio Borge... 08/02/2008 - 14:34
E aí galera? Todo mundo belezinha?

Bom, o problema é o seguinte: tô tentando fazer uma rotina de alteração de dados cadastrados em um programa usando Delphi + Access + ADO. Coloquei o código do update e ele compila de boa, mas quando vai executar a SQL dá a mensagem "Sintaxe incorreta".

O Código que tô tentando executar é o seguinte:

with DataMod.DModule.AQSubgeneros do
begin

Close;
SQL.Clear;
SQL.Add('Update Subgeneros SET Desc_Subgenero, Cod_Genero = big_green.pngescSubg, :CodGen where Cod_Subgenero = :CodSubg');
Parameters.ParamByName('DescSubg').Value:=edtDescSubgenero.Text;
Parameters.ParamByName('CodGen').Value:=StrToInt(edtCodGenero.Text);
Parameters.ParamByName('CodSubg').Value:=StrToInt(edtCodSubgenero.Text);
ExecSQL;

end;
Qual será o erro nessa SQL...?

Valeu mesmo pela ajuda de todos. Até maisrindo_ate_agora.png.
Flávio Borges
Flávio Borge... Super Participante Registrado
532 Mensagens 4 Curtidas
#3 Por Flávio Borge...
08/02/2008 - 15:53
Guitarrista Kurumin disse:
Vc não ta atribuindo valor ao campo Desc_Subgenero... Se não resolver coloque qual exatamente é a mensagem de erro que aparece.


Obrigado.
Vou explicar melhor o que estou tentando fazer nessa SQL.

Subgeneros é a tabela.
Desc_Subgenero e Cod_Genero são os campos da tabela que serão alterados.
Eles receberão os dados de dois labels, que são passados como parâmetros (big_green.pngescSubg e :CodGen).
Essas alterações serão feitas apenas no registro corrente, identificado por um código contido em outro label, que também é passado como parâmetro (where Cod_Subgenero = :CodSubg)

Agora, você me disse que eu não estou atribuindo valores a Desc_Subgenero mas, ao meu ver, isso é feito com o parâmetro big_green.pngescSubg)...

O erro que dá é exatamente esse: "Erro de sintaxe na instrução UPDATE".

Note que o programa compila normal. Apenas quando vai executar essa instrução é que dá pala.


Valeu mesmo.rindo_ate_agora.png
Flávio.
"Quem lê é", Revista Superinteressante.

Graduado !!! Ciência da Computação - UninCor - Três Corações-MG. bebi_demais.gif
Rock n' Roll stop the trafficpunk.gif
Guitarrista Kurumin
Guitarrista... Super Participante Registrado
837 Mensagens 14 Curtidas
#4 Por Guitarrista...
08/02/2008 - 16:32
Update Subgeneros SET Desc_Subgenero= :DescSubg, Cod_Genero = Imagem:escSubg, :CodGen where Cod_Subgenero = :CodSubg

Provavelmente o que está em negrito está faltando e o que está cinza está passando.

O parametro DescSubg estava sendo passado para o campo Cod_Genero e não para o Desc_Subgenero.


off --------------------------------------------------
Evite essas carinhas no meio do código, fica difícil de ler
Conhecimento é saber que tomate é fruta. Sabedoria é saber que não se coloca tomates em uma salada de frutas.
Flávio Borges
Flávio Borge... Super Participante Registrado
532 Mensagens 4 Curtidas
#5 Por Flávio Borge...
09/02/2008 - 00:44
Guitarrista Kurumin disse:
Update Subgeneros SET Desc_Subgenero= :DescSubg, Cod_Genero = Imagem:escSubg, :CodGen where Cod_Subgenero = :CodSubg

Provavelmente o que está em negrito está faltando e o que está cinza está passando.

O parametro DescSubg estava sendo passado para o campo Cod_Genero e não para o Desc_Subgenero.


off --------------------------------------------------
Evite essas carinhas no meio do código, fica difícil de ler


Ah, valeu mesmo irmão... Agora deu certinho... É que eu tava pensando que depois do SET, deveria colocar todos os campos que seriam modificados, e depois do igual os parâmetros que seriam atribuidos, respectivamente a cada campo...fiquei_vermelho.png

Só pra constar, o código ficou assim:
with DataMod.DModule.AQSubgeneros do
begin

Close;
SQL.Clear;
SQL.Add('Update Subgeneros SET Desc_Subgenero = :descSubg, Cod_Genero = :CodGen where Cod_Subgenero = :CodSubg');
Parameters.ParamByName('DescSubg').Value:=edtDescSubgenero.Text;
Parameters.ParamByName('CodGen').Value:=StrToInt(edtCodGenero.Text);
Parameters.ParamByName('CodSubg').Value:=StrToInt(edtCodSubgenero.Text);
ExecSQL;

end;
--Resp Off... Foi mal pelas carinhas, mas é que quando eu digito ele já põe sozinho...

Até mais.
Flávio.
"Quem lê é", Revista Superinteressante.

Graduado !!! Ciência da Computação - UninCor - Três Corações-MG. bebi_demais.gif
Rock n' Roll stop the trafficpunk.gif
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal