DBExpress / ClientDataSet

Delphi

04/12/2006

Estou com dificuldades para conseguir Comitar uma transacao, Estou fazendo uma aplicacao Delphi com bd Oracle com os componentes SQLQuery, ClientDataSet.
Ja criei a transacao deste jeito:

transacao : transactiondesc;
begin
transacao.TransactionID := 1;
transacao.IsolationLevel := xilREADCOMMITTED;
SQLConnection1.StartTransaction(transacao);

SQLConnection1.Commit(transacao);
end;

porem nada mudou fui no banco oracle tentei comitar la e nem assim a informacao foi gravada.

Alguem sabe o q pode ser feito ?

Agradeço pela colaboração.


Tulio_am

Tulio_am

Curtidas 0

Respostas

Macario

Macario

04/12/2006

Ola.

O que voce esta executando entre o inicio e o final da transacao?

Digamos que voce tenha um ApplyUpdates(0) ai no meio.
Voce precisa verificar se esta ocorrendo tudo corretamente para entao poder efetuar o commit da transacao.


Veja: [url=http://forum.clubedelphi.net/viewtopic.php?t=58547&start=0&postdays=0&postorder=asc&highlight=transa¬E7¬E3ourl] Transações com DbExpress de forma Bidirecional[/url]

espero que lhe ajude.
8)


GOSTEI 0
Tulio_am

Tulio_am

04/12/2006

Boa Tarde!

Marcario tentei dar o ApplyUpdates(0) e ocorreu o seguinte erro:

ORA-01722: Numero Invalido.

Obs: estava usando DBNavigator ele nao da o ApplyUpdates automaticamente?

Obrigado pela colaboração!


GOSTEI 0
Titanius

Titanius

04/12/2006

Boa Tarde! Marcario tentei dar o ApplyUpdates(0) e ocorreu o seguinte erro: ORA-01722: Numero Invalido. Obs: estava usando DBNavigator ele nao da o ApplyUpdates automaticamente? Obrigado pela colaboração!

Nenhum componente dá o ApplyUpdates no CDS automaticamente, você tem que fazer isso na mão.. :D

[]s


GOSTEI 0
Macario

Macario

04/12/2006

Olá [b:9b27fca416]tulio_am[/b:9b27fca416].

Se voce quiser continuar a usar o dbnavigator, você poderá tratar o evento do Button referente ao Post, para quando ele for clicado disparar em sequencia um ApplyUpdates.

Use o evento OnClick do dbNavigator tipo:
begin
  case Button of
  nbInsert: //Faz tal coisa
  nbEdit: //Faz tal coisa
  nbDelete: ClientDataSet.ApplyUpdate(0);
  nbPost: ClientDataSet.ApplyUpdate(0);
  nbCancel: ClientDataSet.CancelUpdates;
  end;
  {: }
 end;



Espero que lhe ajude. 8)


GOSTEI 0
POSTAR