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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что не так с BLOB 
V
    Опции темы
former
Дата 2.3.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Здравствуйте!

С IB начал работать недавно, поэтому строго не судите.

БД в которой есть таблица производителей (Producer) со следующими полями: 
- ID (ProducerID) - Integer
- Название организации (Name) - Varchar
- Страна (Country) - Varchar
- Сайт (Site) - Varchar
- Логотип (Logo) - Blob

Для BLOB заданы следующие параметры: Segment Size - 1024, Subtype - 0.

Клиент создаётся на Delphi. Использую стандартные компоненты для работы с IB.

Для добавления новой записи использую следующий запрос:
Код

Insert into Producer (NAME,COUNTRY,SITE,LOGO)
  VALUES (:NAME,:COUNTRY,:SITE,:LOGO);


В настройках параметров запроса для LOGO задал:DataType-ftBlob, Size-1024.

Изображение загружаю в TImage, а после этого в таблицу.
Параметру картинку из TImage передаю так:
Код

IBQ.ParamByName('LOGO').Assign(LogoImg.Picture);

или, если изображение не добавлялось, то:
Код

IBQ.Params.ParamByName('LOGO').AsBlob:='null';


Однако при выполнении запроса появляется следующая ошибка (см. ссылку).

Что делаю не так?



Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  Error.JPG 18,35 Kb


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
former
Дата 3.3.2008, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Сделал пример с 3 полями (ID,Varchar,Blob). Выводит всё тоже сообщение. Выкладываю. Что не так?

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  IBTest1.zip 78,11 Kb


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Deniz
Дата 3.3.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44





--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
former
Дата 3.3.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Deniz, информация конечно полезная. Вот только одного не пойму, что должно быть на месте blobvar (см. цитату ниже), если объект изображение в TImage?

Цитата

1. передача blob через параметр. Имеется в виду запрос вида
insert into table (field1, field2, blbfield) values (:param1, :param2, :blb); :

 IBQuery1.ParamByName('blb').asBlob:=blobvar;



--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Deniz
Дата 4.3.2008, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 22
Всего: 44



А что мешает попробовать:
Код

IBQuery1.ParamByName('BlobField').AsBlob:=Image.Picture.Graphic;

или через TStream.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
former
Дата 4.3.2008, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 1
Всего: 17



Цитата(Deniz @  4.3.2008,  06:25 Найти цитируемый пост)
А что мешает попробовать:
Выделить всёкод Pascal/Delphi
1:
    
IBQuery1.ParamByName('BlobField').AsBlob:=Image.Picture.Graphic;

или через TStream.


Deniz, пробовал, но ругается, что разные типы данных. Хотя должно быть всё равно, обычный текст или бинарный код.

Решил использовать FIBPlus.

Спасибо за помощь и материал. +

Это сообщение отредактировал(а) former - 4.3.2008, 21:56


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.