UpDate com DBExpress no Oracle

Delphi

26/05/2009

> Senhores,

Estou com problemas para realizar manutenções em tabelas do oracle 9i utilizando os componentes do DBExpress SQLConnection e SQLQuery. a conexão já esta estabelecida com o SQLConnection e com SQLQuery consigo realizar consultas. O Que não está sendo possivel fazer é um update. não sei se estou fazendo da maneira correta por isso ai vai o código logo abaixo:

> O Erro é que ao executar esta SQL uma mensagem ORA-00933: Comando SQL não encerrado adequadamente.
> Solicito ajuda de quem puder opinar sobre o assunto.
======================================================================================================================================
procedure TFormControle.BAtualizarClick(Sender: TObject);
var
situacao : string;
begin
inherited;
if StrToInt(EdtSaldoEstoque.Text) = 0 then begin
situacao:= ´D´;
//Será implementado outros tratamentos aqui
end else begin
situacao:= ´O´;
//Será implementado outros tratamentos aqui
end;

with SQLQuery do begin
Close;
SQL.Clear;

SQL.Add(´UPDATE DEPOSIT_EMPRESA_END_179´);
SQL.Add(´SET saldo_estoq_179= ´+EdtSaldoEstoque.Text+´, status_179= ´+QuotedStr(situacao));
SQL.Add(´WHERE´);
SQL.Add(´ EMPRESA_PF_179= ´ + EdtCodEmpresa.Text+ ´ AND´);
SQL.Add(´ PORTA_PALLET_PK_179= ´ + EdtEndereco.Text + ´ AND´);
SQL.Add(´ MERC_FK_179=´ + EdtMercadoria.Text );

SQL.Add(´commit work´);

ExecSQL(True);
open;
end;
end;

====================================================================================================================================


Huggoallex

Huggoallex

Curtidas 0

Respostas

Woinch

Woinch

26/05/2009

Remova a linha
SQL.Add(´commit work´); 

Esse componente foi feito para ser utilizada uma instrução por vez.

Espero ter ajudado.


GOSTEI 0
Woinch

Woinch

26/05/2009

PS: Utilizando o comando ExecSQL não há necessidade de utilizar o comando Open.

O comando ExecSQL serve para mandar instruções diretas para o banco (como você fez), caso você queira abrir um resultado na tela (exemplo, um resultado de um select) utilize o Open.


GOSTEI 0
Huggoallex

Huggoallex

26/05/2009

Removi e continuou o mesmo problema :(


GOSTEI 0
POSTAR