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

Вниз

Сохранение изображения в базе Access   Найти похожие ветки 

 
Lex_! ©   (2005-05-09 08:23) [0]

+ чтение изображения из файла и показ на форме.
Никто примерчик не подкинет?...


 
aus   (2005-05-09 08:42) [1]

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


 
Lex_! ©   (2005-05-09 09:03) [2]

Ms SQL Server это я бы сказал не Access и вроде как принцип немнога не такой должен быть?...


 
aus   (2005-05-09 12:06) [3]

Lex_! ©   (09.05.05 9:03) [2]
вроде как принцип

Как раз принцип одинаков для любой БД.


 
Lex_! ©   (2005-05-10 07:12) [4]

Но какой там должен быть тип у поля чтобы туда сохранить картинку??....

И еще всетки как его потом оттуда прочитать то?....


 
Lex_! ©   (2005-05-10 07:13) [5]

Всмысле на форме показать ... из базы..


 
sniknik ©   (2005-05-10 12:01) [6]

> Но какой там должен быть тип у поля чтобы туда сохранить картинку?
в самом аксессе в конструкторе это "поле OLE обьекта"
если же поле делать запросом (к примеру из дельфи-ado-jet, или тогоже аксесса) то тип OLEOBJECT или синоним один из - LONGBINARY, GENERAL или IMAGE.


 
Mr.F   (2005-05-10 14:43) [7]

Падождите шо так сложно.
Усё очень просто запихиваеш в ето поле путь к картинки в виде текста, потом считываеш когда тебе надобно и загружеш картинку находящейся по данному пути


 
Lex_! ©   (2005-05-11 04:01) [8]

Картинки в базе хранить нужно а не путь к картинке.
Спасибо всем. :)


 
AlexTregubov   (2005-05-12 09:30) [9]

Из БД:

   //Вывод фото
   try
     Bitmap:=TBitmap.Create;
     BS:=CreateBlobStream(FieldByName("Foto"), bmRead);
     if BS.Size>82 then begin
       BS.Seek(82, soFromBeginning);
       Bitmap.LoadFromStream(BS);
       imgFoto.Picture.Assign(Bitmap);
     end else imgFoto.Picture:=nil;
   finally
     Bitmap.Free;
     BS.Free;
   end;

Здесь 82 байта служебной информации - чтобы картинки можно было смотреть и через Access
В базу:

//Сохранение картинки в БД
procedure TfrmImageImport.spbSaveClick(Sender: TObject);
const
 //Сигнатура точечного рисунка для вставки через OLE
 //В начале
 sgntB=#21#28#51#0#2#0#0#0#17#0#14#0#20#0#37#0#255#255#255#255#210#238#247#229+
       #247#237#251#233#32#240#232#241#243#237#238#234#0#80#97#105#110#116#46#80+
       #105#99#116#117#114#101#0#1#5#0#0#2#0#0#0#7#0#0#0#80#66#114#117#115#104+
       #0#0#0#0#0#0#0#0#0#64#245#0#0;
 //В конце
 sgntE=#0#0#0#0#0#0#0#0#0#0#1#5#0#0#0#0#0#0#192#173#5#154;
var
 str: string;
 bmpSave: TBitmap;
 BS: TStream;
begin
 with Data.QueryMain do begin
   str:="Добавить изображние к записи о ""#13+
        FieldByName("Fam").AsString+" "+
        FieldByName("Imy").AsString+" "+
        FieldByName("Otchest").AsString+"" ?";
   if MessageBox(Handle, @str[1],"Внимание!", MB_YESNO or MB_ICONWARNING) = IDYES then begin
     Edit;
     try
       bmpSave:=TBitmap.Create;
       bmpSave.Width:=wR; bmpSave.Height:=hR; bmpSave.PixelFormat:=pf24bit;
       bmpSave.Canvas.CopyRect(Rect(0,0,wR,hR),bmp.Canvas,Ramka);
       BS:=CreateBlobStream(FieldByName("Foto"), bmWrite);
       BS.Write(sgntB,82);
       bmpSave.SaveToStream(BS);
       BS.Write(sgntE,22);
     finally
       bmpSave.Free;
       BS.Free;
     end;
     Post;      
   end;
 end;
end;


 
AlexTregubov   (2005-05-12 09:31) [10]

Из БД:

   //Вывод фото
   try
     Bitmap:=TBitmap.Create;
     BS:=CreateBlobStream(FieldByName("Foto"), bmRead);
     if BS.Size>82 then begin
       BS.Seek(82, soFromBeginning);
       Bitmap.LoadFromStream(BS);
       imgFoto.Picture.Assign(Bitmap);
     end else imgFoto.Picture:=nil;
   finally
     Bitmap.Free;
     BS.Free;
   end;

Здесь 82 байта служебной информации - чтобы картинки можно было смотреть и через Access
В базу:

//Сохранение картинки в БД
procedure TfrmImageImport.spbSaveClick(Sender: TObject);
const
 //Сигнатура точечного рисунка для вставки через OLE
 //В начале
 sgntB=#21#28#51#0#2#0#0#0#17#0#14#0#20#0#37#0#255#255#255#255#210#238#247#229+
       #247#237#251#233#32#240#232#241#243#237#238#234#0#80#97#105#110#116#46#80+
       #105#99#116#117#114#101#0#1#5#0#0#2#0#0#0#7#0#0#0#80#66#114#117#115#104+
       #0#0#0#0#0#0#0#0#0#64#245#0#0;
 //В конце
 sgntE=#0#0#0#0#0#0#0#0#0#0#1#5#0#0#0#0#0#0#192#173#5#154;
var
 str: string;
 bmpSave: TBitmap;
 BS: TStream;
begin
 with Data.QueryMain do begin
   str:="Добавить изображние к записи о ""#13+
        FieldByName("Fam").AsString+" "+
        FieldByName("Imy").AsString+" "+
        FieldByName("Otchest").AsString+"" ?";
   if MessageBox(Handle, @str[1],"Внимание!", MB_YESNO or MB_ICONWARNING) = IDYES then begin
     Edit;
     try
       bmpSave:=TBitmap.Create;
       bmpSave.Width:=wR; bmpSave.Height:=hR; bmpSave.PixelFormat:=pf24bit;
       bmpSave.Canvas.CopyRect(Rect(0,0,wR,hR),bmp.Canvas,Ramka);
       BS:=CreateBlobStream(FieldByName("Foto"), bmWrite);
       BS.Write(sgntB,82);
       bmpSave.SaveToStream(BS);
       BS.Write(sgntE,22);
     finally
       bmpSave.Free;
       BS.Free;
     end;
     Post;      
   end;
 end;
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.036 c
1-1116922813
r13
2005-05-24 12:20
2005.06.14
Мерцание формы


8-1109255157
seregka
2005-02-24 17:25
2005.06.14
*.TGA и Timage


11-1084360316
AlexR
2004-05-12 15:11
2005.06.14
ScrollBox и мышь


9-1110870243
DeadMeat
2005-03-15 10:04
2005.06.14
Software Emulation


14-1117090793
Kerk
2005-05-26 10:59
2005.06.14
С днем рожденья! 26 мая





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