Delphi 5, как получить данные из полей MySQL tis620?

У меня есть веб-приложение, написанное на PHP, которое использует MySQL в качестве базы данных.

Для хранения данных моего языка (тайского) я использую кодировку tis620 в своих таблицах базы данных, в настоящее время этот параметр отлично подходит для моего веб-приложения.

Я собираюсь написать приложение Windows для доступа к той же базе данных, что и мое веб-приложение, но я столкнулся с проблемой получения данных из полей tis620.

Это сортировка по умолчанию моей таблицы, используя tis620

введите описание изображения здесь

В целях тестирования я настроил параметры сортировки поля eng для использования utf8введите описание изображения здесь

Я вставил один образец записи в таблицу

введите описание изображения здесь

Я использую MySQL Connector/ODBC 5.1 Oracle в качестве драйвера ODBC, и попробовал обе установки как utf8 и tis620

введите описание изображения здесь

Я использую Delphi 5, TTable для подключения таблицы базы данных

  1. поле (поля) с utf8 может быть восстановлено
  2. поля (поля) с tis620 (по умолчанию таблицы) не могут быть получены

    • Хотя, используя Field Editor для создания всех полей, я мог получить только utf8 field(s).

введите описание изображения здесь

Пожалуйста, дайте мне несколько советов, tis620 лучше всего подходит для моего веб-приложения на данный момент, если я преобразовал поля в utf8, я решу эту проблему, но вместо этого у меня будет проблема с моим веб-приложением.

Итак, как использовать компонент доступа к данным BDE (TTable, TQuery) для извлечения данных из поля (полей) tis620?

Пожалуйста помоги.

Спасибо всем.

1 ответ

Вы использовали "тайский" в качестве языка для приложений, не поддерживающих Юникод, в настройках Windows? Приложения Delphi 5 могут очень хорошо работать с тайским и английским языками одновременно. Из коробки нельзя смешивать кодировки. Но я подозреваю, что вам не нужен полный Unicode, только для отображения тайского и английского контента.

Затем установите кодовую страницу Win-874 в вашем драйвере ODBC.

Или вы можете перейти с устаревшего BDE на более новую библиотеку. Если вы придерживаетесь Delphi 5, я рекомендую протестировать FreeDAC, который изначально поддерживает:

  • Oracle v 8.0.3 и выше;
  • MySQL v 3.23 и выше;
  • MSSQL v 2000 и выше;
  • MSAccess v 2000 и выше;
  • IBM DB2 UDB v 8 и выше;
  • Sybase ASA v 8 и выше.

Конечно, эта библиотека устарела (в пользу эволюции AnyDAC/FireDAC), но это AFAIK - одно из лучших решений для Delphi 5. И оно бесплатное, с исходниками. И ИМХО, это гораздо предпочтительнее любых компонентов на основе ADO, в мире Delphi.

Если вы используете FreeDAC, вам не нужно настраивать ODBC (и, конечно, BDE), поскольку он обеспечивает прямой доступ к MySQL.

Другие вопросы по тегам