在BCB 6 sp4里調試通過,歡迎大蝦批評指正。
//OpenDialog1打開JPEG圖像,Edit1保存圖像地址,Image1顯示圖像
//其他格式的圖像文件沒有試驗,可以試試。
OpenDialog1->FileName="";
if (OpenDialog1->Execute())
{
Edit1->Text= OpenDialog1->FileName;
Image1->Picture->LoadFromFile(Edit1->Text);
}
if (!Edit1->Text.IsEmpty())
{
ADOQuery1->Close(); //自行添加ADOConnention,并配置
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Select * from imgs");
ADOQuery1->Open();
ADOQuery1->Insert();
ADOQuery1->FieldByName("imgaddress")->AsString=Edit1->Text;
ADOQuery1->FieldByName("imgID")->AsInteger=Edit2->Text.toInt(); //保存圖像的編號
TBlobField *field=dynamic_cast<TBlobField *>(ADOQuery1->FieldByName("img")); //img 是image類型的數據
field->LoadFromFile(Edit1->Text); //這里是關鍵,要直接從文件調。不要調Image1,這樣很容易出“Jepg error #41”錯誤
ADOQuery1->Post();
ADOQuery1->Close();
}
//從數據庫里讀取圖像
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Select * from imgs ");
AnsiString ddd="where imgID=" +Edit1->Text;
ADOQuery1->SQL->Add(ddd);
ADOQuery1->Open();
if(ADOQuery1->RecordCount==1)
{
TStream *Stream1;
TJPEGImage *Pjp=new TJPEGImage();
try
{
Stream1=ADOQuery1->CreateBlobStream(ADOQuery1->FieldByName("img"), bmRead);
Pjp->LoadFromStream(Stream1);
Image2->Picture->Assign(Pjp);
delete Stream1;
}
__finally
{
delete Pjp;
}
}
PS:第一次發文章,不知道格式怎么樣。 ^_^