Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

Загрузка из BLOB поля в OleContainer   Найти похожие ветки 

 
Snip ©   (2004-11-19 17:31) [0]

Привет Всем! Такая проблема, загружаю через поток из BLOB поля IB в поток, а из него в OleContainer, при загрузки в контейнер вылетает ошибка Out of memory. Что такое может быть такое?


 
Sergey_Masloff   (2004-11-19 22:30) [1]

>Что такое может быть такое?
В 17 строке посмотри...
На самом деле неплохо глянуть код как ты это делаешь ;-)


 
Snip ©   (2004-11-20 13:07) [2]


var
 Table: TIBTable;
begin
 try
   try
     Table:=TIBTable.Create(Application);
     Table.Database:=DM.IBDatabase;
     Table.TableName:="ITEMS";
     Table.Open;
     Table.Filter:="id = "+IntToStr(Integer(ListView.Selected.Data));
     Table.Filtered:=True;
     OleContainer.LoadFromStream(Doc.CreateBlobStream(TBLOBField(Table.ieldByName("ole")), bmRead));
   except
   end;
 finally
   if Assigned(Stream) then
     Stream.Free;
   if Assigned(Table) then
     Table.Free;
 end;
end;


 
Snip ©   (2004-11-20 13:08) [3]


if Assigned(Stream) then
 Stream.Free;

Лишнее :))))


 
Snip ©   (2004-11-20 13:10) [4]

Вот, делаю уже так:

var
Table: TIBTable;
begin
try
  try
    Table:=TIBTable.Create(Application);
    Table.Database:=DM.IBDatabase;
    Table.TableName:="ITEMS";
    Table.Open;
    Table.Filter:="id = "+IntToStr(Integer(ListView.Selected.Data));
    Table.Filtered:=True;
    OleContainer.LoadFromStream(Table.CreateBlobStream(TBLOBField(Table.FieldByName("ole")), bmRead));
  except
  end;
finally
  if Assigned(Table) then
    Table.Free;
end;
end;


 
Johnmen ©   (2004-11-21 02:29) [5]

http://delphimaster.net/view/3-1100439265/


 
Fran   (2004-11-21 12:23) [6]

Я делаю так:
1. создать поток
2. записвть в него BLOB
3. сохраняю поток в файл
4. загрузить из файла Ole
5. удаляю файл с диска

загрузить документ в OLE сразу не получается из-за разных  Windows-ов и офисов у клиентов, только через файл все работает надежно.

Пример кода:

procedure btnReadBlobClick(Sender: TObject);
var
A : TStream;
B : TMemoryStream;//FIBBlob
begin
// Blob_Ole - OleConteiner
 if not (Blob_Ole.State in [osEmpty])
 then Blob_Ole.DestroyObject;

  try
  Screen.Cursor := crHourGlass;
   with quGetBlob do  begin
   Close;
   SelectSQL.Clear;
   SelectSQL.Add("SELECT BLOBBIN FROM INHFOTO");
   SelectSQL.Add("WHERE REC_NO = "+IntToStr(nRecBlob));
   Open;
   Edit;
   A := CreateBlobStream(FieldByName("BLOBBIN"), bmRead);// as TBlobField
   A.Position := 0;
   B := TMemoryStream.Create;
   B.LoadFromStream(A);
   B.Position := 0;
   B.SaveToFile(gsCurrDirZAGS+"Tmpfiles\"+sFileNameBlob);
   B.Position := 0;
         Blob_Ole.CreateObjectFromFile(gsCurrDirZAGS+"Tmpfiles\"+sFileNameBlob,False);
         Blob_Ole.Visible := True;
         Blob_Ole.Hint := sDescBlob+#10#13+"Ôàéë: "+sFileNameBlob;

   Close;
   end;//with dmMain.quGetBlob

  finally
  DeleteFile(gsCurrDirZAGS+"Tmpfiles\"+sFileNameBlob);
  B.Free;
  A.Free;
  Screen.Cursor := crDefault;
  end;//try

 end;//if trvListBlob.Selected.Data <> nil
end;



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

Форум: "Базы";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
14-1101756973
_none_
2004-11-29 22:36
2004.12.19
>Почему у Microsoft ничего не выйдет с .Net


4-1099409218
Vladik
2004-11-02 18:26
2004.12.19
Что тут неверно в функции API


14-1101575891
OneFragLeft
2004-11-27 20:18
2004.12.19
Отправка дисков по почте.


14-1101848169
Некто
2004-11-30 23:56
2004.12.19
Алгоритм работы виртуальной памяти


3-1100631765
dUM
2004-11-16 22:02
2004.12.19
Сортировка базы + редактирование





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский