Советы по Delphi

         

Как хранить изображения в базе, читать их и модифицировать?


Konstantin Chumak отвечает:

Народ часто спрашивает как хранить изображения в базе, читать их и модифицировать.

Данный пример работает хорошо для базы на ACCESS.

Изображение должно храниться в поле типа OLEOBJECT //CREATE TABLE photodb (ID LONG, Name STRING, Dib OLEOBJECT); // Load images from Database void LoadImageFromDB(long &id, String &Name, Graphics::TBitmap *image) { String table = "soil"; String filedPic = "Dib"; // TADOQuery *qr// String SQLcommand = "SELECT * FROM " + table + ";"; qr->Close(); qr->SQL->Clear(); qr->SQL->Add(SQLcommand); qr->Open(); qr->First(); while( !qr->Eof ) { id = qr->FieldByName("ID")->AsInteger; Name = qr->FieldByName("Name")->AsString; Image->Assign(qr->FieldByName(filedPic)); break; qr->Next(); } qr->Close(); } // заменить изображение void UpdateImageInDB(long id, String Name, Graphics::TBitmap *image) { String table = "soil"; String filedPic = "Dib"; qr->Close(); qr->SQL->Clear(); qr->SQL->Add("UPDATE "+table+" SET "+filedPic+"=:img WHERE ID = "+id+";"); TParameter *param = qr->Parameters->Items[0]; // img - parameter param->DataType = ftGraphic; param->Assign(image); qr->ExecSQL(); qr->Close(); } [001939]



Содержание раздела