Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2012, 12:04   #1
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию Как вывести значения поля MySQL в DBLabel, если данные в BLOB...

В базе данный имеем таблицу "setting":


Необходимо в компоненте DBLabel вывести значение, столбца value поля key.

Пишу в MyQuery такой запрос:
Код:
SELECT
  `value`
FROM
  NameDB.`setting`
WHERE
  `key` = 'config_name'
В ответ:


Как отобразить в компоненте DBLabel значение blob поля???

Пробовал по разному:
Код:
SELECT CAST(`value` AS BINARY(30)) FROM NameDB.`setting` WHERE `key` = 'config_name'
Код:
SELECT CAST(`value` AS CHAR) AS `value` FROM NameDB.`setting` WHERE `key` = 'config_name'
всё равно, показывает не то - что там указано, а тупо пишет "blob" и всё.

Попробовал и в DBText вывести:

Код:
DBText1.Caption := MyQuery1.FieldByName('value').AsString;
Без результатно... (((
Помогите пожалуйста.

Последний раз редактировалось tim21701; 20.01.2012 в 16:00.
tim21701 вне форума Ответить с цитированием
Старый 20.01.2012, 18:23   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

В DBLabel сделать "легко" не получится, используйте TDBMemo.
vovk вне форума Ответить с цитированием
Старый 20.01.2012, 19:00   #3
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
В DBLabel сделать "легко" не получится, используйте TDBMemo.
Странный "совет"... Прям как с аватарки. )))
Никто и не говорил что будет легко, я поэтому на форум за помощью и обратился. DBLabel расположен на панели у которой выставлен цвет/картинка. Поэтому DBMemo для этого не подойдёт, так как, не имеет свойства "transparent" или подобного. К тому же, значение свойства ReadOnly ничего не даёт... Мне статичный текст нужен (в котором кстати - всего одно слово), а как его вывести - не пойму...

Может есть какие сторонние компоненты для этого???
tim21701 вне форума Ответить с цитированием
Старый 20.01.2012, 19:25   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Тогда используйте простой TLabel.
Те компоненты которые вы пытались использовать не предназначены для отображения данных из BLOB, почти все датасеты тянут данные из блоб полей только по мере надобности, и чтобы отобразить эти данные допустим в DBText нужно будет немного допиливать компонент.
На счёт "Странного "совета"", а мне допустим ваши пробы показались немного странными, я же об этом не говорил.

Последний раз редактировалось vovk; 20.01.2012 в 19:34.
vovk вне форума Ответить с цитированием
Старый 20.01.2012, 20:14   #5
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Цитата:
Сообщение от vovk
...а мне допустим ваши пробы показались немного странными...
У компонента MyQuery в контекстном меню есть SQLBuilder, где можно создать практически любой запрос к базе - не зная языка SQL. И вот, какой результат я видел на все три запроса из первого поста:



Так что же тут "странного"???
Странные не мои запросы, а то, что стандартный компонент (который кстати и расчитан на то - что бы отображать данные из таблиц) не способен выводить BLOB поля.

Всё решил гораздо проще...
Оставил вышеупомянутый запрос в MyQuery и у свойства главной формы на событие OnShow прописал:

Код:
label1.Caption:=MyQuery1.Fields[0].AsString;
Заменив TDBLabel на обычный TLabel.
Всем спасибо. ))))

P.S.
Ещё раз убеждаюсь в достоверности поговорки; "Всё гениальное - просто". ))))
tim21701 вне форума Ответить с цитированием
Старый 20.01.2012, 20:27   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Так что же тут "странного"???
Странные не мои запросы, а то, что стандартный компонент (который кстати и расчитан на то - что бы отображать данные из таблиц) не способен выводить BLOB поля.
Странно что вы используете BLOB для хранения 1 слова, странно что вы считаете что в BLOB можно хранить только текст,
Странно что вы используя компоненты не по назначению удивляетесь, что они не работают по вашему.


Цитата:
Всё решил гораздо проще...
Оставил вышеупомянутый запрос в MyQuery и у свойства главной формы на событие OnShow прописал:

Код:

label1.Caption:=MyQuery1.Fields[0].AsString;

Заменив TDBLabel на обычный TLabel.
Всем спасибо. ))))
Хмм, а я что в предыдущем посте написал?
vovk вне форума Ответить с цитированием
Старый 20.01.2012, 20:39   #7
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Цитата:
Сообщение от vovk
Странно что вы используете BLOB для хранения 1 слова,
странно что вы считаете что в BLOB можно хранить только текст,
Странно что вы используя компоненты не по назначению удивляетесь, что они не работают по вашему...
Вы меня начинаете удивлять ))))

1). Базу создаю не я, а CMS скрипт интернет-магазина.
2). Ваще не понял )))
3). "Компоненты не по назначению"? )) Вообще то, я решил вопрос как раз тем компонентом - который для этого и не был предназначен изначально...

Но, всё равно спасибо.
Вопрос решен. Тему можно закрыть.

Последний раз редактировалось tim21701; 20.01.2012 в 20:42.
tim21701 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать значения blob поля из одной таблицы в другую BDE Paradox astecenko БД в Delphi 1 02.12.2011 11:26
как получить значение поля грид на основе значения другого lookUp поля malayka БД в Delphi 0 21.04.2010 19:06
как вытащить картинку из BLOB поля Dania SQL, базы данных 0 25.03.2010 12:44
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17