Transaction qu'est-ce qui change

ancien = DEBUT TRANSACTION, nouveau = dataStore.startTransaction, et idem pour valider et annuler…

Tant que le datastore est la base de données 4D “courante”, je ne comprends pas les différences entre l’ancien et le nouveau en lisant la doc. Je crois comprendre que la portée est le process, que c’est sur toute opération sur les données, etc. mais n’en suis même pas certain. Quelqu’un peut me renseigner ?

Bonjour Arnaud,

sans avoir réellement joué avec, je dirai que vu que ton datastore peut être ‘externe’, cela te permet de sécuriser une série d’action dessus

Oui, ça j’avais compris, ma question ne porte sur l’utilisation des nouvelles commandes avec le datastore “interne”.

ORDA n’est pas mentionné dans les anciennes commandes, ça dit juste “toutes les modifications effectuées sur les données de la base dans le process”. Je suppose que c’est compris, pas vérifié.

Les nouvelles traitent https://doc.4d.com/4Dv18/4D/18/dataStorestartTransaction.305-4688526.fr.html"classique" comme ORDA>. La portée me semble être https://doc.4d.com/4Dv18/4D/18/dataStorecancelTransaction.305-4688550.fr.htmlle process>, comme les anciennes.

Bref, si je dois faire une transaction, je ne sais que choisir entre l’ancien et le moderne. Je me demande même si on peut “croiser” les deux, genre :
dataStore.startTransaction( )
//…
VALIDATE TRANSACTION

Ben je dirai que si tu est sur la vague ORDA, utilises ce qui va avec: la voie moderne quitte à être cohérent d’un point de vue commandes.

Patrick

Bonjour,

Effectivement startTransaction() et START TRANSACTION font la même chose si on travaille sur la base courante avec ORDA (main datastore retourné par la commande ds).
La member méthode startTransaction() est utile pour démarrer une transaction sur un remote datastore et pour faire du code générique sur un objet datastore qui peut être soit le main datastore (ds) soit un remote datastore (https://doc.4d.com/4Dv18R2/4D/18-R2/dataStorestartTransaction.305-4803832.en.html)

N.B. N’oubliez pas aussi qu’un record verrouillé avec classic 4D est verrouillé pour ORDA.

Merci beaucoup, Marie-Sophie. Je me disais qu’au niveau moteur une transaction reste une transaction, logique… Je pense qu’il serait bon que la doc le précise, on peut faire beaucoup de mal avec des transactions mal fagotées !
Tu réserverais plutôt le nouveau jeu de commandes aux remote, pour la clarté du code ? Ou tu n’utiliserais plus que le nouveau ?