如何将bitmap存入数据库?最好有代码,谢谢!
如何将bitmap存入数据库?最好有代码,谢谢! 问题点数:20、回复次数:12Top
1 楼mingzhug(珠珠)回复于 2005-04-04 21:03:05 得分 0
为什么我的问题没有人回复呢?是因为分数给的少吗?Top
2 楼icwin(www.cat898.com.cn)回复于 2005-04-04 21:41:19 得分 5
(1).写入数据库
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtnFileLoadClick(TObject *Sender)
{
if(DM->ADOQuery1->State!=dsEdit)
{
ShowMessage("数据库不在编辑和插入状态!");
return;
}
String fn;
OpenDialog1->Filter = "所有文件(*.*)|*.*";
if(OpenDialog1->Execute())
fn = OpenDialog1->FileName;
if( (!fn.IsEmpty()) && FileExists(fn) )
{
(dynamic_cast<TBlobField *>(DM->ADOQuery1->FieldByName("FileBody")))->LoadFromFile(fn);
String sExt = ExtractFileExt(fn);
String sFn = ExtractFileName(fn);
sFn = sFn.SubString(0,sFn.Length()-sExt.Length());
DM->ADOQuery1->FieldByName("FileName")->AsString = sFn;
DM->ADOQuery1->FieldByName("Ext")->AsString = sExt;
}
}
//(2)从数据库中导出成文件.
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtnExportFileClick(TObject *Sender)
{
String ext = DM->ADOQuery1->FieldByName("Ext")->AsString;
ext = ext.Trim();
SaveDialog1->FileName = DM->ADOQuery1->FieldByName("FileName")->AsString;
SaveDialog1->Filter = ext.SubString(2,ext.Length()).UpperCase() + " 文件|*" + ext + "|所有文件(*.*)|*.*";
SaveDialog1->DefaultExt = ext;
if(SaveDialog1->Execute())
{
(dynamic_cast<TBlobField *>(DM->ADOQuery1->FieldByName("FileBody")))->SaveToFile(SaveDialog1->FileName);
}
}
+++++++++++++++++++++++Top
3 楼Friecin(雪客)回复于 2005-04-04 22:26:34 得分 5
在数据库中先添加一个 Image 类型的字段(myFile):
写入:
ADOQueryDoc->Append();
TBlobField *Field = (TBlobField*)ADOQuery->FieldByName("MyFile");
Field->LoadFromFile( "c:\\aaa.bmp" );
ADOQueryDoc->Post();
读出:
TBlobField *Field = (TBlobField*)ADOQueryDoc->FieldByName("Content");
Field->SaveToFile("c:\\Temp\\aaa.bmp");
开打从数据库中读出的文件:
ShellExecute(Handle,"Open","c:\\Temp\\aaa.doc",0,0,SW_SHOW);
Top
4 楼mingzhug(珠珠)回复于 2005-04-04 23:22:36 得分 0
对不起,我是想问可不可以把一个Tbitmap中的数据存入到数据库的blob字段?而不是把bmp文件存入数据库。那位能帮忙解答一下,谢啦!也谢谢以上两位^_^Top
5 楼oddtree()回复于 2005-04-05 00:36:51 得分 0
能说具体点吗?
是不是说Tbitmap的大小\名称\高度\宽度
是吗?Top
6 楼happyct(绿叶对大树的情怀)回复于 2005-04-05 09:24:59 得分 1
存Tbitmap的内容,和存一个Image有什么区别?
没有现存的代码,看看这个
http://search.csdn.net/Expert/topic/110/110050.xml?temp=.7182886Top
7 楼happyct(绿叶对大树的情怀)回复于 2005-04-05 09:26:42 得分 5
简单归纳
写入:
ADOQueryDoc->Append();
TBlobField *Field = (TBlobField*)ADOQuery->FieldByName("MyFile");
//Field->LoadFromFile( "c:\\aaa.bmp" );
Field->LoadFromStream(自己的东西);
ADOQueryDoc->Post();
Top
8 楼happyct(绿叶对大树的情怀)回复于 2005-04-05 09:30:20 得分 0
补充一下,如果你的文件很大,记得设置一下BlobSize
Indicates the number of bytes of data contained in the blob field on the current record.Top
9 楼mingzhug(珠珠)回复于 2005-04-06 16:25:27 得分 0
过程是这样的:我先显示图片,同时得到了bitmap,然后再存入数据库时,我想直接把bitmap的值存进去。你们的方法一是LoadFromFile( "c:\\aaa.bmp" ),我不想用这种方法;二是LoadFromStream(自己的东西);问题是怎么把bitmap读成stream?
Top
10 楼onemonth(CSDN真烦)回复于 2005-04-07 18:39:16 得分 4
保存bmp代码:
windows::TBitmap * bmp;
TPerson * per;
per = new TPerson("张三");
per->SetValue<Windows::TBitmap*>("photo", bmp);
per->Save();
Top
11 楼mingzhug(珠珠)回复于 2005-04-25 15:26:20 得分 0
我自己找到了一种简单的方法:
TMemoryStream *pMS = new TMemoryStream;
Bitmap1->SaveToStream(pMS);
Table1imageedge->LoadFromStream(pMS);
Table1imageedge是一个blob型的数据库字段Top
12 楼ZengMuAnSha(曾牧暗鲨)回复于 2005-04-27 08:59:22 得分 0
FAQ 里有一大把 这是个超老问题了Top
相关问题
- 求asp.net中用vb.net将图片存入数据库的代码!!
- 代码分析:从读卡机上取得数据存入数据库
- 请问Delphi5.0怎样写代码图片存入数据库。(在线等待十分急,分不够再加)
- 为什么我这段代码不能将大对象存入ORACLE数据库,帮忙看一样
- 文件存入Oracle数据库的BLOB类型(大对象)字段的代码,并问些相关问题
- 请问如何我用server.urlencode()将一段html代码存入sql server数据库,读出时怎么还原?
- 求c#示例代码:把c:\1.jpg存入sql的image字段,再从数据库读出,存为c:\2.jpg
- 求代码,如何将一段有格式的文本按原样存入数据库?
- 代码创建数据库
- 如何将图片存入数据库?




