数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
BCB 6 sp4 + SQL Server 2k 存取JPEG图像,绝对好用!

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

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




相关文章

相关软件