2010-04-24 8 views
0

J'ai des tables assemblant latin1_general_ci et j'ai des caractères turcs. Et je peux utiliser ces données sur delphi 7 + zeos sans problème. mais je veux améliorer mon Delphi à la version 2010, mais zéos trop lent comme je l'ai vu. donc je veux utiliser la solution odbc + ado ou dbexpress.Mysql latin1 données turques et delphi 2010 utf8

La solution dbexpress fonctionne correctement, affiche mes données telles qu'elles sont entrées et écrit en tant que table entrée sans aucune modification du jeu de caractères de colonne. mais dbexpress a des problèmes comme je l'ai vu. Par exemple, lorsque je sélectionne * de la table qui a des types de colonnes comme varchar, decimal, int, tinyint, le texte donne des erreurs av sur les systèmes xp. Vista et 7 ne donne aucune erreur et fonctionne bien (pas entièrement testé).

dans les systèmes xp trace de violation d'accès est la violation d'accès trace de débogage est

| 7C9010E0 | ntdll.dll | | | RtlLeaveCriticalSection | |

| 7E419239 | USER32.dll | | | CharUpperBuffW | |

| 7E419216 | USER32.dll | | | CharUpperBuffW | |

| 7C80CED0 | kernel32.dll | | | LCMapStringW | |

| 7C910380 | ntdll.dll | | | RtlImageNtHeader | |

| 7C903247 | ntdll.dll | | | RtlConvertUlongToLargeInteger | |

| 7C90E485 | ntdll.dll | | | KiUserApcDispatcher | |

| 009A631E | Project1.exe | Unit1.pas | TForm1 | Button1Click | 110 [37] |

solution ado (dbgo) fonctionne très bien, mais il ne montre pas mes données comme indiqué. Il veut que tout soit utf. mais je ne veux pas convertir mes données en utf avant de tout tester. comment puis-je voir mes données comme entrées et écrire côté client utf et stocker latin1 (comme zeos ou dbexpress faire).

J'ai été essayé de nombreuses autres options. par exemple. mysql side collation et paramètres charset.

désolé pour mon mauvais anglais. J'espère que quelqu'un me comprendra.

merci.

+0

Je ne comprends pas votre situation mais avez-vous essayé de définir le jeu de caractères de la * connexion * en utilisant 'SET NAMES'? En outre, vous devez décrire les messages d'erreur que vous recevez. –

+0

oui essayé. mais mes données en format latin1. et il comprend des caractères turcs. sans convertir les noms des ensembles ne fonctionne pas complètement. Si vous utilisez des noms d'ensembles, vous ne pouvez pas rechercher de caractères turcs. en utf vous pouvez le faire. mais sans test complet je ne veux pas convertir mes données à utf –

+0

dans la solution dbexpress je reçois violation d'accès. J'ai essayé de faire une erreur de trace. c'est parce que l'erreur de conversion de nombre. J'ai des colonnes comme décimal (20,8), double non signé. et mes colonnes de clé primaire est double unsigned non null auto_increment.i publiera la trace de débogage dans mon système xp. –

Répondre

0

Je vais suggérer de migrer vers des solutions parti 3D, comme AnyDAC. AnyDAC prend en charge les fonctionnalités MySQL suivantes:

  • Serveurs normaux et Embedded.
  • Connexions SSL.
  • ENUM, SET, etc. types de données.
  • Codages de caractères UTF8, etc.
  • colonnes AUTO_INCREMENT.
  • Procédures stockées MySQL 5.
  • Commandes par lots avec plusieurs jeux de résultats.
  • Interruption de l'exécution de la requête.
  • Array DML.
+0

J'ai essayé l'essai d'anydac. avec anydac soluiton je dois convertir toutes mes données en utf avant d'utiliser. comme je peux le voir avant que ce soit vraiment rapide. mais je préfère la soultion open source. maintenant j'utilise delphi 7 + zeos + mysql sauf delphi tout open source. Merci encore –

Questions connexes