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

Вниз

Работать с BLOB полями в INTERBASE, через IBX компоненты.   Найти похожие ветки 

 
s_ser   (2003-06-24 12:25) [0]

Мастера плиз помогите. Как лутше работать с BLOB полями в INTERBASE, через IBX компоненты.


 
Johnmen   (2003-06-24 12:38) [1]

Пpиводим пpимepы pаботы с blob-полями (для FIBPlus, для IBX - аналогично).

pFIBDatase1BLOBFIELD - полe типа BLOB датасeта pFIBDatabase1
Чтение из блоб-поля в OleContainer
var S: TStream;
begin
if not pFIBDataset1BLOBFIELD.IsNull then
begin
S:=pFIBDataset1.CreateBlobStream(pFIBDataset1BLOBFIELD, bmRead);
try
OleContainer1.LoadFromStream(S)
finally
S.Free
end;
end;
end;

Запись в блоб-полe из OleContainer (вызываeтся в BeforePost)
var S: TStream;
begin
S:=pFIBDataSet1.CreateBlobStream(pFIBDataSet1BLOBFIELD,
bmReadWrite);
try
OleContainer1.SaveToStream(S)
finally
S.Free
end;
end;


 
s_ser   (2003-07-02 13:36) [2]

Та проблема вовсе не в том как запихнуть или потом извлечь от туда данные: если это рисунок то вообще нет никаких проблем, а вот если мы например запихиваем туда *.doc, *.xls,*.rar, то при оьратном заборе данных я получаю полный брет....


 
Johnmen   (2003-07-02 13:42) [3]

Приводи код, как запихиваешь и оьратно забираешь.


 
s_ser   (2003-07-04 17:01) [4]

Запихиваю так
procedure TfrmScan.SpeedButton_fileClick(Sender: TObject);
var
name,file_name,type_file:String;
i,count_name,current_slash:Integer;
begin
OpenPictureDialog1.Execute;
name:=OpenPictureDialog1.FileName;

count_name:=Length(name);
file_name:=ExtractFileName(name);
type_file:=ExtractFileExt(name);
try
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
except
begin
//
end;
end;
if OpenPictureDialog1.FileName<>"" then
begin
dmMain.Save_Transaction.Active:=false;
dmMain.Save_Transaction.StartTransaction;
dmMain.StoredProc_All.Transaction:=dmMain.Save_Transaction;
dmMain.StoredProc_All.Database:=dmMain.DatabaseKRU;
dmMain.StoredProc_All.StoredProcName:="ADD_LETTER_ARHIV";
dmMain.StoredProc_All.Prepare;
dmMain.StoredProc_All.ParamByName("D_ID_LETTER").Value:=id_later_now;
dmMain.StoredProc_All.ParamByName("D_PAGE_DOC").Value:=1;
dmMain.StoredProc_All.ParamByName("D_NAME_DOC").Value:=file_name;
dmMain.StoredProc_All.ParamByName("D_DOC").LoadFromFile(OpenPictureDialog1.FileName,ftMemo);
dmMain.StoredProc_All.ExecProc;
dmMain.Save_Transaction.Commit;

end;
Query_file.Active:=false;
Query_file.Active:=true;
end;
а забираю обратно так
procedure TfrmScan.DBGrid1DblClick(Sender: TObject);
var
Stream:TStream;
Name:String;
Save: TFileStream;
begin
Stream:=TStream.Create;
Stream:=Query_file.CreateBlobStream(Query_file.FieldByName("DOC"),bmRead);
Name:=Query_file.FieldByName("name_doc").asString;
Query_Save.Active:=false;
Query_Save.Transaction:=dmMain.Read_Transaction;
Query_Save.ParamByName("param_doc").Value:=Query_file.FieldByName("id_doc").Value;
Query_Save.Active:=true;
Stream:=TStream.Create;
Stream:=Query_Save.CreateBlobStream(Query_Save.FieldByName("DOC"),bmRead);
Save:=TFileStream.Create("c:\"+name,fmCreate);
Save.Write(Stream,Stream.Size);
Save.Free;
Stream.Free;
end;
Робовал разные типы полей BLOB



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

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

Наверх




Память: 0.46 MB
Время: 0.006 c
7-91935
3S
2003-05-17 20:12
2003.07.28
Как отключить служебные клавиши (win, alt+tab и др) в WinNT/2K/XP


14-91861
Proxy_HELP
2003-07-10 13:04
2003.07.28
Proxy


14-91868
Radionov Alexey
2003-07-11 07:26
2003.07.28
Цветовая задачка.


4-91938
firefox
2003-05-23 12:51
2003.07.28
Опять про Resource..... :(


14-91848
Lord Warlock
2003-07-10 09:34
2003.07.28
Звонилка-сервис





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