Главная страница
    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.046 c
9-1111131446
Xeno
2005-03-18 10:37
2005.06.14
Как узнать количество полигонов в кадре


14-1116743587
vidiv
2005-05-22 10:33
2005.06.14
time.nist.gov


11-1098279058
Unknown Mystic
2004-10-20 17:30
2005.06.14
Текстовые файлы.


4-1114281844
Host
2005-04-23 22:44
2005.06.14
Как проверить возможность записи в файл


1-1117471717
Karlson
2005-05-30 20:48
2005.06.14
Значение параметра Sender в ComboBoxChange(Sender: TObject)





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