Ошибка SISEGV для TDbMemo после перехода на новую версию

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Apprehension » 05.03.2018 14:09:26

Lazarus 1.6.4 (27-02-2017) [новая]
Версия FPC 3.0.2
База: MySQL 5.5.59-0
ОС: Windows 10 [новая]

В таблице базы данных есть поле VARCHAR(3000). Достается запросом, в котором для этого поля используется TMemoField. Для вывода содержимого поля использую TDBMemo, в свойствах которого указываю соответствующий источник данных (связанный с запросом) и название поля. В случае, если в поле есть данные, программа вылетает с ошибкой External:SISSEGV.

Слышал, что Lazarus плохо переносит переходы на новые версии, но можно ли что-то сделать сейчас? :)
(Та же ошибка выдается и при простом вызове метода AsString соответствующего поля запроса)
Apprehension
незнакомец
 
Сообщения: 7
Зарегистрирован: 15.12.2016 12:56:03

Re: Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Alex2013 » 05.03.2018 14:36:03

Apprehension писал(а):Слышал, что Lazarus плохо переносит переходы на новые версии, но можно ли что-то сделать сейчас?

Начиная с версии 1.06 это уже почти "придания старины глубокой" совместимость "снизу вверх" вполне радует ! :idea:
Зы
Новая версия это 1.8. (а до того больше года "на транке" 1.7 сидел ) ...
Alex2013
долгожитель
 
Сообщения: 2926
Зарегистрирован: 03.04.2013 11:59:44

Re: Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Apprehension » 05.03.2018 15:08:35

Имел в виду под "новой", что до перехода версии Лазаруса и Винды были еще старее... Так что - если перейду на 1.8, то проблема может решиться? Птотому что раньше описанная конструкция работала.
Apprehension
незнакомец
 
Сообщения: 7
Зарегистрирован: 15.12.2016 12:56:03

Re: Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Alex2013 » 05.03.2018 17:15:53

Возможно ... попробовать совсем не трудно !

Но с бд вообще возможны варианты... Проверь инициализацию строки и что с ней приходит после...
И вообще так ли необходимо использовать именно TDBMemo (извини я никогда использовал этот компонент так что что-то более конкретное посоветовать не могу )? Может проще получить данные из БД и вставить в обычный TMemo ?(Опять же извини если это явная ерись... )

Зы
.. и кинь если не влом минимальный примерчик - разобраться будет куда проще !
Последний раз редактировалось Alex2013 05.03.2018 17:42:53, всего редактировалось 3 раз(а).
Alex2013
долгожитель
 
Сообщения: 2926
Зарегистрирован: 03.04.2013 11:59:44

Re: Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Apprehension » 05.03.2018 17:37:37

Я уже пытался совершить святотатство с TMemo, но как мне туда правильно извлечь содержимое?
Вычисление query.FieldName('MemoField').AsString выдает ту же ошибку. Если же действовать через
mem1.Text := query.FieldByName('MemoField').Text;
то вместо текста в TMemo отображается "(MEMO)"...
Apprehension
незнакомец
 
Сообщения: 7
Зарегистрирован: 15.12.2016 12:56:03

Re: Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Alex2013 » 05.03.2018 18:10:25

Вообщем попытался сейчас из примера в поставке лазаруса(.. lazarus\examples\database) сделать что-то похожее на "проблемный случай" увы ... рано я обрадовался когда нашел на планшете установленный Лазарус 1.64 (о котором ранее просто забыл ) Без примера сходу не воспроизводится ! :roll: А единственный мой проект с "более-менее нормальной-БД" на другом компе .
PS
Попробуй посмотреть поле через ShowMessage ( query.FieldByName('MemoField').Text); может запрос его просто не находит ?
Alex2013
долгожитель
 
Сообщения: 2926
Зарегистрирован: 03.04.2013 11:59:44

Re: Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Apprehension » 06.03.2018 15:26:41

ShowMessage ( query.FieldByName('MemoField').Text) выдает тот же текст "(MEMO)". Штука в том, что у меня есть грид, к которому привязан запрос, использующий это же поле этой же таблицы. И в строке грида содержимое этого поля таки отображается, правда, урезанное через команду БД SUBSTR.
Apprehension
незнакомец
 
Сообщения: 7
Зарегистрирован: 15.12.2016 12:56:03

Re: Ошибка SISEGV для TDbMemo после перехода на новую версию

Сообщение Vadim » 07.03.2018 10:55:05

Apprehension
Я длинные тексты тоже в TDbMemo вывожу - удобно читать. По крайней мере в версии 1.8 (на которой я изначально делал проект) и 1.9 Лазаруса проблем никаких не наблюдалось.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35

Рейтинг@Mail.ru