2009-12-29 4 views
1

J'utilise DBExpress avec blackfish.Comment faire multi transaction dans DBExpress

Comment puis-je faire plusieurs transactions?

J'ai plusieurs GRID tous en édition à la fois et tous devront être sauvegardés en même temps. Le début de l'édition et de la publication doivent être déterminés par l'utilisateur final, au fur et à mesure qu'il travaille, et à différents endroits de l'application, ce qui est difficile à faire en une seule transaction.

MISE À JOUR:

OK, le problème est que, pour l'application fonctionne en concomitance et je dois engager de nouvelles données le plus tôt possible afin que les autres utilisateurs peuvent y avoir accès. Par conséquent, les informations sur les grilles seront validées peu de temps après la publication, ou avec la poste.

Répondre

1

Une transaction fonctionne «perse» sur divers ensembles de données. Si vous travaillez avec dbexpress c'est encore mieux. Simplement, laissez votre enduser faire tout le modifier, supprimer & messages nécessaires sur les différents réseau et lorsque vous avez besoin pour sauver son travail faire quelque chose comme:

var 
mytransaction : TDBXTransaction; 
begin 
    mytransaction := sqlconnection1.BeginTransaction; 
    try 
     if clientdataset1.ChangeCount > 0 then clientdataset1.ApplyUpdates(0); 
     ... 
     if clientdatasetn.ChangeCount > 0 then clientdatasetn.ApplyUpdates(0); 
     sqlconnection1.CommitFreeAndNil(mytransaction); 
    except 
    sqlconnection1.RollbackFreeAndNil(mytransaction); 
    end; 
end; 
+0

Avec votre approche, je commettra que lorsque l'option ou de l'application ferme – Jlouro

+0

ok le faire dans l'événement afterpost –

Questions connexes