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