j'ai un petit souci avec VB6 et SQLSEVEUR 2000.
J'ai cr=E9e une application en VB sous SQLSERVEUR et j'ai utilis=E9 2
tables , une pour la facturation et l'autre pour la numerotation
automatique.
Lorsqu'un op=E9rateur veut enregistrer les donn=E9es,=E7a lit d'abord le
dernier numero de la table numerotation pour donner automatiquement le
numero de la facture et l'op=E9rateur suivant prendre numero+1, j'ai
ger=E9 cette numerotation d'une mani=E8re que m=EAme si plusieurs
op=E9rateurs enregistrent simultanement =E7a ne pose pas probl=E8me mais
sur Access.Je viens de migrer vers SQLSERVEUR et j'ai essay=E9 de faire
le m=EAme schema quesur VB et Access. Je commence =E0 avoir des petits
soucis.=E7a marche bien s'il s'agit seulement de 2 op=E9rateur pour un
enregistrement des donn=E9es simultanement.Mais lorsque j'ai test=E9 pour
3 op=E9rateurs, voil=E0 le message qui s'affiche:
ERREUR D'EXECUTION '-2147217873(80040e2f): Violation de la contraint
PRIMARY KEY 'aaaaanumerotation_PK'.Impossible d'ins=E9rer une cl=E9 en
double dans l'objet 'numerotation'.
ma question , est ce qu'il n' y a pas un moyen retarder pour que l'un
enregistre apr=E8s l'autre, ainsi de suite.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud CLERET
"Legrenier" wrote in message news: Bonjour Tout le monde,
j'ai un petit souci avec VB6 et SQLSEVEUR 2000. J'ai crée une application en VB sous SQLSERVEUR et j'ai utilisé 2 tables , une pour la facturation et l'autre pour la numerotation automatique. Lorsqu'un opérateur veut enregistrer les données,ça lit d'abord le dernier numero de la table numerotation pour donner automatiquement le numero de la facture et l'opérateur suivant prendre numero+1, j'ai geré cette numerotation d'une manière que même si plusieurs opérateurs enregistrent simultanement ça ne pose pas problème mais sur Access.Je viens de migrer vers SQLSERVEUR et j'ai essayé de faire le même schema quesur VB et Access. Je commence à avoir des petits soucis.ça marche bien s'il s'agit seulement de 2 opérateur pour un enregistrement des données simultanement.Mais lorsque j'ai testé pour 3 opérateurs, voilà le message qui s'affiche: ERREUR D'EXECUTION '-2147217873(80040e2f): Violation de la contraint PRIMARY KEY 'aaaaanumerotation_PK'.Impossible d'insérer une clé en double dans l'objet 'numerotation'. ma question , est ce qu'il n' y a pas un moyen retarder pour que l'un enregistre après l'autre, ainsi de suite.
d'Avance Milles merci.
Bonjour,
Vous pouvez poser un lock de type exclusif lors de la lecture du numéro de facture via l'instruction WITH (XLOCK) puis insérer vos données, le tout englober dans une transaction. Ce principe vous permettra d'avoir des lectures et donc une numérotation unique afin de garantir l'unicité lors des insertions dans la table numerotation.
-- arno - http://www.dotnetguru2.org/acleret/
"Legrenier" <mtrobwa@yahoo.fr> wrote in message
news:1153568945.276253.80720@b28g2000cwb.googlegroups.com...
Bonjour Tout le monde,
j'ai un petit souci avec VB6 et SQLSEVEUR 2000.
J'ai crée une application en VB sous SQLSERVEUR et j'ai utilisé 2
tables , une pour la facturation et l'autre pour la numerotation
automatique.
Lorsqu'un opérateur veut enregistrer les données,ça lit d'abord le
dernier numero de la table numerotation pour donner automatiquement le
numero de la facture et l'opérateur suivant prendre numero+1, j'ai
geré cette numerotation d'une manière que même si plusieurs
opérateurs enregistrent simultanement ça ne pose pas problème mais
sur Access.Je viens de migrer vers SQLSERVEUR et j'ai essayé de faire
le même schema quesur VB et Access. Je commence à avoir des petits
soucis.ça marche bien s'il s'agit seulement de 2 opérateur pour un
enregistrement des données simultanement.Mais lorsque j'ai testé pour
3 opérateurs, voilà le message qui s'affiche:
ERREUR D'EXECUTION '-2147217873(80040e2f): Violation de la contraint
PRIMARY KEY 'aaaaanumerotation_PK'.Impossible d'insérer une clé en
double dans l'objet 'numerotation'.
ma question , est ce qu'il n' y a pas un moyen retarder pour que l'un
enregistre après l'autre, ainsi de suite.
d'Avance Milles merci.
Bonjour,
Vous pouvez poser un lock de type exclusif lors de la lecture du numéro de
facture via l'instruction WITH (XLOCK) puis insérer vos données, le tout
englober dans une transaction. Ce principe vous permettra d'avoir des
lectures et donc une numérotation unique afin de garantir l'unicité lors des
insertions dans la table numerotation.
"Legrenier" wrote in message news: Bonjour Tout le monde,
j'ai un petit souci avec VB6 et SQLSEVEUR 2000. J'ai crée une application en VB sous SQLSERVEUR et j'ai utilisé 2 tables , une pour la facturation et l'autre pour la numerotation automatique. Lorsqu'un opérateur veut enregistrer les données,ça lit d'abord le dernier numero de la table numerotation pour donner automatiquement le numero de la facture et l'opérateur suivant prendre numero+1, j'ai geré cette numerotation d'une manière que même si plusieurs opérateurs enregistrent simultanement ça ne pose pas problème mais sur Access.Je viens de migrer vers SQLSERVEUR et j'ai essayé de faire le même schema quesur VB et Access. Je commence à avoir des petits soucis.ça marche bien s'il s'agit seulement de 2 opérateur pour un enregistrement des données simultanement.Mais lorsque j'ai testé pour 3 opérateurs, voilà le message qui s'affiche: ERREUR D'EXECUTION '-2147217873(80040e2f): Violation de la contraint PRIMARY KEY 'aaaaanumerotation_PK'.Impossible d'insérer une clé en double dans l'objet 'numerotation'. ma question , est ce qu'il n' y a pas un moyen retarder pour que l'un enregistre après l'autre, ainsi de suite.
d'Avance Milles merci.
Bonjour,
Vous pouvez poser un lock de type exclusif lors de la lecture du numéro de facture via l'instruction WITH (XLOCK) puis insérer vos données, le tout englober dans une transaction. Ce principe vous permettra d'avoir des lectures et donc une numérotation unique afin de garantir l'unicité lors des insertions dans la table numerotation.