![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Оле объект и База данных [D7, Paradox]
niko4543 © (2004-06-28 09:10:00)Здравствуйте.
Подскажите пожайлуста как можно сохранить в базу данных в блоб
поле ОЛЕ объект, вернее в ОЛЕ загружен вордовский документ и его надо сохранить в базу в блоб поле минуя сохранение в файл.А сохранённые оле объекты как файл и подгруженные в ОЛЕ контейнер я сохраняю таким образом:
var
OLE : TOLEContainer;
TBS : TBlobStream;
begin
OLE:=FindComponent('OleContainer1') as TOLEContainer;
if Assigned(OLE) then
with OLE do begin
{добавляю в таблицу новую запись}
Table1.Insert;
{создаюм поток, связанный с BLOB полем}
TBS:=TBlobStream.Create(Table1.FieldByName('OLE') as
TBLOBField, bmReadWrite);
{сохраняем OLE-объект в поток}
SaveToStream(TBS as TStream);
{уничтожаю поток}
TBS.Free;
Exit;
кно это к сожелению не подходит к загруженному в в ОЛЕ контейнер документ Ворд.
niko4543 (2004-06-28 09:48:00) [21]Спасибо за ответ.
Но немог бы ты объяснить код комментариями просто я хочу понять что как делать.
Курдль (2004-06-28 09:32:00) [22]
procedure TfrmEditTemplate.actOpenFileExecute(Sender: TObject);
var mstr: TMemoryStream;
begin
inherited;
if not OpenDialog1.Execute then exit;
OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, false);
mstr := TMemoryStream.Create;
try
OleContainer1.SaveToStream(mstr);
mstr.Seek(0, soFromBeginning);
if not ( sdqTemplate.State in [dsInsert, dsEdit]) then sdqTemplate.Edit;
sdqTemplateTEM_DATA.LoadFromStream(mstr);
finally
FreeAndNil(mstr);
end;
end;
niko4543 (2004-06-28 09:25:00) [23]Я уверены что OleContainer1 у меня есть просто раньше я проверял, так остаток кода. Но речь не об этом правельно. Если вы можете ответить на мой вопрос буду вам очень признателен.
Курдль (2004-06-28 09:19:00) [24]
> OLE:=FindComponent('OleContainer1') as TOLEContainer;
> if Assigned(OLE) then
Интересная конструкция... А Вы что, не уверены, есть ли OleContainer1, или нет? Или у Вас склероз?