Bonjour,
j'utilise un TADOQuery pour requeter une table SQL Serveur 2000,
Chaque enregistrement de la table possède une clef unique de type AutoInc,
Les enregistrements sont affichés dans une DBGRID,
La propriété LockType du TADOQuery est positionnée à "ltBatchOptimistic"
Ainsi, les actions effectuées dans la DBGRID ne sont pas envoyées à SQL Serveur,
Les actions INSERT, UPDATE et DELETE sont gérées avec des procédures stockées.
Déroulement du INSERT :
l'utilisateur insère un nouvel enregistrement dans la DBGRID (donc dans le TADOQuery)
(toutes les valeurs sont renseignées sauf la valeur de la clef)
lors de la validation de l'enregistrement, la procédure stockée 'INSERT' est appelée.
Elle ajoute l'enregistrement dans la table SQL Serveur et retourne la valeur de la clef
PROBLEME :
Comment affecter la valeur de la clef dans l'enregistrement créé dans le TADOQuery ?
En effet, Delphi refuse de forcer l'attribution d'une valeur à un champ AutoInc.
Bien entendu, il suffit de fermer et ré-ouvrir le TADOQuery pour l'actualiser
mais cette solution me semble bien coûteuse alors que l'on à déjà toutes les données !
Merci pour vos réponses ou idées.
Partager