/**
* 把图像保存到SQL Server数据库中
*/
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(Format("Select * from imgs where imgID=%s",ARRAYOFCONST((Edit1->Text))));
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;
}
}
* 把图像保存到SQL Server数据库中
*/
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(Format("Select * from imgs where imgID=%s",ARRAYOFCONST((Edit1->Text))));
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;
}
}