日期:2014-01-15  浏览次数:20621 次


在BCB 6 sp4里调试通过,欢迎大虾批评指正。

//OpenDialog1打开JPEG图像,Edit1保存图像地址,Image1显示图像//其他格式的图像文件没有试验,可以试试。

    OpenDialog1->FileName="";    if (OpenDialog1->Execute())       {          Edit1->Text=  OpenDialog1->FileName;          Image1->Picture->LoadFromFile(Edit1->Text);       }

// 下面:把图像保存到SQL Server数据库中

 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:第一次发文章,不知道格式怎样样。 ^_^