Instrução SQL
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 ;
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
Curtidas 0
Respostas
Weber
29/04/2004
O erro provavelmente está aqui
& chr(39) & 10 & chr(39)
Antes do
ADOQuery2.ExecSQL;
Coloque assim
Isso vai mostrar a você exatamente o que será executado, assim vai dar pra ver onde está o erro.
& 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.
GOSTEI 0
Micky
29/04/2004
Obrigado,
Mas, na parada que dá, me acusa e mostra a instrução errada. Só que não sei corrigi-la.
Mas, na parada que dá, me acusa e mostra a instrução errada. Só que não sei corrigi-la.
GOSTEI 0
Macario
29/04/2004
Ola programador, boa tarde.
use parametro para passar o valor assim vc fica livre de usar essas
convenções ´estranhas´.
[color=green:c50fc1828b]
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]GOSTEI 0
Micky
29/04/2004
Macario,
Novamente obrigado,
Estou vindo do VB e tomando uma surra.
A dica passada deu certinho.
Vou tentar essa.
[ ]s,
Novamente obrigado,
Estou vindo do VB e tomando uma surra.
A dica passada deu certinho.
Vou tentar essa.
[ ]s,
GOSTEI 0
Micky
29/04/2004
[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.
[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.
GOSTEI 0
Emerson Nascimento
29/04/2004
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
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
GOSTEI 0
Micky
29/04/2004
Emerson muito obrigado, vou tentar. So a tarde retorno
GOSTEI 0
Micky
29/04/2004
Emerson,
Funcionou perfeitamente, muito obrigado.
[ ]s,
Funcionou perfeitamente, muito obrigado.
[ ]s,
GOSTEI 0