Ce que tu est entrain de faire mon ami n’est pas bon point de vu optimisation ! car tu doit parcourir la table produit à chaque fois où tu voulais faire une insertion, et ça c’est mauvais.
L’idéale pour ta solution est de créer une table que tu nomme « cles » par exemple et dont la structure est comme suit
(nom_cle, valeur)
Par exemple ta table doit contenir le tuple (‘cle_produit’,100). (tout en supposant que 100 représente la clé du dernier produit inscrit, et dans le cas où la table produit est vide le tuple sera (‘cle_produit’,0) zéro car aucun enregistrement n’est inscrit )
Et comme ça tu n’a qu’a chercher la valeur du nom de clé (nom_cle) lorsque nom_cle=’cle_produit’ par la requête suivante:
select valeur from nom_cle where nom_cle=cle_produit
La requete te renvoi la valeur 100, et comme 100 est la clé du dernier produit enregistré tu n’a qu’a mettre :
Edit1.text :=inttostr(valeur_de_la_cle+1) ;
Après insertion du nouveau produit, n’oublie pas de mettre à jour la table cles par incrémentation du champ valeur du nom de la clé ‘cle_produit’.
Partager