Olá Marcelo,
nós tratamos da seguinte forma: na classe TFrmBase (todas herdam desta)
temos a seguinte procedure
procedure TFrmBase.InicializarTransacao(Inicializar: Boolean);
begin
TD.TransactionID := TD.TransactionID + 1;
if Inicializar and (Not DdmSistema.Conexao.InTransaction) then
DdmSistema.conexao.StartTransaction(TD);
end;
e para finalizar
procedure TFrmBase.FinalizarTransacao(Salvando: Boolean);
begin
if DdmSistema.conexao.InTransaction then
if Salvando then
DdmSistema.conexao.Commit(TD)
else
DdmSistema.conexao.Rollback(TD);
end;
Sendo que:
DdmSistema: TDataModule
conexao: TSqlConnection
TD: TTransactionDesc;
Assim quando precisamos de um bloco de transação, fazemos o seguinte:
InicializarTransacao(True);
Try
...
...
...
FinalizarTransacao(True);
Except
FinalizarTransacao(False);
End;
Nunca falhou.
Att,
Celso Lorenzetti
www.sysrs.com.br
----- Original Message -----
From: "Marcelo Silva" <[email protected]>
To: "Comunidade PostgreSQL Brasileira" <[email protected]>
Sent: Thursday, August 19, 2010 11:15 AM
Subject: Re: [pgbr-geral] Commit + Rollback no postgres
Um... com sua dica resolvi fazer uma pesquisa diferente no "oraculo"
postgres + zeos + delphi + commit
e cheguei na pagina
http://www.activedelphi.com.br/forum/viewtopic.php?t=33645
que me clareou...
Consegui o que preciso,
Obrigado a todos por mais essa :)
Marcelo Silva
------------------------------------------------
msn: [email protected]
cel.: (11) 9693-4251
Kubuntu User number is # 24362
----- Original Message -----
From: "Victor Hugo" <[email protected]>
To: "Comunidade PostgreSQL Brasileira" <[email protected]>
Sent: Thursday, August 19, 2010 10:31 AM
Subject: Re: [pgbr-geral] Commit + Rollback no postgres
Marcelo,
Antes de vc abrir uma query de UPDATE , INSERT ou DELETE, mande a
instrução para o banco com o comando BEGIN,
Execute a os comandos e depois comando COMMIT se não ROLLBACK;
abraços.
Victor Hugo
Em 19 de agosto de 2010 10:26, Marcelo Silva <[email protected]> escreveu:
> Pois é, eu já sabia que o Postgres é bem mais completo que o MySQL... e
> achei estranho o Zeos dar esse erro. Neste mesmo componente tem outra
> propriedade "AutoCommit" , como o nome diz, se estiver True ele
> "AutoComita"
> senão ele dá um Rollback, mas na pratica isso não acontece, mesmo estando
> False ele grava por definitivo na base...
>
> Bem vou estudar melhor o caso pra ver onde está a solução... de qualquer
> forma, agradeço a ajuda dos colegas
>
> Marcelo Silva
> ------------------------------------------------
> msn: [email protected]
> cel.: (11) 9693-4251
> Kubuntu User number is # 24362
>
>
> ----- Original Message -----
> From: "Roberto Mello" <[email protected]>
> To: "Comunidade PostgreSQL Brasileira"
> <[email protected]>
> Sent: Thursday, August 19, 2010 8:29 AM
> Subject: Re: [pgbr-geral] Commit + Rollback no postgres
>
>
> 2010/8/18 Marcelo Silva <[email protected]>:
>>
>> Imagino que deve existir Rollback no Postgres, mas tentando ativar a
>> propriedade "TransactIsolationLevel" no componete Zeos (ZConnection) ele
>> diz:
>
> O PostgreSQL suporta transações e toda a mecânica para ACID, e há
> muito mais tempo e de forma bem mais robusta que o MySQL.
>
> Resta ler a documentação da versão do Zeos que você usa para ver o que
> está acontecendo, ou mesmo do adaptador do Zeos para PostgreSQL, que
> pode não estar completamente implementado. Não sei, pois não conheço o
> produto. Mas a falha está ou no uso, ou na escrita do Zeos, não no
> PostgreSQL.
>
> Roberto
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
--
[]´s
Victor Hugo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral