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 :

Nom des champs d'une table


Sujet :

Bases de données Delphi

  1. #1
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut Nom des champs d'une table
    Bonjour,

    j'ai une table Contacts.db avec la table Personnes et les champs Nom, Prénom et Tel (D10.2 - FireDac - SqLite)

    j'affiche le nom des champs de la table par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      FDConnection1.GetFieldNames('', '', 'Personnes', '', ListBox3.Items);
    Dans Liste3 j'obtiens :
    Nom
    "Prénom"
    Tel

    Pourquoi Prénom est il entouré de double cotes ? à cause de l'accent ?

    y a t il une méthode pour éviter cette double cote ? (à part traiter par code)

    A+
    Charly

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    une question avant toute réponse : comment est encodée la base ? Utf8 ou ....
    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

  3. #3
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour Serge,

    je ne sais pas trop : je l'ai créée avec SQLiteStudio avec les options pas défaut.

    Comment peut on le savoir ?

    A+
    Charly

  4. #4
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Dans les Params de FDConnection c'est OpenMode est en CreateUTF8

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Dans les Params de FDConnection c'est OpenMode est en CreateUTF8
    Oui mais cela ne veut pas dire qu'elle est en UTF8 sauf si, inexistante, elle est créée au moment de la connexion.

    Par curiosité je vais créer une base UTF8 (sûr) avec SQLiteStudio pour voir ça

    [EDIT] J'ai donc fait un test rapide, déjà par défaut la base avec SQLiteStudio la base est UTF8 (je ne vois même pas s'il y a une option pour changer ça) donc ta base est certainement UTF8
    voilà mon petit test en mode design
    Nom : Capture2.PNG
Affichages : 608
Taille : 14,4 Ko
    Bon, c'est du rapide en FMX et pas exactement ce que tu as écrit mais tu remarqueras que je n'ai pas de " " pour la colonne Prénom
    du coup je me suis posé la question : "Et si il y avait des blancs dans les noms de colonnes ?"
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE Contacts (
        Nom            TEXT,
        Prénom         TEXT,
        ID             INTEGER PRIMARY KEY AUTOINCREMENT,
        Date_Naissance DATE,
        [Né le]        DATE,
        [nom2 ]        TEXT
    );
    Et bien, au niveau de mon test, toujours pas de " " ça mérite un peu d'approfondissement
    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 expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    J'ai mis Nom et Prénom en Varchar(40) cela a surement une incidence ?

  7. #7
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Voici ma base

    Contacts.zip

    A+
    Charly

    PS : je ne suis pas en FMX, mais en VCL

  8. #8
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 419
    Points : 1 096
    Points
    1 096
    Par défaut
    Bonjour,

    Voici ma base
    Elle est bien en UTF8 (aussi bien les noms de colonnes que les données)

    Normalement on évite les caractères accentués (tout ce qui n'est pas ASCII pur) dans les noms de colonnes.

    Cordialement

  9. #9
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    C'est vrai, mais je ne l'aurai pas fait avec DBase ! mais je pensais qu'avec les outils modernes on pouvait le faire ...

    Voici mon appli complète :

    Demo6.zip

    C'est une appli de test. le cas se produit sur le bouton Lister Champs

    A+
    Charly

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    PS : je ne suis pas en FMX, mais en VCL
    Bon, ce n'était pas indiqué mais ça change pas la face du monde
    voici un remplissage de liste en VCL
    Nom : Capture2.PNG
Affichages : 559
Taille : 7,4 Ko
    tu constateras que
    1. j'utilise les livebindings car je ne sais plus remplir une liste par code
    2. en passant par un FDMetaDataQuery je n'ai pas de " "


    le coupable des " " c'est plus dans les sources qu'il faut le chercher , AMHA dans la procedure GetfieldNames de Firedac.comp.client.pas ou plutôt dans une option que j'ai entre-aperçue dans la fonction function TFDCustomConnection.EncodeObjectName
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Result := oConMeta.EncodeObjName(rName, nil, [eoBeautify]);
    eoBeautify mais je me trompe peut-être
    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

  11. #11
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Dans l'aide sur GetFieldNames il est dit :

    Les noms de champs sont normalisés (délimités par des apostrophes, si nécessaire). Sinon, ils sont convertis sur la casse du dictionnaire par défaut.
    Donc ce doit bien être à cause de l'accent dans le nom du champs.

    Bon tout cela n'est pas très grave. Je vais renoncer aux accents dans les noms de champs (cela m'ennuie plus pour les titres des colonnes du DBGrid)

    A+
    Charly

  12. #12
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 419
    Points : 1 096
    Points
    1 096
    Par défaut
    (re)Bonjour

    C'est vrai, mais je ne l'aurai pas fait avec DBase
    Oui mais https://sqlpro.developpez.com/cours/sqlaz/erreurs/
    SQL est un langage qui repose sur une norme. Les noms des objets SQL ont donc une construction normative spécifique.
    En particulier on ne peut faire usage que des 26 lettres de l'alphabet, des dix chiffres et du caractère "blanc souligné" (underscore). Tout autre caractère est interdit pour nommer un objet SQL (table, colonne, vue, utilisateur, contrainte...). Certains SGBDR autorisent n'importe quoi comme caractères dans le nom d'un objet... hélas !
    Cordialement

  13. #13
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Bon tout cela n'est pas très grave. Je vais renoncer aux accents dans les noms de champs
    j'avais acaumes à ce sujet
    cela m'ennuie plus pour les titres des colonnes du DBGrid
    pour paraphrasé acaumes "Oui mais" rein n'empêche de changer le libellé (header) des colonnes, c'est même mieux quand on veut par exemple traduire son appli
    (TLang ou autre), ce n'est donc qu'une paresse je jette pas la pierre pour preuve l'utilisation des livebindings pour du "vite fait, vite testé"
    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

  14. #14
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Merci à tous les 2,
    je clos le sujet et vais tester les Headers

    A+
    Charly

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

Discussions similaires

  1. 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
  2. recuperation des nom des champs d'une table
    Par arawak dans le forum Access
    Réponses: 2
    Dernier message: 11/01/2006, 15h16
  3. récupérer le nom des champs d'une table d'une BDD-page web
    Par mathieu_r dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/06/2005, 14h02
  4. Modifier le nom des champs d'une table...
    Par Mr Capone dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2005, 10h22
  5. nom des champs d'une table
    Par K-ZimiR dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/04/2004, 14h21

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