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

Firebird Discussion :

ecrire en arabe dans une base de données firebird


Sujet :

Firebird

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut ecrire en arabe dans une base de données firebird
    Bonjour à tous,

    je travail avec delphi 2010 avec firebird 2.5 et j'arrive pas à ecrire en arabe dans la base de données. En effet, j'utilise un dbgrid pour la reception des données et avant validation(post) la saisie apparait bien en arabe mais aprés validation elle est remplacée par '?'.:calim2

    merci

  2. #2
    Rédacteur/Modérateur

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

    Quel est le charset de la BDD ?
    et bien sur celui du champ ?
    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 régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour sergio,
    j'ai pas compris ce que tu veut dire avec charset de la bdd, par contre le champs je l'ai crée dans la table avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "DES" varchar(200)  CHARACTER SET ISO8859_1 NOT NULL

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    j'ai pas compris ce que tu veut dire avec charset de la bdd,
    Quand on crée la BDD , si on oublie de stipuler son charset celui-ci est par défaut NONE
    CHARACTER SET ISO8859_1 NOT NULL
    ISO8859_1 correspond aux langues 'européennes occidentales' donc pas étonnant que tu ai perte de caractères
    si je ne me trope pas il aurait fallu un Character set UTF8
    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

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    merci @sergio,

    je vai essayé comme ça.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    bonjour,

    j'ai supprimé le champ et je l'ai récrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DESA Varchar(255) CHARACTER SET UTF8;
    mais c'est toujour pareil les caractéres saisie en Arabe sont remplacer par '?' aprés validation

  7. #7
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Il faudrait que toute la chaîne depuis le composant Edit dans Delphi jusqu’à la colonne de la table soient en Unicode, en passant par le champ du Dataset, le composant de connexion a la base et la base elle-même.
    Si vous êtes libre, choisissez le Logiciel Libre.

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    bonjour @tryexceptend,

    je saisie dans un Tdbgrid. j'ai modifier le charset du champs en question et celui de la base de donnée, j'ai même essayé avec UTF8encode,UTF8decode, pareil ça ne marche pas. j'ai essayer avec flamerobin est on essayant de valider il m'affiche l'erreur suivante:isc_dsql_execute2 failed.

  9. #9
    Rédacteur/Modérateur

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

    il faudrait surtout essayer à partir d'une base en charset UTF8
    ensuite il peut aussi s'agir d'un problème avec les composants d'accès (charset à spécifier) .

    je pense que c'est sur ce dernier point que ça cloche ! du coup ce n'est pas spécifique Firebird

    [Edit] tu peux aussi essayer charset WIN1256
    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

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    bonjour @sergio,
    j'ai esayé avec le charset WIN1256 et ça marche pour l'ecriture en arabe, mais bizzarement les tailles des autres champs ont été réduites exple 20 position devient 5 .

    alors j'ai essayé de modifier la chaset de la base de données avec cet code que j'ai récupéré dans ce site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE RDB$DATABASE SET RDB$CHARACTER_SET_NAME = 'WIN1256';
    mais le charset ne se modifie pas il reste à NONE.

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    alors j'ai essayé de modifier la charset de la base de données avec ce code que j'ai récupéré dans ce site
    changer le charset (ou de Dialect) d'une base de données déjà existante est fortement déconseillé (sauf si la base est vide) .
    je ne sais pas où tu l'as lu sur "ce site" mais je pense que cela y était mentionné .
    la seule "bonne" solution est de créer une Base de Données vide avec le bon charset (et dialect) ,
    puis de "pomper" les données de la base d'exploitation vers cette nouvelle base .
    Et encore, je doute, un champ ISO8859_1 sera t'il correctement transformé en WIN1256

    d'autre part , il peut aussi y avoir un problème avec les composants mais je me vois mal faire des tests ... problème d'écriture , je reste à mon alphabet
    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

  12. #12
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    le fait de changer le paramétre d'accé à la base de données
    de ISO8859_1 à WIN1256 m'a pérmis d'ecrire et de sauvegarder en arabe mais c'est la réduction des tailles qui me déroute.
    maintenant pour l'astuce de changement de charset d'une base de données je l'ai trouvéhttp://www.developpez.net/forums/d21...-charset-base/

  13. #13
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    mais bizzarement les tailles des autres champs ont été réduites exple 20 position devient 5 .
    pas si bizarre sachant que un caractère UTF8 est représenté par 1 à 4 octets alors qu'un caractère WIN sur un seul
    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 régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour à tous,
    J'ai enfin résolu le problème. Il fallait tout simplement modifier les paramètres d'accée à la base de données "lc_type=UNICODE_FSS, maintenant il reste le problème de l'inversion de mot dans rave mais la c'est un autre sujet.merci à tous.

  15. #15
    Rédacteur/Modérateur

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

    Ta solution
    Il fallait tout simplement modifier les paramètres d'accée à la base de données "lc_type=UNICODE_FSS
    je te l'avais déjà fait remarqué
    Citation Envoyé par SergioMaster Voir le message
    ensuite il peut aussi s'agir d'un problème avec les composants d'accès (charset à spécifier) .
    cependant , tu n'as jamais indiqué les composants utilisés !
    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

  16. #16
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    Bonjour @sergio,
    j'utilise Ibdatabase, pour l'accée à la base de données.

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

Discussions similaires

  1. [Débutant] ecrire en bilingue dans une base de données
    Par ginyoura dans le forum C#
    Réponses: 1
    Dernier message: 09/08/2012, 15h00
  2. Réponses: 19
    Dernier message: 27/10/2011, 14h01
  3. [MySQL] inserer des données en arabe dans une base de données mysql
    Par curieuseInformatique dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/09/2011, 11h03
  4. Ecrire un RTF dans une base de données
    Par jlardier dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/11/2007, 15h42
  5. Ecrire dans une base de données Mysql depuis Excel
    Par poupi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/02/2007, 17h05

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