RxDBGrid отображение поля типа text из MySQL

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

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

RxDBGrid отображение поля типа text из MySQL

Сообщение IvanI » 05.04.2012 18:23:00

Собственно вопрос: почему в гриде при отображении поля типа text из БД MySQL выводится (blob)? Причем не только если тип поля text, но и в случае если данные для вывода сформированы в запросе через CONCAT(), в CONCAT() передаются данные типа varchar

Как исправить эту проблему?

rx 1.1.5.98
IvanI
новенький
 
Сообщения: 13
Зарегистрирован: 05.04.2012 16:12:25

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение alexs » 05.04.2012 20:32:24

А как в стандартном DBGrid-е?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение IvanI » 06.04.2012 09:00:00

в стандартном тоже (blob) выводит. работаю через стандартный SQLdb

MySQL 5.0.18-nt
IvanI
новенький
 
Сообщения: 13
Зарегистрирован: 05.04.2012 16:12:25

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение GAMER » 06.04.2012 11:12:30

А чем мускулевский text отличается от blob, кроме чувствительности к регистру и объема? Наверное все, что приходит с размером больше 255 байт считается одним типом.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение IvanI » 06.04.2012 11:23:51

дело не в этом, а в том, что вместо текста записанного в поле типа text в гриде выводится строка в виде - (blob)

мне нужно решить эту проблему, выводить текст
IvanI
новенький
 
Сообщения: 13
Зарегистрирован: 05.04.2012 16:12:25

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение GAMER » 06.04.2012 13:42:47

в гриде выводится строка в виде - (blob)

А как это выглядит?
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение IvanI » 06.04.2012 14:37:55

нижний грид RxDBGrid, верхний DBGrid стандартный

Изображение
IvanI
новенький
 
Сообщения: 13
Зарегистрирован: 05.04.2012 16:12:25

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение amateur » 06.04.2012 16:19:17

а почему Ф.И.О. выводит нормально ....
Попробуйте это поле вывести в ДБмемо. По идее покажет текст. Если так то грид не виновен :)
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение alexs » 07.04.2012 10:21:28

IvanI
В вашей проблеме виноваты компоненты доступа к данным.
Как решение - переформатируете соответсвующие запросы - укажите явное приведение типа к varchar. Должно помочь.
И вообщем - почему не использовать varchar вместо text?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение IvanI » 07.04.2012 16:43:59

amateur
DBMemo выводит нормальный текст
ФИО формируется через CONCAT() из Ф, И, О, каждое поле varchar, причем на этом гриде оно выведено нормально, а вот в другом гриде те-же ФИО выведены как (blob)

alexs
указал приведение к типу char через CONVERT(), результат тот-же
в БД перевел поля в тип varchar - все без изменений

куда копать? есть ли смысл ставить более новый FPC, вроде в нем есть доступ уже к MySQL 5.5 ? может кто знает?
IvanI
новенький
 
Сообщения: 13
Зарегистрирован: 05.04.2012 16:12:25

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение alexs » 07.04.2012 18:38:07

Ну проблема однозначно кроется в компонентах доступа. Надо их смотреть.
Может чем-то другим хобить к БД?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение amateur » 07.04.2012 19:40:43

DBMemo выводит нормальный текст

^) за мускул не знаю, как там но в FB при поле в таблице тип text тоже будет выводить блоб... а при изменении поля из text в char будет все норм (кажись это во всех базах). Токо вот проблема char < 255 , text более 255. Склоняюсь к тому что это баг всех программ в которых в сетке нет просмотра блобов (точнее мемо) :))


И, кажись: второе поле - Содержание обращения. Т.е. судя по названию - многострочное поле.. И как стандартный грид может вывести мемо, токо если вдруг его "подтолкнуть" к этому. Можна просто в грид запихнуть дбмемо. И может будет чЮдо ? :)

И при чем тут компоненты ?
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение alexs » 07.04.2012 23:27:57

мемо поля обычно длинные. Смысл их отображать в сетке - они всё равно не влезут по ширине.
Для их просмотра используй DBMemo.
А если данные не длинные - то лучше varchar.
И ещё - мемо поля обычно влекут дополнительные толодвижения у компонентов для выборки данных из БД. В FB точно, в MySQL - скорее всего тоже. Лишний раз без необходимости не рекомендую использовать.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение GAMER » 08.04.2012 12:16:07

+1. Лучше показать часть Мемо-сообщения, а если его нужно целиком увидеть, то можно сделать отдельных запрос именно для этого значения (записи) и показать его отдельно.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: RxDBGrid отображение поля типа text из MySQL

Сообщение amateur » 09.04.2012 10:40:48

меня токо смущает CONCAT().
Сделал тестовый пример в ФБ строки в грид выводятся нормально. Странно :(
Возможно в мускуле есть загвоздка из-за которой компоненты думают что строка у Вас блоб.
А если: в onGetText указать что это явная строка а не блоб, вроде этого:
Код: Выделить всё
var s : string;
begin
  s:= Sender.AsString;
  aText := s;

туповато выглядит, но...
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 244

Рейтинг@Mail.ru
cron