Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение рисунков в MSSQL [D5, MSSQL]


Женя_кэт ©   (2007-08-24 10:00:00) 

Использую компонент TRxDbRichEdit.Загружаю на него текст и картинки(.JPG) извне.В БД создано поле формата IMage.Попытка сохранить (Post) в этом поле просто текста идет на ура,а вот с картинкой ничего не выходит.Сообщение:
Invalid BLOB length.
Понимаю что так прямолинейно сохранить BLOB нельзя,но не могу найти механизм как это сделать.
Подскажите,пожалуйста.


Женя_кэт   (2007-08-28 09:40:00) [1]

Еще одна попытка:

procedure TForm1.Button1Click(Sender: TObject);
begin

TRxDBRichEdit.Lines.SaveToFile('c:\spline\ww1.rtf');

if not (Qv.State in [dsInsert, dsEdit]) then Qv.Edit;

(Dv.DataSet.fieldbyname('VV') as TBlobField).LoadFromFile('c:\spline\ww1.rtf');

Qv.Post;

---На Post идет ошибка Invalid BLOB length-----
Если в файле только текст,то ошибка не возникает,а если текст и картинка,то идет ошибка.
Что я делаю неправильно?
end;


Desdechado   (2007-08-27 15:08:00) [2]

>  Incompatible types TBlobStream TStream
Посмотри, что возвращает указанный метод.


Женя_кэт   (2007-08-27 15:04:00) [3]


> Dataset.CreateBlobStream
> ?


Я посмотрела пример.Опять вопрос:
var
 Stream1, Stream2 : TBlobStream;
begin
   
      {Dv- TDataSource}
 Dv.DataSet.Edit;
   {FieldByName('VV')-поле,куда хочу сделать запись}
   Stream2 := Dv.DataSet.CreateBlobStream(Dv.DataSet.FieldByName('VV'), bmReadWrite);
   Ошибка:
        Incompatible types TBlobStream TStream
 end;

Дальше и двинуться не могу.
Вообще-то у меня была мысль записывать сначала RTF,а потом уже из него писать в поле базы.Может это и ни к чему?


Desdechado   (2007-08-27 11:10:00) [4]

Dataset.CreateBlobStream
?


Женя_кэт   (2007-08-27 09:36:00) [5]


> Т.е. ты RTF записываешь в blob или картинки отдельно?
> Покажи код

procedure TForm1.InsertBitmap(Sender: TObject);
var
 Pict: TPicture;
begin
 with FOpenPictureDialog do begin
   if Execute then begin
     Pict := TPicture.Create;
     try
       Pict.LoadFromFile(FileName);
       Clipboard.Assign(Pict);
       Editor.PasteFromClipboard;
     finally
       Pict.Free;
     end;
   end;
 end;
end;


Женя_кэт   (2007-08-27 09:32:00) [6]


> 1. Какой механизм доступа к БД (BDE, ADO, что-нибудь другое)?
>
> 2. Какой DataSet используется (TTable, TADOTable, TQuery,
>  TClientDataSet, что-нибудь другое)?

Доступ через BDE.Использую TQuery,TDataSource


Desdechado   (2007-08-25 17:20:00) [7]

>  TRxDbRichEdit.Загружаю на него текст и картинки(.JPG) извне.
> В БД создано поле формата IMage.
Т.е. ты RTF записываешь в blob или картинки отдельно?
Покажи код.


Ega23   (2007-08-24 10:48:00) [8]

1. Какой механизм доступа к БД (BDE, ADO, что-нибудь другое)?
2. Какой DataSet используется (TTable, TADOTable, TQuery, TClientDataSet, что-нибудь другое)?


Наверх

Титульная страница Поиск, карта сайта Написать письмо