Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre habitué
    Inscrit en
    mai 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : mai 2002
    Messages : 223
    Points : 133
    Points
    133

    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 Confirmé Sénior Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    10 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 053
    Points : 14 270
    Points
    14 270

    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
    223
    Détails du profil
    Informations forums :
    Inscription : mai 2002
    Messages : 223
    Points : 133
    Points
    133

    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 Confirmé Sénior Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    10 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 053
    Points : 14 270
    Points
    14 270

    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
    223
    Détails du profil
    Informations forums :
    Inscription : mai 2002
    Messages : 223
    Points : 133
    Points
    133

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •