UpDate com DBExpress no Oracle
> 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;
====================================================================================================================================
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
Curtidas 0
Respostas
Woinch
26/05/2009
Remova a linha
Esse componente foi feito para ser utilizada uma instrução por vez.
Espero ter ajudado.
SQL.Add(´commit work´);
Esse componente foi feito para ser utilizada uma instrução por vez.
Espero ter ajudado.
GOSTEI 0
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.
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
26/05/2009
Removi e continuou o mesmo problema :(
GOSTEI 0