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 :

Delphi 7 TWideStringField


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 275
    Points : 185
    Points
    185
    Par défaut Delphi 7 TWideStringField
    Bonjour,

    J'ai une application multi-tiers utilisant le composant Borland Socket server.
    Maintenant je dois faire fonctionner tout cela sur MS Serveur 2008 64 bits.
    Le Borland Socket server fonctionne pas sur cet OS ou en tout cas très mal.
    J'ai pris le Borland Socket server de XE2 et la dll midas correspondante.
    Maintenant j'ai le problème de type entre le TStringField et les TWideStringField.
    Evidement il attends TWideStringField au lieu d'un TStringField.
    J'ai résolu ce problème mais j'ai des composants qui sont liés directement base de données, et là l'affichage est ko lorsque j'utilise des composant tel des lookup.
    La liste (affichage) du lookup est correct, le lien est bien fait mais l'affichage est KO. On selectionne un libelle dans la liste qui est affiché correctement, on valide et là le libelle n'est plus correcte (C???).
    Est ce que cela est possible de convertir cette chaine pour que l'affichage soit bon ?
    Est ce que je suis obligé de faire évolué l'application et de la faire fonctionner avec Delphi X3 ? C'est que l'on vaudrait éviter. (cause l'achat de composants etc..)

    a+

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 421
    Points : 24 776
    Points
    24 776
    Par défaut
    Je comprend pas, tu veux utiliser un client D7 et un Borland Socket server de XE2 ?
    Déjà cela me supprend que le protocole n'est pas changé en 10 ans ou si il a changé, que la version XE2 supporte différentes versions de clients m'impressionne !

    Ta chaine doit être en Unicode que D7 ne sait pas géré, il est peut-être déjà trop tard, ta chaîne a été altéré dans les couches Midas de ton client, il s'attendait à une chaine ANSI, tu lui fourni un chaine WIDE, cela doit le paniquer !

    Citation Envoyé par cyril Voir le message
    Est ce que je suis obligé de faire évolué l'application et de la faire fonctionner avec Delphi X3 ? C'est que l'on vaudrait éviter. (cause l'achat de composants etc..)
    C'est un débat qui revient régulièrement "dois-je migrer ?"
    Tu utilises un compilateur vieux de 10 ans avec un Framework conçu au mieux pour XP SP1 32Bits (5.1) et tu veux le faire tourner sur un OS 64 Bits (6.1)
    Tu te prives d'évolution et du confort de l'IDE modernisé, tu t'exposes à des problèmes de pérénnité de plus en plus fréquent ...

    J'ai eu le même dilemme que toi, mon ancien employeur a renoncé de migrer D7 vers D2010 préférant refaire des modules en PHP (ce dernier utilisant un ActiveX pilotant l'exe D7, oui, j'ai pondu cela pendant mon préavis)

    Depuis j'ai changé d'employeur pour C++2007 migré depuis en XE2
    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 habitué
    Inscrit en
    Mai 2002
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 275
    Points : 185
    Points
    185
    Par défaut
    Merci de ta réponse.
    Mon Client et mon serveur application a été développé en D7.
    Mais le borland socket de D7 n'arrive pas à fonctionner correctement sur MS serveur 64.
    Cela ne pas surpris plus que cela vu l’ancienneté du produit.
    Alors je me suis lancé dans des tests et j'ai utilisé le borland socket serveur 32 b de la version X2 et sa midas.dll.
    Cela fonctionne bien sauf pour le TStringField puisqu'il est passée en TWideStringField. Donc pour les champs persistant j'ai résolu le problème.
    Mais par contre dans l'affichage des composants Lookup et autres du même style NON.
    Je vais essayé d'intercepter la chaîne avant l'affichage et la convertir au format Wide. Mais je pense comme toi cela doit être déjà trop tard
    Je sais c'est pas propre. Le mieux est comme tu l'indiques de la passer intégralement sous X3 mais là je ne suis pas décideur et surtout que je suis déjà en train de la migrer en ASPX.
    En tout cas si quelqu'un a une astuce, je suis preneur.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 421
    Points : 24 776
    Points
    24 776
    Par défaut
    Sur ce serveur 2008 64 bits.
    Tu as le ScktSrvr.exe de XE2, Midas.DLL de XE2 et des programmes D7, mais la DLL midas D7 entre XE2 a évolué, tu risques d'avoir une incompatibilités des interfaces sauf si ils ont été très rigoureux, que les interfaces existantes n'ont pas été modifié et qu'ils ont fait des extensions pour la nouvelle version, comme le recommande Microsoft pour la compatibilité des objets COM
    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

  5. #5
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 275
    Points : 185
    Points
    185
    Par défaut
    Je n'ai pas de problème sur ce point là.
    Je viens de résoudre une partie de mon problème.
    Le composant utilisé est un TcxDBPopupEdit de DevExpress sur son évènement CloseUp, je récupère la valeur et affectes la propriéte TEXT de celui-ci
    TEXT := string("MaChaine") et là impec.
    Maintenant 2 eme étape, c'est quand on arrive sur le fiche, faut que je fasse la même chose.

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

Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 21h09
  2. Réponses: 1
    Dernier message: 13/05/2002, 10h19
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 23h50
  4. Réponses: 4
    Dernier message: 27/03/2002, 12h03
  5. Réponses: 2
    Dernier message: 21/03/2002, 00h01

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