Bonjour
Le mieux ici est de faire une proc. stoc. qui va enregistrer la ligne, récupérer l'id (que je suppose autoincrémenté dans la base) et le retourner au client.
Pour le récupérer suivant le type de SGBD :
- SQL SERVER : en utilisant la fonction - ORACLE :
SELECT NomSequence.CurrVal from dual
- autre : voir doc.
plutôt que faire un SELECT sur la table.
Ainsi, tout s'exécutera dans une transaction unique (implicite) et pas de problème possible.
L'autre possibilité est d'utiliser un GUID comme id créé coté client plutôt qu'un champ IDENTITY dans la base, mais la première solution a l'avantage de ne pas nécessiter de changement dans le schéma de la base.
Partager