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

4D Discussion :

Modifier le nom d'un champ par programmation


Sujet :

4D

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 10
    Points
    10
    Par défaut Modifier le nom d'un champ par programmation
    Bonjour, comme le titre de la discussion, j'aimerais modifier le nom d'un champ par programmation (pas le titre).

    Cela fais déjà bien trop longtemps que j'ai des espaces et des accents dans mes 200 tables de 500 champs chacune, vous comprendrez que tout faire à la main semble un peu désespéré

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Points : 66
    Points
    66
    Par défaut
    Bonjour, à ma connaissance ce n'est pas possible dans les versions modernes de 4D, même en langage SQL.

    Il y avait dans le temps un plug-in tiers nommé DynamicStructure qui le permettait mais qui a disparu des radars depuis bien longtemps

    Je pense qu'il faut s'armer de patience et réaliser le travail méthodiquement :
    - Ecrire une méthode qui liste ceux qui parmi les 10000 champs méritent un renommage : accents, non SQL réservés, etc...
    - A l'aide de la liste, les renommer une table à la fois, en veillant à n'avoir que l'éditeur de structure ouvert pour que la tokenisation se fasse bien
    - Passer à la table suivante
    - En faisant quelques tables par jour, ça doit pouvoir quand même se gérer.
    - A tout moment la routine de check permet de vérifier qu'on n'a rien oublié et évite de s'abîmer les yeux à parser le contenu des tables dans la structure ou dans l'explorateur

  3. #3
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Juin 2006
    Messages : 72
    Points : 95
    Points
    95
    Par défaut Confirmation
    Bonjour,
    je confirme ce qu'a écrit Jean-Michel, a priori même en SQL les commandes CHANGE ou RENAME n'existent pas (ou plutôt ne sont pas implémentées dans le SQL 4D).

    D'autre part je pense qu'il faut remettre une couche auprès de 4D et demander à ce qu'on ait dans les préférences une option (je dis bien une option et pas une obligation) pour forcer les noms de tables et champs à respecter tel ou tel format (SQL92, ..., format personnalisé). Ça fait plus de 20 ans que j'en parle et le demande... donc peut-être qu'à force ça arrivera .

    Je précise au passage que je suis un farouche défenseur des espaces, accents etc. et que c'est normalement à l'informatique de se caler sur les besoins terrain et pas l'inverse qui normalise et tire vers le bas la sémantique et son étendue culturelle.

    D'autre part, d'un point de vue pratique les espaces et accents ne posent absolument aucun problème. J'insiste :
    • En 4D : aucun problème
    • En SQL : avec les noms appelés sans accent et entre guillemets (simples ou doubles selon le cas) ça marche très bien
    • En Web : il suffit de ne pas mettre les accents dans les 4DVAR (4DTEXT...) et ça roule impeccable.


    Perso j'évite les espaces et les remplace par des caractère souligné (underscore) _ car ça facilite la saisie des champs dans l'éditeur de formule 4D, mais c'est le seul intérêt que je vois (+ la lisibilité).

    Je sais que la tendance est à la normalisation américaine, ce qui est une erreur absolue, et qu'il est fort probable que demain 4D ne soit qu'en anglais (?), devienne diacritique, interdise les accents... Ce serait malheureusement oublier que "qui peut le plus peut le moins".. mais c'est un autre sujet ;-)

    En attendant pour te simplifier la vie, tu peux exporter la description de structure et ensuite avec un outil comme Excel (ou un regex en 4D, PHP, Python...) rechercher tous les champs qui ne respectent pas "tes" critères. Après en effet ce sera à la minime pour l'instant. Sinon il existe le composant de Blue Company "Code Analysis Helper" qui te permettra de revoir toute une série de problématiques de cet ordre (sur les noms de formulaires, méthodes aussi). C'est payant, mais ça te fera gagner beaucoup de temps, notamment parce que tu peux exporter les listes. Sinon tu peux te l'écrire en 4D (sauf le "renommage")

    Bon courage

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

Discussions similaires

  1. [MySQL] modifier le nom d'un champ d'une table à partir du php
    Par mounana199' dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/05/2014, 23h26
  2. modifier le nom d'un champ
    Par patmar83 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/12/2013, 15h35
  3. Modifier le Nom d'un champ Excel
    Par jmde dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/12/2008, 15h43
  4. Modifier le nom d'un champ dans une requête
    Par Neuromancien2 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/10/2007, 14h14
  5. modifier le nom d'un champs
    Par Nacera dans le forum Administration
    Réponses: 3
    Dernier message: 06/06/2007, 09h05

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