Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.23;
Скачать: CL | DM;

Вниз

Сохранение рисунков в MSSQL   Найти похожие ветки 

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

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


 
Ega23 ©   (2007-08-24 10:48) [1]

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


 
Desdechado ©   (2007-08-25 17:20) [2]

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


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


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

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


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


> Т.е. ты 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;


 
Desdechado ©   (2007-08-27 11:10) [5]

Dataset.CreateBlobStream
?


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


> 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 15:08) [7]

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


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

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

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;



Страницы: 1 вся ветка

Текущий архив: 2007.09.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
2-1188203037
DimOk
2007-08-27 12:23
2007.09.23
Получение почты в Delphi


6-1169998704
ChainikDenis
2007-01-28 18:38
2007.09.23
DOS приложение гробит обмен по UDP


2-1188393427
gentos
2007-08-29 17:17
2007.09.23
ActiveCell.FormulaR1C1 = "=SUM(R[-CInt(num)]C:R[-1]C)"


15-1188021787
Kostafey
2007-08-25 10:03
2007.09.23
С днем рождения ! 25 августа


4-1175167368
MikeZ
2007-03-29 15:22
2007.09.23
Нажатие на элемент меню чужого приложения