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

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

Оле объект и База данных [D7, Paradox]


Страницы:   1 2

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, или нет? Или у Вас склероз?


Страницы:   1 2

Наверх

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