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 :

Modification de la structure de fichier paradox


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué Avatar de abdelghani_k
    Inscrit en
    Octobre 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Octobre 2002
    Messages : 184
    Points : 150
    Points
    150
    Par défaut Modification de la structure de fichier paradox
    Bonjour,

    Comment modifier la structure d'un fichier paradox en insérant un champ au milieu des autres champs, par exemple :

    un fichier qui contient (c1,c2,c3,c4), j'insère un champ c5 à la position 3,
    le fichier devient (c1,c2,c5,c3,c4).

    j'ai utilisé TQuery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with Query1 do
    begin
      SQL.Clear;
      SQL.Add('ALTER TABLE fichier ADD c5 CHAR(20)');
      ExecSQL;
    end;
    mais le champ est ajouté à la fin (c1,c2,c3,c4,c5)

    Je sais que l'ordre des champs n'est pas vraiment important mais je cherche cet ordre.

    Merci.
    Réussir c'est faire le bon choix.

    Voici ma supper fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fonction ChercherSolution(User_id:login in www.developper.com):Vrai;

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    c'est très normal qu'il soit à la fin mais quel importance de vouloir l'avoir à un emplacement précis?
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    Membre habitué Avatar de abdelghani_k
    Inscrit en
    Octobre 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Octobre 2002
    Messages : 184
    Points : 150
    Points
    150
    Par défaut
    On en a besoin dans la clé primaire des fois.
    Réussir c'est faire le bon choix.

    Voici ma supper fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fonction ChercherSolution(User_id:login in www.developper.com):Vrai;

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par abdelghani_k Voir le message
    On en a besoin dans la clé primaire des fois.
    mais ce n'est pas obligatoire qu'il soit premier pour être une clé primaire. pour preuve, continues avec ton exemple, défines le champs comme clé primaire en vérifiant bien sûr que ta table ne contient pas de clés primaires auparavant, alimente ta table avec des données et enfin fais un test; simple affichage de ta table dans un DBGrid avec l'activation de la clé primaire que tu viens de créer. tu vas t'appercevoir, que tes enregistrements sont bel et bien ordonnés suivant la clé primaire même si celle-ci est la dernière dans la structure de ta table.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Pour les tables paradox, les champs qui constituent la clef primaire doivent se suivre et le 1er champ de la clef primaire doit être le premier champ de la table, donc l'ordre est très important.
    Pour contourner, tu crées une nouvelle table temporaire avec les champs dans l'ordre, tu recopies ton ancienne table dans la nouvelle enregistrement par enregistrement champ par champ (attention au décalage), tu supprimes l'ancienne table et tu renommes ta table tempo avec le nom de l'ancienne table.
    Sinon je pense que qu'il existe des méthodes de la classe TTable pour modifier la structure de la table pour y ajouter ton champ où tu veux (regarder les méthode de la propriété FieldDefs), mais je doute que tu puisses y arriver avec une requête SQL de type ALTER.

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    je ne vois pas trop d'importance à l'ordre du moment que le SQL permet, en général, toutes sortes de manipulation; ordre, agrégation, grouper les données, etc..
    à mon sens faut ce concentrer sur la structure des données et sur les requêtes qu'on peut se poser mais l'ordre des champs à l'intérieur d'une table ça j'en doute fort.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  7. #7
    Membre habitué Avatar de abdelghani_k
    Inscrit en
    Octobre 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Octobre 2002
    Messages : 184
    Points : 150
    Points
    150
    Par défaut
    Citation Envoyé par Benj2007 Voir le message
    Pour les tables paradox, les champs qui constituent la clef primaire doivent se suivre et le 1er champ de la clef primaire doit être le premier champ de la table, donc l'ordre est très important.
    Pour contourner, tu crées une nouvelle table temporaire avec les champs dans l'ordre, tu recopies ton ancienne table dans la nouvelle enregistrement par enregistrement champ par champ (attention au décalage), tu supprimes l'ancienne table et tu renommes ta table tempo avec le nom de l'ancienne table.
    J'ai implémenté cette solution :
    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
      Query1.SQL.Clear;
      Query1.SQL.Text:='CREATE TABLE TMP (C1 CHAR(2),C2 CHAR(3),C3 CHAR(4),C4 CHAR(5))';
      Query1.ExecSQL;
     
      Query1.SQL.Clear;
      Query1.SQL.Text:='INSERT INTO TMP SELECT * FROM T1';
      Query1.ExecSQL;
     
      Query1.SQL.Clear;
      Query1.SQL.Text:='DROP TABLE T1';
      Query1.ExecSQL;
     
      Query1.SQL.Clear;
      Query1.SQL.Text:='CREATE TABLE T1 (C1 CHAR(2),C2 CHAR(3),C5 CHAR(2),C3 CHAR(4),C4 CHAR(5))';
      Query1.ExecSQL;
     
      Query1.SQL.Clear;
      Query1.SQL.Text:='INSERT INTO T1(C1, C2, C3, C4) SELECT * FROM TMP';
      Query1.ExecSQL;
    Il y a toujours des solutions.

    Citation Envoyé par Benj2007 Voir le message
    Sinon je pense que qu'il existe des méthodes de la classe TTable pour modifier la structure de la table pour y ajouter ton champ où tu veux (regarder les méthode de la propriété FieldDefs), mais je doute que tu puisses y arriver avec une requête SQL de type ALTER.
    C'est ce que je cherche.
    Réussir c'est faire le bon choix.

    Voici ma supper fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fonction ChercherSolution(User_id:login in www.developper.com):Vrai;

  8. #8
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Re;

    je suis de prêt cette discussion mais je ne vois toujours pas l'utilité à chercher un ordre particulier à la structure du moment que lors d'un affichage on peut avoir l'ordre quand veut.

    peut-être que j'ai pas compris la question, sinon peux-tu donner la finalité de l'objectif cherché.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

Discussions similaires

  1. Modification de la structure d'un fichier XML
    Par Alphacom dans le forum VB.NET
    Réponses: 5
    Dernier message: 08/08/2014, 11h23
  2. [WD11] modification automatique de structure des fichiers
    Par moncef_abderrahim dans le forum WinDev
    Réponses: 6
    Dernier message: 05/09/2013, 21h06
  3. Réponses: 2
    Dernier message: 26/04/2009, 18h31
  4. Sauvegarder structure dans fichier...
    Par Kineas dans le forum C++
    Réponses: 3
    Dernier message: 17/03/2005, 18h57
  5. Entete de fichier PARADOX endommagée
    Par Chonchon dans le forum Bases de données
    Réponses: 6
    Dernier message: 24/06/2004, 17h12

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