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 :

Suppression des champs d'une table


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Par défaut Suppression des champs d'une table
    Bonsoir à toutes et à tous,

    Encore un souci avec ma base de données...

    Lorsque je veux supprimer dynamiquement un champ d'une table, j'utilise le code SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query.close;
    Query.SQL.text:='ALTER TABLE XXX DROP YYY';
    Query.ExecSQL;
    Ça fonctionne sauf que juste après l'exécution s'interrompt avec l'erreur:

    unsuccesfull metadata update column YYY does not exist in Table/View XXX
    D'où ça peut venir ?

    J'utilise aussi un DataSetProvider, un ClientDataSet et un DataSource relié à un DBGrid.

    Merci de votre aide.

  2. #2
    Membre confirmé Avatar de abdelghani_k
    Inscrit en
    Octobre 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2002
    Messages : 184
    Par défaut
    Je crois que tu utlises des champs persistants (YYY est un champ persistant dans la table XXX). Un champ persistant est un champ ajouté dans l'éditeur de champ de la table (double clic sur la table).

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Par défaut
    Merci pour ta réponse abdelghani_k.

    J'ai bien vérifié et l'éditeur de champ de la table est vide (le Query, le ClientDataSet et le DBGrid) .

    Une autre idée ?

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Slt;
    unsuccesfull metadata update column YYY does not exist in Table/View XXX
    c'est le champ qui n'existe pas dans ta table , vérifiée l'orthographe !!!! ou peut étre le champ réellement n'existe pas !!!!
    donne plus de détails sur ta table

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 105
    Par défaut
    Bonjour,

    Il n'existe plus parce que je l'ai volontairement supprimé dynamiquement...

    Pour être plus précis j'ai une table avec 2 champs fixes que je dois garder ('NMR' et 'NOM') et d'autres champs qui varient en fonctions des besoins ('CHAMP1', 'CHAMP2', 'CHAMP3', ..., 'CHAMPn'). Je souhaite donc effacer les champs intitulés 'CHAMPx' et ensuite les recréer en fonction de mon nouveau n, qui peut varier à chaque utilisation (j'espère être assez clair ).

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    j:=Query.FieldCount;
    for i := 0 to j - 1 do begin
      nom:=Query.Fields[i].FullName;
      if leftstr(nom,5)='CHAMP' then begin
        Query.Close;
        Query.SQL.Text:='ALTER TABLE XXX DROP '+ nom;
        Query.ExecSQL;
        j:=j-1;
      end;
    end;

  6. #6
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Re , excuse je veut pas m'ingérai mais pourquoi enlevé un champ déjà ajouté , et si ce champ contiens des informations là vous aurai une perte d'information très importante....

  7. #7
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Si tu travailles vraiment avec le même Query (DML et DDL) cela ne marchera pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Query.SQL.Text:='ALTER TABLE XXX DROP '+ nom;
    ExecSQL;
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom:=Query.Fields[i].FullName;
    A ce moment que contient Fields ? Pas sûr que ce soit encore les champs de la table.

    Il n'y a pas d'autre solution que de manipuler dynamiquement cette table ?

    @+ Claudius

Discussions similaires

  1. [AC-2007] Suppression des champs d'une table
    Par Cyril dLL dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 24/11/2013, 08h48
  2. Procedure de suppressions des champs d'une table
    Par Kiriyama dans le forum Sybase
    Réponses: 1
    Dernier message: 07/04/2009, 16h47
  3. récupérer la liste des noms des champs d'une table
    Par la_didise dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 16h55
  4. nom des champs d'une table
    Par K-ZimiR dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/04/2004, 14h21
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

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