CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

Oracle下图像的存取

楼主yxctxg(猪猪)2005-05-30 19:55:03 在 Delphi / 数据库相关 提问

在Oracle+Delphi6下,如何实现图像的存取,包括图像字段定义的类型,是BLOB还是BFILE?存取图像的大小有限度吗?存取图像的方式,是以数据流的方式还是其他方式?图像是存在数据库里还是存在数据库之外的服务器机器里?图像的类型,包括BMP和JPEG,如果能提供我详细的源代码,那是最好不过了,请大家尽情讨论,大大帮助,小女子不胜感激。  
  问题点数:100、回复次数:6Top

1 楼dacong(大聪)回复于 2005-05-30 22:36:25 得分 0

你BLOB,可以存4G的文件,  
  可以用bde和AdoTop

2 楼dacong(大聪)回复于 2005-05-30 22:39:25 得分 100

//bde  
  procedure   Tfrm_XTDZDDYXX.mn_openpClick(Sender:   TObject);  
   
  var   ms:tmemorystream;  
  begin  
  opendialog1.Filter:='All   (*.'+wjhz0+')|*.'+wjhz0;  
  if   image1.Visible   then  
      begin  
      if   opendialog1.Execute   then  
      begin  
          try  
          ms:=tmemorystream.Create;  
          ms.LoadFromfile(opendialog1.FileName);  
          sub_Table.Edit;  
          sub_TableNR.LoadFromStream(ms);  
          showimage;  
          finally  
          ms.Free;  
          end;  
      end;  
      end;  
  end;  
  //ado  
  procedure   Tfrm_XTDZDDYXX.mn_openpClick(Sender:   TObject);  
  var   ms:tmemorystream;  
  begin  
  if   sub_table.RecordCount<=0   then   exit;  
  //opendialog1.Filter:='All   (*.'+wjhz0+')|*.'+wjhz0;  
      if   opendialog1.Execute   then  
      begin  
          if   (getfilesize(opendialog1.FileName)/(1024*1024))>=8.0   then  
          begin  
              messagebox(handle,pchar('文件大小不能超过8M,请选择其它的文件!'),'错误信息-文件太大',mb_iconerror);  
              exit;  
          end;  
          try  
          ms:=tmemorystream.Create;  
          ms.LoadFromfile(opendialog1.FileName);  
          sub_Table.Edit;  
          (sub_Table.FieldByName('nr')   as   tblobfield).LoadFromStream(ms);  
          wjhz0:=uppercase(ExtractFileExt(opendialog1.FileName));  
          delete(wjhz0,1,1);  
          sub_table.FieldByName('wjhzmc').AsString:=wjhz0;  
          sub_Table.post;  
          if   image1.Visible   then  
          begin  
          showimage;  
          end  
          else  
          begin  
          OleContainer1.DestroyObject;  
          OleContainer1.CreateObjectFromFile(opendialog1.FileName,false);  
          OleContainer1.run;  
          OleContainer1.Visible:=true;  
          end;  
          finally  
          ms.Free;  
          end;  
      end;  
  end;  
  Top

3 楼yxctxg(猪猪)回复于 2005-05-31 08:37:57 得分 0

dacong(大聪),非常感谢,我试一下。Top

4 楼yxctxg(猪猪)回复于 2005-05-31 09:02:22 得分 0

dacong(大聪),opendialog1.Filter:='All   (*.'+wjhz0+')|*.'+wjhz0;   后面是什么意思呀,这样是把图像存在服务器里吧,不是数据库里,这样是不是更好一些。还有这样是不是不用区分图像格式,不论BMP还是JPEG,还有就是要不要修改数据库里blobsize的值,系统默认是32KTop

5 楼dacong(大聪)回复于 2005-05-31 23:05:29 得分 0

opendialog1.Filter:='All   (*.'+wjhz0+')|*.'+wjhz0  
  是对话框,过滤用的,没什么用  
  BDE要改blobsize  
   
  别的代码你不用看,只看怎么操作流就行了Top

6 楼yxctxg(猪猪)回复于 2005-06-01 19:07:04 得分 0

好的,我再试一下,多谢!Top

相关问题

  • 如何对Oracle中的Blob字段存取.gif或.jpg图像信息
  • 如何存取PictureBox控件的图像
  • 用delphi存取图像的问题
  • 如何存取Oracle Number(18)的字段?
  • 100分相送======Oracle存取问题
  • Oracle 数据库word文档的存取
  • 怎样在oracle中存取图片?
  • ADO连ACCESS得图像显示及存取问题!急!
  • 急,在数据库中存取图像的问题
  • 50分求解---急啊。:图像文件的二进制存取

关键词

  • 图像
  • 数据库
  • 文件
  • wjhz0
  • 存取
  • olecontainer
  • opendialog
  • tmemorystream
  • ms
  • sub

得分解答快速导航

  • 帖主:yxctxg
  • dacong

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo