powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Word файл в Blob поле и обратно
6 сообщений из 6, страница 1 из 1
Word файл в Blob поле и обратно
    #32203741
Andrew Volkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Может кто знает, как можно вордовский файл запихнуть в блоб поле, а потом его оттуда достать??

Имеется в виду не обязательно вордовский файл - сама идея файл в блоб сохранить, а потом оттуда вытащить и на жесткий сохранить.

Как вставить я вроде нашел (незнаю насколько это работает, так как не удается вытащить)

Код: plaintext
1.
2.
  if OD.Execute then sp.Params[ 0 ].LoadFromFile(OD.FileName, ftBlob);
     sp.ExecProc;
     tr.Commit;


Код: plaintext
1.
2.
3.
CREATE TABLE TEMP (
       BL BLOB SUB_TYPE  0  NOT NULL
);


Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE PROCEDURE ADDBLOBFIELD (IBL BLOB )
AS 

begin
INSERT INTO TEMP  (Bl)
VALUES (:IBl);
end
...
Рейтинг: 0 / 0
Word файл в Blob поле и обратно
    #32203749
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю, какими ты пользуешся компонентами, я пользуюсь freeIBcomponents
также не знаю важно ли это :-) но вот как у меня работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var 
    bf:TBlobField;
    s:TMemoryStream;
begin
     bf:=TBlobField(qc.fieldbyname('creater_logo'));
     s:=TMemoryStream.create();
     bf.SaveToStream(s);
     s.SaveToFile('blabla.bla');
     s.free;
end

Вообще, видимо и без стрима можно. просто этот метод у меня с джипегами работал.
а запись туда так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
var fs:TFileStream;
begin
     if not od.execute then exit;
     fs:=TFileStream.create(od.filename, 0 );
     with q do
     begin
          close;
          sql.clear;
          sql.add('update product set product_photo=:p0 where product_id=:p1');
          params[ 0 ].loadfromstream(fs,ftBlob);
          params[ 1 ].asinteger:=qp.fieldbyname('product_id').asinteger;
          execsql;
     end;
     qp.close;
     qp.open;
     fs.free;
end;
...
Рейтинг: 0 / 0
Word файл в Blob поле и обратно
    #32203752
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гоню... стандартные компоненты с третьих делфей :-)
...
Рейтинг: 0 / 0
Word файл в Blob поле и обратно
    #32203762
Andrew Volkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да - залетает в оба конца. Спасибо большое.


А еще вопрос - имя файла теряется или нет (то что его можно отдельно засейвить енто ясно), чтобы не сохранять в имя от балды.

и можно ли несколько файлов заваливать, через какой-нибудь разделитель в одно поле.

Типа если уже чето есть, мы его опять читаем в МемоСтрим, прибавляем разделитель и добавляем новый поток и все заваливаем в Блоб.
...
Рейтинг: 0 / 0
Word файл в Blob поле и обратно
    #32203862
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-)

имя файла теряется. а чегож ему не терятся?

насчет нескольких файлов. я как-то делал что-то типа видео, основанного на джипегах. так я делал так - первые четыре байта определяют размер картинки джипеговой, потом идет как-бы файл, потом все опять. можешь примерно так сделать. только непонятно зачем? лучше сделай разные записи в базе.
...
Рейтинг: 0 / 0
Word файл в Blob поле и обратно
    #32204002
Andrew Volkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я уже так и подумал. Сбацаю лучше еще одну тейблу.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Word файл в Blob поле и обратно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]