急!!!如何把图片存入oracle数据库的blob字段?如何从oracle数据库的blob字段取图片?

porschetttt 2005-01-19 07:23:00
急!!!如何把图片存入oracle数据库的blob字段?如何从oracle数据库的blob字段取图片?
有详细点的吗?
...全文
243 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
slwang2003 2005-04-11
  • 打赏
  • 举报
回复
好贴收藏
samchoy 2005-01-20
  • 打赏
  • 举报
回复
参考一下

// 把Image1显示的图片写入到Employee表的Photo字段
Query1->RequestLive = true;
Query1->SQL->Clear();
Query1->SQL->Add("SELECT Photo FROM Employee WHERE Id = :Id");
Query1->Prepare();
Query1->Params->Items[0]->AsString = "0001";
Query1->Open();
Query1->Edit();
if (Image1->Picture->Graphic)
{
TBlobStream *Stream = new TBlobStream( (TBlobField *)Query1->FieldByName("Photo"),
bmReadWrite );
Stream->Seek(0, soFromBeginning);
try
{
Image1->Picture->Bitmap->SaveToStream(Stream);
}
__finally
{
delete Stream;
}
}
else
((TBlobField *)Query1->FieldByName("Photo"))->Clear();
Query1->Post();
Query1->Close();
Query1->UnPrepare();
Query1->RequestLive = false;
porschetttt 2005-01-20
  • 打赏
  • 举报
回复
ADOTable1里面具体写的是什么?我用TQuery来写,提示cannot modify read-only dataset,怎么办?
samchoy 2005-01-20
  • 打赏
  • 举报
回复
// 方法1
if (!((TGraphicField *)Query1->FieldByName("Photo"))->IsNull)
Image1->Picture->Assign((TGraphicField *)Query1->FieldByName("Photo"));
else
Image1->Picture = NULL;


// 方法2
TBlobStream *Stream = new TBlobStream( (TBlobField *)Query1->FieldByName("Photo"),
bmRead );
Stream->Seek(0, soFromBeginning);
if (Stream->Size > 0)
Image1->Picture->Bitmap->LoadFromStream(Stream);
else
Image1->Picture = NULL;
delete Stream;
porschetttt 2005-01-20
  • 打赏
  • 举报
回复
从数据库读出图片呢?
samchoy 2005-01-19
  • 打赏
  • 举报
回复
文件写入BLOB域
if (OpenDialog1->Execute())
{
ADOTable1->Edit();
((TBlobField *)ADOTable1->FieldByName("Values"))->LoadFromFile(OpenDialog1->FileName);
ADOTable1->Post();
}


读取BLOB域并写到文件中
if (SaveDialog1->Execute())
{
ADOTable1->First();
((TBlobField *)ADOTable1->FieldByName("Values"))->SaveToFile(SaveDialog1->FileName);
}

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧