Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков КРЭКЕРСТВО + ПРОГРАММИРОВАНИЕ 2017
(актуальность: май 2017)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Чтение OLE из Blob поля Paradox

Автор: Eryk

...после моих дискуссий с людьми из службы технической поддержки Borland вывод один -- это невозможно!

Попробуйте так:


 procedure TForm1.SpeedButton1Click(Sender: TObject);
 var
   b: TBlobStream;
 begin
   try
     b := TBlobStream.Create((Table1.FieldByName('OLE') as TBlobField),bmRead);
     OLEContainer1.LoadFromStream(b);
   finally
     b.free;
   end;
 end;
 

...и:


 procedure TForm1.SpeedButton2Click(Sender: TObject);
 var
   b: TBlobStream;
 begin
   try
     Table1.Insert;
     b := TBlobstream.Create((Table1.FieldByName('OLE') as TBlobField),bmReadWrite);
     OLEContainer1.SaveToStream(b);
     Table1.Post;
   finally
     b.free;
   end;
 end;
 

Я, кажется, припоминаю несколько ошибок GPFs с этим кодом, но это, вероятно, связано с тем, что я использую WinNT с другим распределением памяти... тем не менее, основные функции работали как положено (т.е. данные сохранялись и загружались). Основная специфика проявилась в том, что PdoxWIN не смог прочесть данные TOLEContainer. Но это результаты моих экспериментов и предположений, исходя из которых PdoxWIN ожидает 8-байтовый заголовок BLOB-поля, который ему просто не дает TOLEContainer... если это так, то это легко обойти.




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS