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 :

[Delphi Berlin + Firebird3]erreur lors du suppression d'un enregistrement


Sujet :

Bases de données Delphi

  1. #1
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut [Delphi Berlin + Firebird3]erreur lors du suppression d'un enregistrement
    Bonjour a tous ,
    j'utilise Delphi Berlin + Firebird 3.
    pour accédé a ma base de donnée , j'utilise FireDac.
    j'ai une table qui contient un seul enregistrement pas de clé primaire .
    lors du suppression d'un enregistrement (avec le dbnavigateur) j'obtiens ce message d'erreur :

    Nom : ErreurDeleteFireDac.png
Affichages : 225
Taille : 17,1 Ko
    avez vous une idée SVP .

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    ne pas avoir de clé primaire n'est pas une bonne idée

    la table ne contient qu'un seul enregistrement ? c'est surprenant si le delete en supprime deux
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut
    Merci Paul pour la réponse.
    1- la table contient plus de 10 enregistrements.
    2- est une nécessité d'avoir une clé primaire pour n'importe quel table dans une base de donnée?

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par aimer_Delphi Voir le message
    Merci Paul pour la réponse.
    1- la table contient plus de 10 enregistrements.
    2- est une nécessité d'avoir une clé primaire pour n'importe quel table dans une base de donnée?
    la clé primaire est LE moyen d'identifier un enregistrement, si cette clé n'existe pas, il est hasardeux de gérer les enregistrements. Prenons une table de noms, sans identifiant unique, impossible de gérer des homonymes (sauf à pousser le test sur tous les champs de la base à chaque fois en espérant qu'au moins un champ diffère entre les deux)....avec une clé primaire on peut gérer des doublons alors que sans cela c'est impossible de les distinguer, ce qui peut amener à des suppressions multiples.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    L'option upWhereAll est là pour pallier à ce problème, toutefois il est bien mieux d'avoir une clé primaire
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    L'option upWhereAll est là pour pallier à ce problème, toutefois il est bien mieux d'avoir une clé primaire
    Merci Sergio pour la réponse ,


    L'option upWhereAll n'a pas marché avec moi.
    la solution c'est bien de définir une clé primaire pour la table.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PrestaShop] message erreur lors de suppression personnalisation panier prestashop 1.6
    Par kate59 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 18/03/2016, 15h52
  2. [Débutant] Erreur lors de suppression de ligne dans un tableau
    Par Tiji78 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 06/02/2012, 10h51
  3. gérer l'erreur lors de suppression d'un fichier avec la commande KILL
    Par samus535 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/12/2009, 09h57
  4. Erreur 3167 sur suppression d'un enregistrement
    Par moustika dans le forum Access
    Réponses: 6
    Dernier message: 25/09/2006, 17h41
  5. Réponses: 14
    Dernier message: 04/05/2006, 07h40

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