Fórum Instrução SQL #228864

29/04/2004

0

Olá a todos.

Poderiam me dizer qual o erro na instrução, que não para na compilação porém para quando solicitada ?.

O campo CODIGOCLIENTE é String
ADOQuery2.Close ;
ADOQuery2.SQL.Clear ;
ADOQuery2.SQL.Add(´Update tblClientes Set NOME=´xxxxx´ Where CODIGOCLIENTE= & chr(39) & 10 & chr(39)´) ;
ADOQuery2.ExecSQL ;
ADOQuery1.Close ;
ADOQuery1.Open ;


Micky

Micky

Responder

Posts

29/04/2004

Weber

O erro provavelmente está aqui
& chr(39) & 10 & chr(39)

Antes do
ADOQuery2.ExecSQL;
Coloque assim
ShowMessage(ADOQuery2.SQL.Text);


Isso vai mostrar a você exatamente o que será executado, assim vai dar pra ver onde está o erro.


Responder

Gostei + 0

29/04/2004

Micky

Obrigado,

Mas, na parada que dá, me acusa e mostra a instrução errada. Só que não sei corrigi-la.


Responder

Gostei + 0

29/04/2004

Macario

Ola programador, boa tarde.


use parametro para passar o valor assim vc fica livre de usar essas

convenções ´estranhas´.

[color=green:c50fc1828b]
ADOQuery2.Close ; ADOQuery2.SQL.Clear ; ADOQuery2.SQL.Add(´Update tblClientes Set NOME=´xxxxx´ Where CODIGOCLIENTE= :CodCli´) ; ADOQuery2.Params.Parambyname(´codcli´).asString := edit1.texte; ADOQuery2.ExecSQL ; ADOQuery1.Close ; ADOQuery1.Open ;
[/color:c50fc1828b]


Responder

Gostei + 0

29/04/2004

Micky

Macario,

Novamente obrigado,
Estou vindo do VB e tomando uma surra.
A dica passada deu certinho.
Vou tentar essa.

[ ]s,


Responder

Gostei + 0

29/04/2004

Micky

[Error] AlterarClientes.pas(231): Left side cannot be assigned to
[Error] AlterarClientes.pas(231): Incompatible types: ´TParameter´ and ´TCaption´
[Fatal Error] Estoque.dpr(18): Could not compile used unit ´AlterarClientes.pas´

E agora ?. Nao entendi nada.


Responder

Gostei + 0

30/04/2004

Emerson Nascimento

algumas observações:
qdo se utiliza instruções SQL que retornam dados (select), deve-se utilizar o método [b:b9475bcc4c]open[/b:b9475bcc4c].

qdo se utiliza instruções SQL que executam comandos no banco (insert, delete, update), deve-se utilizar somente ExecSQL.

no seu caso, deveria ser apenas:
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(´Update tblClientes Set NOME=´xxxxx´ where CODIGOCLIENTE= :CodCli´);
ADOQuery2.Parameters.ParamByName(´codcli´).Value := edit1.text;
ADOQuery2.ExecSQL;


note que [b:b9475bcc4c]´xxxxx´[/b:b9475bcc4c] está envolvido por [color=blue:b9475bcc4c][b:b9475bcc4c]aspas duplas[/b:b9475bcc4c][/color:b9475bcc4c], e não aspas simples


Responder

Gostei + 0

30/04/2004

Micky

Emerson muito obrigado, vou tentar. So a tarde retorno


Responder

Gostei + 0

30/04/2004

Micky

Emerson,

Funcionou perfeitamente, muito obrigado.

[ ]s,


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar