![]() |
|
|
![]()
|
|
| BSV_Sergey |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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. Как запустить файл я знаю, проблема в том, что я не знаю как его прочитать из БД и либо сохранить на диске а потом запустить либо запустить не сохраняя. Подскажите что можно сделать. Зарание спасибо. |
|||
|
||||
| Vit |
|
|||
![]() 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 |
|||
|
||||
| BSV_Sergey |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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; |
|||
|
||||
| Vit |
|
|||
![]() 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 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |