用TBlobStream来存储
sql语句好像不能把二进制数据存入数据苦
sql语句好像不能把二进制数据存入数据苦
解决方案 »
- 将c语言写的代码转换成delphi的。在线等!急!急!
- logonUser所需的SE_TCB_NAME权限在哪里设置?请帮
- 超级菜鸟问题:怎么用SaveDialog控件把memo1 里的内容保存起来啊??————在线等待!!!
- 关于打印pdf文件的问题
- 请问哪有fft的pascal源码或可直接用的dll
- 关于TreeView试例中在Delphi自带的Demo文件夹中有吗?
- 谁有installshield最新版本,installshield如何做成中文提示
- to:taber(旺财,吃饭喽!)
- 那位高人能指点一下,如何制作像realplayer那样的状态栏,谢谢,必定给分
- UDP指令是啥
- 请教各位大虾,"TnavigatorButton" 控件中,如何把英文的删除提示信息变成中文?
- 谁用过TTREEVIEW 的拖动功能请给我提供一个例子
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TBlobStream * pmem=new TBlobStream(pField,bmRead);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->LoadFromStream(pmem);
Image1->Picture->Assign(pBitmap);
delete pBitmap;
delete pmem;
写:
TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
TBlobStream * pmem=new TBlobStream(pField,bmWrite);
pmem->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
pBitmap->Assign(Image1->Picture->Graphic);
pBitmap->SaveToStream(pmem);
delete pBitmap;
delete pmem;注意:一定要用此方法进行读写,因为实际上它是以二进制流的方式存入数据库!
收到,研究中,请稍候。
如果非要把图片传过去,然后在中间层实施入库,你必须把图片以
流的方式传到中间层,在中间层把收到的数据流存入数据库,实际
上这样的做法是很烦的,除非你在中间层要对传过来的图片进行处
理,否则大可不必这样做。
我的做法是,直接存入图片到TDBimage中,然后用TClientDataSet
的ApplyUpdates()方法更新数据库,其余的事就让ClientDataSet
自己去解决吧。
具体程序如下:
procedure TRrecordForm.BtnImageClick(Sender: TObject);
var
B:TBitmap;
J:TJpegImage;
begin
if OpenDialog.Execute then
if Pos( '.jpg', LowerCase( OpenDialog.FileName ) ) > 0 then
begin
J := TJpegImage.Create;
B := TBitmap.Create;
try
Screen.Cursor := crHourGlass;
J.LoadFromFile( OpenDialog.FileName );
B.Assign( J );
ClientDataSet.Edit;
TBlobField( ClientDataSet.FieldByName( '照片' ) ).Assign( B );
ClientDataSet.Post;
finally
Screen.Cursor := crArrow;
J.Free;
B.Free;
end;
end else
begin
ClientDataSet.Edit;
TBlobField( ClientDataSet.FieldByName( '照片' ) ).LoadFromFile( Opd.FileName );
DbImage1.LoadPicture;
ClientDataSet.Post;
end;
end;事实上,这个程序首先判断是否图片为JPG格式,是的话先转成BMP格式,
(当然你也可以不转成BMP格式,而是直接以流方式把JPG存入数据库,
但这样一来,读取也成了麻烦的事情,所以,如果图片字段不是很多
很大的话,还是用BMP存入来的方便)
email:[email protected]
email:
[email protected]
-我要做一个公司员工上班打卡的系统
能不能给我说一下思路,如果有资料的话也请告诉我一下,谢过各位了!
[email protected]
为什么我的图片插入后,再选出来上半部分是黑的???
我看了一下库里的值前半部分都是000.
怎么会事。
如果这个你也解决了那分可就.............
嘿嘿嘿............
Configuration ->system->init->sharedmemsize 为20480,20M!
第一步:将图片文件上传到应用服务器。可以用FTP、WinSocket、NMStrm。
第二步:服务器端的一个过程实现写库,用LoadFromFile将该文件存入数据库。
就像发Email的实现方法。
现在你的图片大可不能怪我的程序有问题。
BDE 图片存取大小范围是<=32K--1M,默认是32K,如果大于1M的话,请修改
BDE的BLOB Size值(虽然说最大是1M,但是你要设10M,好像也没问题,这
个,嘿嘿...)
因为他是我朋友,没有分用了,到我这来要饭你说能不给点吗??哈哈哈………………