IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Un key violation agacant


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut Un key violation agacant
    Bonsoir à tous,

    J'ai un certain nombre de tables paradox creer dynamiquement et aprés le processus de creation j'ouvre l'une d'entre elle pour inserer le 1er enregistrement et hop ! aprés le post j'obtiens un KEY VIOLATION !!
    pourtant la table est bel et bien vide (!!!!?????) . L'ennui c'est que cela ne se produit dans toutes les machines ? Sur ma machine je n'ai pas ce prob, chez certains oui chez d'autres non ......

    CONFIG :
    BDE 5.01
    TABLE : PARADOX

    Merci de m'eclairer

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Peux tu nous fournir la structure de la table où cela plante ainsi que le code d'insertion que tu utilises.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut
    Bonjour,

    Les controles sont en DBEdit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DBNavigator1.BtnClick(nbInsert);
    DBNavigator1.BtnClick(nbPost);
    DM1.MyDb.ApplyUpdates([DM1.Article]);
    La strucrure de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    CREATE TABLE article (
       Num_Ligne INTEGER,
       Code_article CHAR(25),
       Code_famille CHAR(8),
       Code_UM INTEGER,
       Nom_Article CHAR(80),
       Pu_achat_HT CURRENCY,
       Pu_Vente_HT CURRENCY,
       Marge NUMBER,
       Stock_Min NUMBER,
       Stock_Max NUMBER,
       code_taxe SMALLINT,
       Type_Calcul SMALLINT,
       STOCK_GERE BOOLEAN,
       Stock_Initial NUMBER,
       Code_Cond INTEGER,
       Reference CHAR(30),
       Stock_actuel NUMBER,
       BLOQUE BOOLEAN,
       QTE_COLIS NUMBER,
       POID_BRUT NUMBER,
       POID_NET NUMBER,
       Code_depot CHAR(8),
       PAMP CURRENCY,
       Raz_stock NUMBER,
       Ecart NUMBER,
       Theorique NUMBER,
       Valid_raz_stock BOOLEAN,
       En_Cde_Four NUMBER,
       En_Cde_Client NUMBER,
       Date_fabrication DATE,
       Date_peremption DATE,
       Nb_Jour_Alerte SMALLINT,
       Date_Alerte DATE,
       Compose BOOLEAN,
       Valider BOOLEAN,
       Element BOOLEAN,
       Taux_Taxe NUMBER,
       Enable_Tarif BOOLEAN,
       Code_Marque INTEGER,
       IsMin BOOLEAN,
       IsMax BOOLEAN,
       Code_Four CHAR(8));
    Merci

  4. #4
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut
    un oubli....pardon

    dans l'evenement OnNewRecord de la table j'insere l'identifiant ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       ArticleNum_Ligne.Value:=GetLastItem('select max(num_ligne) as numero from article');
    Dans GetLastItem je récupere le dernier numéro et il me le renvoi incrémenter de +1 que j'affecte au champ num_ligne (clé primaire) ca marche pour toutes les tables.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 596
    Billets dans le blog
    65
    Par défaut
    moi je ne vois pas de définition de la clé dans le CREATE de ta table

    PRIMARY KEY (Num_Ligne) ?

    à moins qu'il soit créé indépendamment ?

  6. #6
    Membre éprouvé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Par défaut
    pardon ....non je n'ai pas remarquer ca dans le code que j'ai posté la clé primaire existe bien . Dans le module de donnée et dans la colonne Key l'etoile apparait pour le champ num_ligne d'ailleur à la création en dynamique le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //index primaire********
    Table.IndexDefs.Add('','Num_Ligne',[ixPrimary]);
     
    //indexes secondaire
    Table.IndexDefs.Add('CodeArticle','Code_Article',[ixCaseInsensitive]);
    Table.IndexDefs.Add('CodeFamille','CODE_FAMILLE',[ixCaseInsensitive]);
    Table.IndexDefs.Add('NomArticle','NOM_ARTICLE',[ixCaseInsensitive]);
    Table.CreateTable;

Discussions similaires

  1. Erreur sql duplicate key violates unique constaint
    Par valvalval dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/06/2008, 23h15
  2. Intercepter le message du pilote paradox (key violation)
    Par helmis dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/03/2008, 15h02
  3. Un key violation déroutant
    Par freud dans le forum Bases de données
    Réponses: 1
    Dernier message: 27/01/2008, 22h18
  4. Message : "Key violation"
    Par Interruption13h dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/02/2007, 02h06
  5. [Error] Key violation
    Par Furlaz dans le forum C++Builder
    Réponses: 5
    Dernier message: 14/06/2006, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo