需求源头:
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. 深度优先搜索(DFS)递归形式改为非递归形式

    DFS将递归改为非递归这个方法的需求来自于一道三维积木组合的题目,还在苦苦调试中,暂且不提. 普通的认识对于递归向非递归的转化无非是使用栈,但是结合到深度搜索如何将栈很好利用,如何很好保存现场,都不是 ...

  2. iphone开发,模拟器生成文件路径

    原文链接:http://blog.csdn.net/gf771115/article/details/7722023 Finder---位置----apple(用户名)---application s ...

  3. uva 10330 - Power Transmission(网络流)

    uva 10330 - Power Transmission 题目大意:最大流问题. 解题思路:増广路算法. #include <stdio.h> #include <string. ...

  4. Jquery学习笔记:通过层次关系获取jquery对象

    前面一篇文章,我们介绍了如何通过web标签的id , css样式值来获取jquery对象. 但这只是基本方法,不能满足所有场景的需求. 本文介绍通过dom元素之间的层次关系获取元素.具体是将各种标识符 ...

  5. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

  6. 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)

    我们来看一个灰度图像,让表示灰度出现的次数,这样图像中灰度为 的像素的出现概率是  是图像中全部的灰度数, 是图像中全部的像素数,  实际上是图像的直方图,归一化到 . 把  作为相应于  的累计概率 ...

  7. Java里的日期和时间学习

    Date date = new Date();//yyyy-mm-dd hh:mm:ss[.fffffffff] SimpleDateFormat sdf = new SimpleDateFormat ...

  8. oracle 分区表exchange原理

    oracle分区的exchange操作非常快,那原理是什么呢?下面我们来做个实验: SQL> create table test (id number(3)); 表已创建. SQL> in ...

  9. [Java 并发] Java并发编程实践 思维导图 - 第二章 线程安全性

    依据<Java并发编程实践>一书整理的思维导图.

  10. javascript函数的声明,及返回值

    <1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...