Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Обработка блобов


Автор: Paradox 12.11.2003, 09:51
Подскажите плиз,
Как в IB можно переложить блобы, в которых лежат jpeg из одной таблицы в другую?
Простой select из одной таблицы и update или insert в другую не работает, записывается туда какая-то билеберда sad.gif

Автор: Vit 12.11.2003, 22:50
Если это

Insert Into AnotherTable (MyBlob)
Select MyBlob From ThisTable

не работает то похоже только через программу, хотя по идее должно работать.

Автор: Paradox 13.11.2003, 11:25
Не работает, через программу уже сделал...
Работать и не должно, только через внешний SQL с созданием курсовров и так далее, а через прогу это все делается автоматом походу дела

Автор: gray_k 13.11.2003, 18:20
А хранимой процедурой не пробовал:
Код

declare variable vBLOB blob;
begin
 for select BLOBFIELD from Table1 into :vBLOB do
   insert into table2(BLOBFIELD) values(vBLOB);
end

Автор: Paradox 14.11.2003, 06:58
gray_k неа не катит, я ей и пробовал

Автор: gray_k 14.11.2003, 17:29
Только что проверил вариант с хранимой процедурой - работает на 100%. У меня движок - FB1.5, но на интербэйзе всё абсолютно тоже самое. Если хочешь вышлю тестовую базу, на которой проверял на мыло.

Автор: Paradox 17.11.2003, 13:33
gray_k у меня фб1, но не работало...
Данные пересылались, а при просмотре их с дэсктопа вылазеет всякая муть, т.е. происходит какое-то их искажение

Автор: Paradox 17.11.2003, 13:34
оффтоп gray_k а ты давно на полуторку пересел, как она тебе ?

Автор: gray_k 17.11.2003, 15:08
Пересед недавно, впечатление очень хорошее. Правда до этого у меня был IB6, так что про сравнение с фб1 ничего сказать не могу. А так, быстрее, глюков меньше, есть всякие вкусности типа COALESCE, CASE, NULLIF.
Был непонятный глюк, правда не у меня. Если ставили сразу фб, то прога не работала (использовались компоненты IBExpress от Борланд). Пришлось сначала ИБ поставить, а поверх уже ФБ. Прога на Д7. Скорее всего дело в этом. С Д6 таких проблем не было.

Автор: Paradox 18.11.2003, 07:13
Цитата
Правда до этого у меня был IB6, так что про сравнение с фб1 ничего сказать не могу.
Это одно и то же по сути

Автор: someone312002 21.11.2003, 10:54
с ИБ не работал, но если аналогия с ОРАКЛ подходит, то...
По шагам:
1. декларируешь переменную, в которую вгоняешь из Table1 блоб данные поля
2. подготавливаешь в table2 новое значение (insert into table2 (id, bFiedl) values (YourID, EMPTY_BLOB()))Empty_blob - это функция, вгоняющее в поле blob пустой блоб. При этом ты должен запомнить ид.
3. update table2 set bField = <Blob переменная> where id = YourID

всё.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)