需求源头:
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
OleContainer操作Excel以二进制方式读写数据库
时间: 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文件)-->正在读写文件-->导出数据成功,当然如果哪一过程出错,都有对应的提示,只所以想到写这篇文章,主要是因