Главная страница
    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.046 c
3-1100766672
TAN_K
2004-11-18 11:31
2004.12.19
Заполнение данных формы из справочника


4-1099300555
Laymer
2004-11-01 12:15
2004.12.19
Обои


14-1101902473
margel
2004-12-01 15:01
2004.12.19
Люди! Как писать DVD, "+" или "-"???


14-1101399274
vopros
2004-11-25 19:14
2004.12.19
Иду на Зенит через 30 минут


1-1101746408
hamster
2004-11-29 19:40
2004.12.19
Turbo pascal - выключение





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский