Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
Как считать?
VARCHAR считывается нормально
Edit1.Text := SQLQuery1.FieldByName('Edit1').AsString;

А если аналогично попытаться считать данные типа TEXT, выводит иероглифы.
8 ноя 18, 22:47    [21728843]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46095

Значит в базе записаны иероглифы. В чём проблема-то?

Posted via ActualForum NNTP Server 1.5

8 ноя 18, 23:13    [21728873]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
В базе текст отображается корректно
SQLQuery1.FieldByName('Edit1').DisplayText;

выводит (WIDEMEMO)
8 ноя 18, 23:18    [21728880]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3845
Версии базы нет, кодировки базы/таблицы нет, sql-кода таблицы нет, версии делфи нет, компонентов доступа к базе нет, компонентов для отображения нет, результата показа содержимого в делфи нет, результата показа содержимого через редактор базы нет.

В пост призывается ванга.
8 ноя 18, 23:23    [21728890]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
Картинка с другого сайта.
кодировка таблицы: utf8_general_ci
Картинка с другого сайта.
версия компонентов последняя

текст в базе Картинка с другого сайта.
результата показа содержимого в делфи Картинка с другого сайта.
8 ноя 18, 23:33    [21728901]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3845
Соседняя тема, где в конце есть ссылка на настройку компонентов и кодировки:
www.sql.ru/forum/1304912/mysql-kodirovka
8 ноя 18, 23:44    [21728905]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3845
Так же стоит смотреть кодировку конкретной колонки -- в MySQL ее можно для отдельных колонок указывать. Это надо в первую очередь проверить.

К сообщению приложен файл. Размер - 9Kb
8 ноя 18, 23:49    [21728907]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
Он и английский текст так же отображает
9 ноя 18, 00:17    [21728916]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9647
-Solo, WIDEMEMO не нравится ? Меняй TWideMemoField.DisplayValue
9 ноя 18, 00:22    [21728918]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
изменил кодировку для этой колонки на cp1251_bin английский текст стал отображаться, а русский нет
а на cp1251_general_ci даже английский не отображается
9 ноя 18, 00:39    [21728923]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3845
-Solo,

1. убедиться, что у колонки utf8_general_ci;
2. удалить и заного добавить тестовые данные после смены кодировки;
3. убедиться, что данные корректно показываются в том же phpmyadmin или другой системы для работы с базой;

4. перед работой с базой (перед открытием датасетов/запросов) принудительно выполнить запрос 'SET NAMES utf8' для установки кодировки.
5. проверить, что после этого будет в компонентах-гридах.
9 ноя 18, 00:47    [21728928]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
всё, решил проблему, спасибо всем!
9 ноя 18, 00:49    [21728929]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3845
-Solo,

в чем же была проблема?
9 ноя 18, 00:49    [21728930]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
ServerCharSet поменял на cp1251
но так как у сервера UTF8, то теперь нельзя добавлять записи в таблицы с русскими символами.
9 ноя 18, 02:48    [21728944]     Ответить | Цитировать Сообщить модератору
 Re: MySQL тип данных TEXT  [new]
-Solo
Member

Откуда:
Сообщений: 20
и поэтому придётся добавлять записи так
SQLQuery1.Params.ParamByName('Комментарий').AsAnsiString := 'Текст';
9 ноя 18, 02:58    [21728945]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить