Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Bases de données
Bases de données Vos questions concernant les bases de données (BDE, Access, SqlServer...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/12/2012, 12h37   #1
cyril
Membre habitué
 
Inscription : mai 2002
Messages : 184
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 184
Points : 105
Points : 105
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+
cyril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 14h43   #2
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 252
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

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

Informations forums :
Inscription : juillet 2006
Messages : 9 252
Points : 13 355
Points : 13 355
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 15h06   #3
cyril
Membre habitué
 
Inscription : mai 2002
Messages : 184
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 184
Points : 105
Points : 105
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.
cyril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 15h49   #4
ShaiLeTroll
Expert Confirmé Sénior
 
Avatar de ShaiLeTroll
 
Homme
Développeur C++\Delphi
Inscription : juillet 2006
Messages : 9 252
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

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

Informations forums :
Inscription : juillet 2006
Messages : 9 252
Points : 13 355
Points : 13 355
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

Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié !
ShaiLeTroll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 15h59   #5
cyril
Membre habitué
 
Inscription : mai 2002
Messages : 184
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 184
Points : 105
Points : 105
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.
cyril est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h33.


 
 
 
 
Partenaires

Hébergement Web