2010-04-24 2 views
0

У меня есть таблицы, сопоставляющие latin1_general_ci и имеющие значения символов в турецком языке. И я могу использовать эти данные на delphi 7 + zeos без проблем. но я хочу обновить свою версию delphi до версии 2010 года, но слишком медленно, как я видел. поэтому я хочу использовать решение odbc + ado или dbexpress.Mysql latin1 turkish data and delphi 2010 utf8

Решение dbexpress прекрасно работает, отображает мои данные как введенные и записывает их как введенные таблицы без каких-либо изменений в charset столбца. но у dbexpress есть проблемы, как я видел. например, когда я выбираю * из таблицы, которая имеет типы столбцов как varchar, decimal, int, tinyint, текст дает av ошибки в xp-системах. vista и 7 не дают ошибок и работают нормально (не полностью протестированы).

в хр системах нарушения прав доступа следа доступа нарушение трассировка является

| 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] |

Решение ado (dbgo) отлично работает, но его не показывают мои данные как введенные. Хотят, чтобы все было utf. но я не хочу преобразовывать свои данные в utf перед тестированием всего. как я могу увидеть мои данные, как введенные, и написать utf на стороне клиента и сохранить latin1 (как это делают zeos или dbexpress).

У меня было много других вариантов. например. mysql-параметры сортировки и charset.

извините за мой плохой английский. Надеюсь, кто-то меня поймет.

спасибо.

+0

Я не понимаю вашу ситуацию, но вы попытались установить набор символов * соединения *, используя 'SET NAMES'? Кроме того, вы должны описать сообщения об ошибках, которые вы получаете. –

+0

да пробовал. но мои данные в формате latin1. и его включают тюркских персонажей. без имен конвертируемых наборов не работает полностью. если вы используете имена наборов, вы не можете искать турецкие символы. в utf вы можете сделать. но без полного теста я не хочу преобразовывать свои данные в utf –

+0

в решении dbexpress. Я получаю нарушение прав доступа. Я попытался сделать ошибку трассировки. это потому, что ошибка преобразования числа. У меня есть столбцы как десятичные (20,8), double unsigned. и мои столбцы первичного ключа - double unsigned, а не null auto_increment.i отправят трассировку отладки в моей системе xp. –

ответ

0

Я предлагаю перейти на 3d-решения, например AnyDAC. AnyDAC поддерживает следующие функции MySQL:

  • Обычные и встроенные серверы.
  • Соединения SSL.
  • ENUM, SET и т. Д. Типы данных.
  • UTF8 и т. Д. Кодировки символов.
  • Столы AUTO_INCREMENT.
  • MySQL 5 хранимых процедур.
  • Пакетные команды с несколькими наборами результатов.
  • Выполнение запроса прерывания.
  • Array DML.
+0

Я пробовал пробную пробку anydac. с anydac soluiton мне нужно преобразовать все данные в utf перед использованием. как я могу видеть до его очень быстрого. но я предпочитаю откровение с открытым исходным кодом. теперь я использую delphi 7 + zeos + mysql, кроме delphi, с открытым исходным кодом. еще раз спасибо –