Задать вопрос
Insaned
@Insaned

Почему Lazarus обрезает строку при чтении?

Пишу логи в базу Mysql. Пытаюсь их читать из Lazarus. Столкнулся с тем что некоторые строчки Lazarus обрезает.
Выглядит это так:
e6ec8ff8.png

А на самом деле в базе так:
af50d0dd.png

Lazarus 2.0.10. Компоненты из стандартной библиотеки. Тип проблемного поля в базе text (пробовал varchar - не помогло). Обрезание происходит в TSQLQuery или раньше (не в компонентах визуализации). Т.е. если в редакторе запросов выполнить запрос то он отобразится уже урезанным. СУБД - изначально была MariaDB но переход на MySQL 5.7 проблему не решил.

В mysqldump строка выглядит так:
'2020-10-26T21:06:41.142Z\011INFO\011piecestore\011upload started\011{\"Piece ID\": \"AXM2YT6GJVAPK6JHWW7SJT4K34IFS3TONWQNO2TUXR7X36FR23CA\", \"Satellite ID\": \"12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S\", \"Action\": \"PUT\", \"Available Space\": 478335599584}',8,'2020-10-27 00:07:54'


Т.е. он видимо \0 считает концом строки. Вопрос - как это обойти?
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Средний 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
видимо \0 считает концом строки
The BINARY and VARBINARY Types.
Ответ написан
Insaned
@Insaned Автор вопроса
В итоге сделал так. Не уверен что это хорошее решение, но ничего не придумал.
На стороне сервера:
delimiter |
create trigger replace_data
before insert on logs
for each row
begin
SET NEW.msg = replace(NEW.msg,'\011',' ');
end;
|
delimiter ;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы