你插入的是什么方式存储的?假设列名为image,
以下是集中存储方式如何得到长度
1 raw,用UTL_RAWlength(image)获得
2 long raw,比较麻烦,需要用存储过程,大概逻辑,设置buffer、offset和计数器变量,循环读取long raw,通过UTL_RAWlength(buffer)累加到计数器变量
3 blob,通过DBMS_LOBgetlength(PIIMAGE)
如果要存数据库的话,数据库存字段用blob形式的(照片:zp为例)。
而且不能直接存,在存之前zp字段先插入一个emptyBLOB(),
然后select ZP from 表 for update。再用输入流的形式写进去。
// 先检索出来字段,必须使用oracle的类:oraclesqlBLOB
oraclesqlBLOB blob = null;
if (rsnext())
{
blob = (oraclesqlBLOB) rsgetBlob("ZP");
// 到数据库的输出流
1、如何实现在Microsoft Access数据库中的图像存储:
这里是利用TStream的子类TMemoryStream向Microsoft Access数据库中存储图像的。
下面的这段代码是在按了“保存”按钮之后所触发的事件处理程序:
procedure TForm1Button1Click(Sender: TObject);
Var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
Begin
MyJPEG := TJPEGImageCreate;
Try
With MyJPEG do
Begin
Assign(ImagePictureGraphic);
MS:=TMemoryStreamcreate;
SaveToStream(MS);
MSPosition := 0;
Table1Edit;
TBlobField(Table1FieldbyName('Image'))LoadFromStream(MS);
Table1Post;
Messagebox(Getactivewindow(), '图像保存完毕!', '保存', MB_OK);
End;
Finally
MyJPEGFree;
End;
End;
在这段代码里TStream的子类TMemoryStream利用内存流起到了将BMP格式转化为JPEG格式
的中间桥梁的作用。
2、如何将图像从Microsoft Access数据库中取出并显示出来:
下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序:
procedure TForm1Button1Click(Sender: TObject);
Var
MyJPEG : TJPEGImage;
MS : TMemoryStream;
Begin
Try
MS := TMemoryStreamCreate;
TBlobField(Query1FieldByName('Image'))SaveToStream(MS);
MSPosition := 0;
MyJPEG := TJPEGImageCreate;
MyJPEGLoadFromStream(MS);
DBImage1PictureBitmapAssign(MyJPEG);
//或是SenderPictureAssign(MyJPEG);
Finally
MSFree;
MyJPEGFree;
End;
End;
平面上的一个点,对应于一对实数。连接平面上的点,构成线段。 VB6可以在窗体和PicTrueBox控件上,用PSet (x,y)方法绘制点。 步骤与方法: 1,连接数据库。 2,读取数据。 3,绘制点。(连接点)
以上就是关于求助~oracle数据库里插入了图片以后,想要获取数据库中图片的大小, display the length in bytes全部的内容,包括:求助~oracle数据库里插入了图片以后,想要获取数据库中图片的大小, display the length in bytes、在java中怎么获取数据库中已经保存的图片、delphi,请问大侠如何从数据库读取N个 长二进制数据(bmp图片,数据类型为OLE),到speedbutton上显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)