Перейти к содержанию
Fire Monkey от А до Я
  • 0

Выгрузка/Загрузка картинки в Blob поле SQLLite под Android/iOS


masmat

Вопрос

Есть две таблицы (Таб1, Таб2), в каждой из них есть BLOB поле (BLOB1, BLOB2).

В Таб1.BLOB1 есть картинка в формате PNG.

 

Вопрос, как из Таб1.BLOB1 скопировать картинку в Таб2.BLOB2 в SQL запросе?

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Да прямо запросом: insert into Таб2  (BLOB2) select BLOB1 from Таб1

 

Хм. у меня Query для Таб1 и Таб2 разные, т.к. файлы БД разные, и оба подключены к разным FDConnection.

В этом варианте такой запрос не проканает. Как мне тут указать, что select нужно выполнять в другом Query.

Или получается, что нужно делать темповую таблицу в существующем файле БД, потом оттуда запросом перетаскивать картинку, а потом временную таблицу удалять?

Думаю, что Android мне не простит столько телодвижений и начнет тормозить

Ссылка на комментарий
  • 0

))) Прикольно, а что ж вы этого не указали! Это самое главное))) Не соблюли правила форма! Мы же не можем попасть вам в мозг! А зачем делать темповую, не совсем понял? Попробуйте достать из первой базы в поток, и вставить во вторую из потока.

Ссылка на комментарий
  • 0

))) Прикольно, а что ж вы этого не указали! Это самое главное))) Не соблюли правила форма! Мы же не можем попасть вам в мозг! А зачем делать темповую, не совсем понял? Попробуйте достать из первой базы в поток, и вставить во вторую из потока.

Сорри, действительно тормознул.

 

Вот через поток и не могу вставить в blob поле. В поток то я нашел как выгрузить, 2-3 варианта, а вот как загрузить, вот это и проблемой встало. Не могу сообразить

Ссылка на комментарий
  • 0

 

 

а вот как загрузить, вот это и проблемой встало. Не могу сообразить

когда-то делал так:

 

aMStream := TMemoryStream.Create;
// считываем в aMStream, потом записываем в параметр пишущего запроса:
{$IF CompilerVersion >= 28}
  aQuery.Params[i].SetStream(aMStream, ftBlob, true);
{$ELSE}
  aQuery.Params[i].LoadFromStream(aMStream, ftBlob, 0);
{$ENDIF}
Ссылка на комментарий
  • 0

 

 

 

а вот как загрузить, вот это и проблемой встало. Не могу сообразить

когда-то делал так:

 

aMStream := TMemoryStream.Create;
// считываем в aMStream, потом записываем в параметр пишущего запроса:
{$IF CompilerVersion >= 28}
  aQuery.Params[i].SetStream(aMStream, ftBlob, true);
{$ELSE}
  aQuery.Params[i].LoadFromStream(aMStream, ftBlob, 0);
{$ENDIF}

Спасибо. Буду пробовать

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...