Transações com ID

Firebird

10/08/2004

Ola a todos...

Tenho uma duvida , pois eu uso a seguinte sintaxe para a transação onde alem da sintaxe padrao para transações eu coloco um ID para identifica-la no servidor ...

try
[color=red:f27d3721db]TrD.TransactionID:=1;[/color:f27d3721db]
TrD.IsolationLevel:=xilReadCommitted;
TrD.IsolationLevel := xilREADCOMMITTED;
SQLConnection.StartTransaction( TrD );

// Aqui seriam feitos os updates, deletes e inserts
SQLConnection.Commit( TrD );
except
SQLConnection.Rollback( TrD );
end;

Gostaria de saber se isto é viavel ou não, se terei problemas com esse tipo de controle (ID).


Alexrol

Alexrol

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

10/08/2004

Colega,

Está correto e vc não terá problemas, apenas atente para o fato de que uma mesma ID não pode ser usada para abrir para outra transação enquanto a anterior de mesma ID não for fechada (commit ou rollback)...
try 
  TrD.TransactionID:=1; 
  TrD.IsolationLevel:= xilREADCOMMITTED; 
  TrD2.TransactionID:= 1;
  TrD2.IsolationLevel:= xilREADCOMMITTED; 
  SQLConnection.StartTransaction( TrD ); 
  //**** isto geraria erro pq as duas transações tem a mesma ID ****
  SQLConnection.StartTransaction( TrD2 ); 

  SQLConnection.Commit( TrD ); 
except 
  SQLConnection.Rollback( TrD ); 
end; 


Para usar múltiplas transações simultâneas, basta que vc use IDs diferentes para elas... logicamente se o SGBD suportar múltiplas transações, caso contrário todas as operações só podem estar envoltas em uma única transação, então a ID não fará diferença...

Espero ter ajudado...
T+


GOSTEI 0
Samuel Ferreira

Samuel Ferreira

10/08/2004

Pelo menos a mim, ajudou bastante. Valeu.
GOSTEI 0
POSTAR