OleContainer操作Excel以二进制方式读写数据库

需求源头:
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

时间: 2024-09-20 14:38:14

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

如何操作Excel读取数据导入DB2数据库

最近项目需要读取Excel,将数据导入数据库保存,最终可以用报表读取数据库并显示,比较简单.查了一下两者的资料,觉的也无所谓,我需要的功能比较简单,只要能读取Excel数据就行,最后决定使用POI,比较信任apache 下面附的代码是一个Demo,功能点有两个:一就是POI读取Excel,二是DB2数据库的连接和SQL执行. 现在的问题就是这样做的话代码太死,针对一张Excel表就要编写一个专门的转换类,太麻烦了,要考虑怎么实现一个通用转换类. import java.io.FileInputS

linux c语言 把一个文件用二进制方式打开,给一个二进制数串向文件中匹配。

问题描述 linux c语言 把一个文件用二进制方式打开,给一个二进制数串向文件中匹配. linux c语言 把一个文件用二进制方式打开,给一个二进制数串向文件中匹配.文件比如是asd.exe,给出的字符串:010001010101010 菜鸟急求答案,感激不尽. 解决方案 fopen的时候用rb方式打开,然后fread读取.再比较 解决方案二: [VBA] 以二进制方式打开文件vbscript脚本用二进制方式读写文件读取一个结构体记录的二进制文件

新手,想对一个excel进行增删查减的操作,是把excel转化成access方便还是直接操作excel方便?

问题描述 想实现对一个excel的内容进行提取,再新建一个excel存取添加一些信息. 解决方案 解决方案二:直接用npoi进行excel的读取和创建.解决方案三:C#中有对EXCEL操作的函数库,你需要引用Microsoft.Office.Interop.Excel,并和你本地的office版本对应.剩下的你只需要熟悉一下excel的新建,写入和导出内容等操作,这些网上都有很多.解决方案四:publicDataSetExcelToDS(stringPath){stringstrConn="Pr

C#操作SQLite数据库之读写数据库的方法_C#教程

本文实例讲述了C#操作SQLite数据库之读写数据库的方法.分享给大家供大家参考,具体如下: 这里演示读写数据库并在窗体(Form)中显示其数据,其方式为: 读: Database(SQLite) -> DataAdapter -> DataSet -> DataGridView 写: Database(SQLite) <- DataAdapter <- DataSet <- DataGridView 1.假设现有数据库表student,其字段如下: ID(自增字段,主

C#下,word文档已经以二进制的方式存入数据库,如何将它从数据库中读取并显示在窗体控件如webbrowser中?

问题描述 word文档已经以二进制的方式存入数据库,如何将它从数据库中读取并显示在窗体控件如webbrowser中? 解决方案 解决方案二:很想知道,帮你顶!

asp连接与操作excel的方法

excel文件也可以作为数据库使用,当然前提是它的内容要满足一定的规范,简单的做法是可以从数据库文件导出为excel文件. 1.连接字符数 有两种方式,ODBC provider和OLEDB provider (1)ODBC dim conn set conn=server.createobject("adodb.connection") conn.open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & s

ASP.NET操作EXCEL的总结篇

公元19XX年前,关于EXCEL的操作就如滔滔江水,连绵不绝,真正操作EXCEL我也是从去年下半年开始的,有些比较复杂的年度报表之类的,做起来也有点费力,不过还是都能画出来了,关于EXCEL的报表导出,考虑到导出耗时的问题我主要采用AJAX来做的,分别捕捉几个起止状态,给客户端提示3个状态:正在检索数据...--->准备导出数据...(只是从数据库成功取出,还没有读写excel文件)-->正在读写文件-->导出数据成功,当然如果哪一过程出错,都有对应的提示,只所以想到写这篇文章,主要是因

自己封装的poi操作Excel工具类

       在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类.        该工具类主要完成的功能是:读取Excel.汇总Excel的功能.在读取时,可以设定开始和结束读取的位置.设定是否读取多个sheet.设定读取那个或者那些sheet等.在汇总时,如设定是否覆盖目标文件.设定是否比较检查重复内容.设定检查重复的列索引等功能.具体来演示一下吧:        工具类源码: package com.tgb.

ASP.NET操作EXCEL的总结篇_实用技巧

公元19XX年前,关于EXCEL的操作就如滔滔江水,连绵不绝,真正操作EXCEL我也是从去年下半年开始的,有些比较复杂的年度报表之类的,做起来也有点费力,不过还是都能画出来了,关于EXCEL的报表导出,考虑到导出耗时的问题我主要采用AJAX来做的,分别捕捉几个起止状态,给客户端提示3个状态:正在检索数据...--->准备导出数据...(只是从数据库成功取出,还没有读写excel文件)-->正在读写文件-->导出数据成功,当然如果哪一过程出错,都有对应的提示,只所以想到写这篇文章,主要是因