需求源头:
OleContainer操作Excel,想把Excel以二进制方式存入数据库,并且以二进制方式读取
存入流:
Procedure SaveToStream(ADOTable1: TAdoTable)
var
  vStream: TMemoryStream;
begin
 try
   try
    vStream := TMemoryStream.Create;
    vStream.Clear;
    OleContainer1.SaveToStream(vStream);
    vStream.Position := 0;
    ADOTable1.Append;
    TBlobField(ADOTable1.FieldByName("BlobField")).LoadFromStream(vStream);
    ADOTable1.Post;  
   finally
      FreeAndNil(vStream);
   end;
  except
    exit;
  end;
end;
读取流:
procedure LoadFromStream(ADOTable1: TAdoTable)
var
  //注意:这里要用TADOBlobStream,如果用TMemoryStream等流类,则会出现错误  
  //OleContainer的二进制流格式和Access的二进制流格式不同
  //TADOBlobStream是专门用来Access的流转化的,TADOBlobStream继承自TMemoryStream
  vStream: TADOBlobStream;
begin
  try    
    vStream := TADOBlobStream.Create(TBlobField(ADOTable1.FieldByName("BlobField")), bmread);
    if (OleContainer1.State = osOpen) or (OleContainer1.State = osUIActive) then
    begin
      OleContainer1.DestroyObject;
    end;
    vStream.Position := 0;
    Olecontainer1.LoadFromStream(vStream);
  except
  end;
end;
问题总结:
注意流格式的问题。
注:附件里有我的一个小工具,用来帮助自己平时操作Excel在Access中的读取。http://www.delphibbs.com/keylife/iblog_show.asp?xid=21941

http://blog.csdn.net/shuaihj/article/details/725534

OleContainer操作Excel以二进制方式读写数据库的更多相关文章

  1. C++结构体对象数组的二进制方式读写

    以一个学生信息的结构体数组为例. #include<iostream>#include<string>#include<fstream>using namespac ...

  2. C#操作Excel的OLEDB方式与COM方式比较

    2013-03-15 13:42:54      作者:有理想的码农   在对Excel进行读写操作时,使用微软自身提供的解决方案,有两种(第三方方式除外),分别是OLEDB方式和调用COM组件的方式 ...

  3. ASP.Net将图片以二进制方式存入数据库,并读取

    把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) { string path = this.tex ...

  4. C#使用oledb操作excel文件的方法

    本文实例讲述了C#使用oledb操作excel文件的方法.分享给大家供大家参考.具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel ...

  5. C# 操作 Excel 文件(.xls 或 .xlsx)

    在.net中,常用的操作excel文件的方式,有三种: OLE DB的形式, 第三方框架NPOI, Office组件. 总结: 通过对比,在读取大数据量的excel文件,建议用OLE DB的形式,把e ...

  6. C#操作Excel(创建、打开、读写、保存)几种方法的总结

    在.NET开发中,不管是web程序还是桌面软件(尤其是涉及数据库操作的MIS系统等),常常需操作Excel,如导出数据到Excel,读取Excel中数据到程序中等.总结起来,其操作不外乎创建.打开.读 ...

  7. [Asp.net] C# 操作Excel的几种方式 优缺点比较

    在项目中我们常常需要将数据库中的数据导出成Excel文件 有一次工作中我的目的就是读取Excel到内存中,整理成指定格式 整理后再导出到Excel. 因为我要处理的每个Excel表格文件很大.一个表格 ...

  8. 【转载】C#将图片以二进制流的方式存入数据库

    在C#开发应用程序的过程中,图片一般会存放在文件系统中,当然图片也可以二进制的方式存放到数据库中,不过一般不建议存放在数据库中,因为图片占用的空间还是挺大的,特殊情况下可以考虑将图片存在数据.此文将介 ...

  9. Python操作excel的几种方式--xlrd、xlwt、openpyxl

    openpyxl xlrd xlwt   在处理excel数据时发现了xlwt的局限性–不能写入超过65535行.256列的数据(因为它只支持Excel 2003及之前的版本,在这些版本的Excel中 ...

随机推荐

  1. 在C#中使用C++编写的类1

    转载地址:http://blog.csdn.net/starlee/article/details/2864588 现在在Windows下的应用程序开发,VS.Net占据了绝大多数的份额.因此很多以前 ...

  2. CentOS6.5 搭建基础PHP环境(yum安装)

    转载:闲来无事 » CentOS6.5 搭建基础PHP环境(yum安装) yum安装php环境只需要几条简单的命令就可以实现,OK,各位客官,菜来了.首先确保你的yum源可用,或者网络是通的,不然下载 ...

  3. pyfits 读取bintable

    import pyfits as pf import numpy as np import math import pandas as pd import matplotlib.pyplot as p ...

  4. 小记:css特殊性

    今天早上遇到了个小bug,刚好用从css权威指南学到的知识解决了 html结构 <ul class="portlet-nav"> <li><a id= ...

  5. MyPanel与QWidget使用QStyle设置背景色的不同

    -----------   MainWindow.h ------------------- class MyPanel: public QWidget{    Q_OBJECTpublic:     ...

  6. Leetcode 线性表 Swap Nodes in Pairs

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Swap Nodes in Pairs Total Accepted: 12511 Tota ...

  7. [置顶] Guava学习之Iterators

    Iterators类提供了返回Iterator类型的对象或者对Iterator类型对象操作的方法.除了特别的说明,Iterators类中所有的方法都在Iterables类中有相应的基于Iterable ...

  8. Swift实现糗事百科Demo(实战项目)

    在这里,你将会学习到解析JSON数据,网络请求功能,动态调整cell内容等功能!!! 最终的结果 是这样的,项目相对简单,很适合入门!下面让我们一起开始教程之旅吧! 1.先看下项目工程结构: 第一步: ...

  9. Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系

    HTTP协议本身是无状态的,即使是同一台电脑同一个浏览器打开同一个页面两次,服务器不知道这两次请求是同一个客户端发送过来的,两次请求是完全独立的.例如,第一次请求时已经登录了,第二次再请求服务器会“忘 ...

  10. javascript笔记整理(函数)

    javascript函数的声明和调用将完成某一特定功能的代码集合起来,可以重复使用的代码块. 一.函数的声明方式(创建) A.基本语法(function  关键字)function 函数名([参数1] ...