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

C++Builder Discussion :

Modification de la taille d'un champs (BDD paradox)


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Par défaut Modification de la taille d'un champs (BDD paradox)
    Bonjour,

    Je souhaite modifier la taille d'un champ d'une table dans une BDD Paradox sous Borland C++ builder.

    J'ai besoin de faire une nouvelle version de mon Exe en concervant les données déjà existantes, mais en faisant passer un champ de 5 à 7 caractères. Je devrait l'installer sur 2 postes.

    Voilà comment je compte faire :

    - Je crée une nouvelle version qui tient compte du nouveau format de mes données et une fonction de sauvegarde de mes tables dans des fichiers texte et une fonction de restauration.

    - J'installe cette version sur le poste à migrer sans la BDD.

    - je sauvegarde la BDD en fichier texte grace à ma moulinette de sauvegarde.

    - Je modifie la BDD en l'ecrasant par une BDD que j'aurai modifé sur mon poste de dev. (voir plus loin).

    - je restaure mes données avec ma moulinette de restauration.

    - et j'installe une version definitive sans les moulinettes. Ouf !

    Un peu lourd non ?!?

    Pour modifier la table (par l'explorateur de BDD de C++ Builder 6),
    j'ai essayé de modifier un champ d'une de mes tables par :
    ALTER TABLE matable MODIFY COLUMN colonne VARCHAR(7)

    mais visiblement MODIFY n'est pas connu par SQL dans cette version.

    Comment faire et est-ce qu'il n'y aurai pas une méthode un peu moins lourde ??

    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Regardes le principe de cette modification de table

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Par défaut Modif champ
    Merci pour le lien.

    Pour modifier la taille de mon champ XXX, j'ai fait :

    1- supression du champ de l'ancienne taille (sans transfert des données car je le traite par ailleurs (sauvegarde des données dans un fichier texte)
    ALTER TABLE matable DROP XXX

    2- creation d'un nouveau champ avec ma bonne taille.
    ALTER TABLE matable ADD XXX_provisoire VARCHAR(7)

    Pb ? comment remettre mon champ en 1ere position et lui attribuer la cle primaire ?

  4. #4
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    L'ordre des champs dans la table n'a aucune influence sur les PRIMARY KEY. Par contre, tu dois ajouter cette commande pour faire de ton champ la clé primaire.

    Normalement, ceci devrait fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE matable ADD XXX_provisoire VARCHAR(7) PRIMARY KEY
    Nb : Si tu sauvegardes tes données dans un fichier, tu n'es pas obligé de passé par un champ temporaire.

    Tu obtiens donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE matable ADD XXX VARCHAR(7) PRIMARY KEY

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 54
    Par défaut Résolu
    En fait, j'ai trouvé comment modifier la bdd plus simplement.
    Avec C++Builder est fourni un outil de gestion de bdd (Module base de données) séparé de C++ Builder.

    Avec lui on peut créer et modifier une base. Pour ma modification, je suis allé dans :
    Outils->Utilitaires->Restructuration

    Du coup il me faut une minute pour faire la modif et donc je ferai la modif depuis mon PC de dev en copiant la bdd du poste à upgrade sur mon PC.

    Merci pour ton aide.

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

Discussions similaires

  1. [WD11] drotation et modification de la taille du champ image
    Par patrickpa dans le forum WinDev
    Réponses: 8
    Dernier message: 29/07/2009, 09h45
  2. modification taille d'un champs
    Par c+cool dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/09/2008, 16h21
  3. Modifier la taille d'un champ
    Par sbeu dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 23/03/2005, 16h32
  4. [FLASH MX] Modification de la taille d'un bitmap
    Par bobgeldof7 dans le forum Flash
    Réponses: 5
    Dernier message: 21/11/2004, 14h08
  5. modification champs BDD
    Par jeff06_2 dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/06/2004, 20h10

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