Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файла из Blob поля 
:(
    Опции темы
BSV_Sergey
  Дата 19.11.2004, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 19.11.2004
Где: г. Москва

Репутация: нет
Всего: 3



Добрый день всем.
Нужен совет.
В БД MSSQL есть таблица с полем Image.
В неё сохраняется файл отчета Crystal Reports при помощи:

Var fs : TFileStream;

begin
ADOQuer1.Close;
ADOQuer1.SQL.Clear;
ADOQuer1.SQL.ADD('insert into test (blob) values (:blob)');
fs :=TFileStream.Create('c:\report1.rpt',fmOpenRead or fmShareDenyWrite);
if fs <> nil then
begin
ADOQuer1.Parameters.ParamByName('blob').LoadFromStream(fs,ftBlob);
ADOQuer1.ExecSQL;
end;
fs.Free;
end;

Необходимо прочитать этот файл из БД и запустить через Crystal Report Engine API.
Как запустить файл я знаю, проблема в том, что я не знаю как его прочитать из БД и либо сохранить на диске а потом запустить либо запустить не сохраняя.

Подскажите что можно сделать.
Зарание спасибо.
PM MAIL   Вверх
Vit
Дата 19.11.2004, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



что-то типа

(ADOQuery.fieldbyname('asdasas') as TBlobField).SaveToFile


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
BSV_Sergey
Дата 19.11.2004, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 19.11.2004
Где: г. Москва

Репутация: нет
Всего: 3



Спасибо, я правда сделал немного по другому
в принципе работает.
Текст процедуры привожу ниже, возможно кому нибудь пригодится:

Var fs : TFileStream;
strim1 : TStream;

begin
ADOQuery1.Close;
ADOQuery1.SQL.Cleare;
ADOQuery1.SQL.Add('select blob from test where id = 2')
ADOQuery1.Open;
strim1 := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('blob'), bmRead);
fs := TFileStream.Create('c:\report1.rpt',fmCreate)
try
fs.CopyFrom(strim1,strim1.size);
finally
fs.Free;
end;
strim1.Free;
end;
PM MAIL   Вверх
Vit
Дата 19.11.2004, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Как-то ты очень сложно... Два потока...


ADOQuery.fields[1]
или
ADOQuery.fieldbyName('asdas')

Выдают результат в ввиде одного из потомков TField, для Blob полей в ввиде TBlobField. TBlobField - сам по себе уже имеет методы потоков SaveToFile, LoadFromFile, SaveToStream, LoadFromStream...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


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

1. Базы данных (Paradox, Oracle и т.п.)

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


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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