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 :

migration unicode delphi XE2


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    866
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 866
    Par défaut migration unicode delphi XE2
    Bonjour,

    je viens de migrer une application écrite sous D2007 vers Delphi XE2.
    Et bien sur se pose le problème de l'unicode !!

    La partie serveur est une base de donnée est Firebird 2.1 en code ISO 8859-1
    La partie client utilise les IBX avec ce paramètre :IbDatabase1.Params.Add ('lc_ctype=ISO8859_1')
    Cette appli ne sera jamais traduite en langue étrangère.

    La compilation se passe bien , et je n'ai pas trop de surprise , seulement des avertissements:

    [DCC Avertissement] Unit74.pas(72): W1058 Transtypage de chaîne implicite avec perte de données potentielle de 'string' en 'AnsiString'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    form3.IBQuery1COAUTRE.Value:=IBquery1.FieldByName('CTAUTRE').AsString;
    je précise que les champs COAUTRE ou CTAUTRE sont des Blob text

    j'ai l'impression que le mappage des champ persistents et différent du mappage des champ dynamique ?


    cordialement

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 084
    Par défaut
    Value est c'est un Variant, normalement cela gère l'UnicodeString, curieux d'avoir ce message sur cette ligne !
    utilise explicitement AsString de chaque côté

    Form3, IBQuery1, ... tu t'y retrouves avec des nommages pareils ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    866
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 866
    Par défaut réponse
    Bonjour,

    pour information:

    quand je passe la souris sur <form3.IBQuery1COAUTRE.Value> j'ai ceci en popup: DB.TMemoField
    lorsque que c'est sur: <IBquery1.FieldByName('CTAUTRE').AsString> le popup indique system.string

    Je n'ai pas l'erreur si les 2 champs sont de type string de chaque coté du signe :=


    A+

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Utilises AsWideString

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    866
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 866
    Par défaut réponse
    En passant la souris sur le mot Value de <form3.IBQuery1COAUTRE.Value> il m'indique system.ansistring ? D'ou l'erreur de conversion .

    résume
    sur un champ persistent:
    si IBQuery1CHAMP.Value represente une chaine est elle en system.string
    si IBQuery1CHAMP.Value represente un Tmemofield est elle en system.Ansistring

    A+

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    866
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 866
    Par défaut suite
    J'ai écrit comme on me l'a suggéré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    form3.IBQuery1COAUTRE.AsString:=IBquery1.FieldByName('CTAUTRE').AsString;
    et là plus d'erreur

    autre petite question: est ce que je dois changer ISO-8859-1 vers UTF8 coté base de donnée et coté client ou bien si l'appli reste "française" ce n'est pas nécessaire ?


    +a

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

Discussions similaires

  1. Migration de Delphi 7 à XE2
    Par roprog dans le forum Delphi
    Réponses: 4
    Dernier message: 13/10/2014, 08h53
  2. migration delphi 2010 delphi XE2
    Par Chayanne47 dans le forum EDI
    Réponses: 1
    Dernier message: 27/04/2012, 13h09
  3. Migration VB6/Delphi, Pb avec fonte
    Par AL1986 dans le forum Delphi
    Réponses: 5
    Dernier message: 17/07/2007, 10h42
  4. Erreur après la migration de delphi 2005 vers 2006
    Par sawbo1 dans le forum Delphi
    Réponses: 2
    Dernier message: 21/07/2006, 19h18
  5. [D2005] Migration de Delphi 7 vers 2005
    Par Teb dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 19/07/2005, 12h42

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