CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何在DELPHI中使用原生ADO,进行存取长二进制数据?

楼主mrchen_fj()2003-12-04 18:38:03 在 Delphi / VCL组件开发及应用 提问

请教各位大虾:  
      在ORACLE9I中,有一表,其中有一字段为长二进制类型,如何利用原生ADO进行存取?  
        最好给段DEMO。  
      谢谢! 问题点数:0、回复次数:4Top

1 楼hthunter(茫茫然时光飞逝)回复于 2003-12-04 20:05:12 得分 0

不需要用原生ADO也可以进行二进制数据的存取啊,用TBlobField的相关方法就行了  
  或者你非要用原生ADO的话,可以参考李维写的《DELPHI5数据库开发技术》(不知道我有没有记错书名)Top

2 楼cutelocust(涉水而来)回复于 2003-12-04 20:18:53 得分 0

李维的书上讲过,好像是Ado/Mts/COM+什么的,你自己看看吧Top

3 楼SeaWave(NoSound)回复于 2003-12-04 20:29:02 得分 0

用VarArray就行啦,下面这个DEMO把任意文件存进去  
  var  
      p:   Pointer;  
      v:   Variant;  
      ms:   TMemoryStream;  
  begin  
      ms   :=   TMemoryStream.Create;  
      try  
          ms.LoadFromFile('c:\tmp.bin');  
          v   :=   VarArrayCreate([0,ms.Size-1],   varByte);  
          p   :=   VarArrayLock(v);  
          try  
              Move(ms.Memory^,   p^,   ms.Size);  
          finally  
              VarArrayUnlock(v);  
          end;  
      finally  
          ms.Free;  
      end;  
      ADOCommand1.CommandText   :=   'insert   into   MyTable   (MyField)   values   (:@V)';  
      ADOCommand1.Parameters.ParamByName('@V').Value   :=   v;  
      ADOCommand1.Execute;  
  end;  
  Top

4 楼hthunter(茫茫然时光飞逝)回复于 2003-12-05 11:24:48 得分 0

SeaWave(NoSound)你的方法效率比较低,因为两次对同一个大容量的数据进行操作(LoadFromFile和Move),用TBlobField的话只需要进行一次操作(LoadFromFile或者LoadFromStream)。  
  TBlobField(ADODataSet1.FieldByName(sFieldName)).LoadFromFile(sFileName);    
  //or   LoadFromStream,取数据时是SaveToFile或者SaveToStreamTop

相关问题

  • 如何存取二进制对象
  • 怎样存取二进制图片
  • 如何存取二进制数
  • ADO怎样访问二进制文件?
  • 100分求救!!!二进制存取问题!!
  • 二进制数据文件的存取问题(言者有分)
  • SQL存取二进制文件的问题
  • C#+ACCESS数据库存取二进制文件
  • 50分求解---急啊。:图像文件的二进制存取
  • 高分求解二进制文件存取问题,解决立即给分

关键词

  • 二进制
  • 原生
  • 数据
  • ado
  • adocommand1
  • tblobfield
  • 原生ado
  • loadfromfile
  • ms

得分解答快速导航

  • 帖主:mrchen_fj

相关链接

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

广告也精彩

反馈

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