- 浏览: 173818 次
- 来自: ...
文章分类
最新评论
-
fsword:
同事拿着试了一下,说是把第五步放到第二步之前就可以了
在windows下安装ruby1.9.2,rails3.0.3和DevKit--转 -
dothwinds:
[flash=200,200][/flash][url][/u ...
打包ruby or rails成exe(英文)
用image字段保存这些文档。
var
word_stream: TMemoryStream;
filename: string;
begin
if odgDoc.Execute
then//odgDoc:OpenDialog
begin
filename :=
ExtractFileName(odgDoc.FileName);
word_stream :=
TMemoryStream.Create;
word_stream.LoadFromFile(odgDoc.FileName);
word_stream.Position := 0;
cdsPACT.Append
cdsPACT.FieldByName('DocName').Value := filename;
TBlobField(cdsPACT.FieldByName('PactText')).LoadFromStream(word_stream);
cdsPACT.Post;
word_stream.Free;
end;
end;
----
目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具。在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可避
免;即从以Delphi开发的前台界面输入图形,并保存到相应的数据库字段中。在这种形式的图形处理中,BMP文件的处理比较简单,因为Delphi本身
有Image和DBImage构件,用这些构件与数据库中可以保存图形的大型字段BLOB比较容易地进行数据交换。以这种方式进行图形处理已应用在许多
MIS软件中,包括处理人员照片的人事档案系统等。
----
但是,BMP文件一般都比较大。而且有时要录入的是自己在计算机上画的简图,并伴随大量文字说明。这种情况用Win95中的画图板等处理BMP文件的工具
处理就比较困难。一般应用人员都喜欢用WORD画图和写说明文字,然后保存到数据库中。
----
经过一段时间的摸索,我们解决了这个问题,并经过完善,在应用中运行较好。程序如下:
procedure
TsampleForm.OpenDOCClick(Sender: TObject);
var
MemSize:
Integer;
Buffer: PChar;
Myfile: TFileStream;
Stream: TBlobStream;
begin
OpenDialog1.Filter:='WORD文档(*.DOC)|*.DOC';{从对话窗选择文件}
if
OpenDialog1.Execute then
begin
Myfile:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
with table1 do {‘table1’为含BLOB字段的表名}
begin
Open;
Edit;
Stream
:= TBlobStream.Create(FieldByName('Doc') as TBlobField,
bmWrite);{‘Doc’为BLOB字段名}
MemSize := MyFile.Size;
Inc(MemSize); {Make room for the buffer's null
terminator.}
Buffer := AllocMem(MemSize);
{Allocate the memory.}
try
Stream.Seek(0, soFromBeginning); {Seek 0 bytes from the
stream's end point}
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
try
Post;
except
on E: EDatabaseError do
if HandelException(E)< >0 then
exit
else
raise;
end;
end;
Doc_ole.CreateObjectFromFile(OpenDialog1.FileName,False);
Doc_ole.Run;{Doc_ole为ToleContainer构件名}
end;
end;
---- 以上为向数据库中写入的程序,应用中从对话窗取出文件在ToleContainer构件中显示的同时存入数据库。
procedure TsampleForm.GetDocClick(Sender: TObject);
var
MemSize: Integer;
Buffer: PChar;
Myfile:
TFileStream;
Stream: TBlobStream;
begin
Myfile:=TFileStream.Create('c:\temp.tmp',fmCreate);
with
Query1 do
begin
Stream :=
TBlobStream.Create(FieldByName('Doc') as TBlobField, bmRead);
MemSize := Stream.Size;
Inc(MemSize); {Make room for the buffer's null terminator.}
Buffer := AllocMem(MemSize); {Allocate the
memory.}
try
Stream.Read(Buffer^,MemSize);
MyFile.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
end;
if
FileExists('c:\temp.DOC') then
DeleteFile('c:\temp.DOC');
if FileExists('c:\temp.tmp') then
begin
RenameFile('c:\temp.tmp', 'c:\temp.DOC');
Doc_ole.CreateObjectFromFile('c:\temp.DOC',False);
Doc_ole.Run;
end;
end;
---- 以上程序为从数据库从将WORD文档取出,并放在temp.doc的临时文件上并在ToleContainer构件中显示。
---- 在程序的其他部份应准确控制表记录指针,使WORD文档的存取发生在正确的记录位置。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lee576/archive/2008/02/22/2113578.aspx
发表评论
-
将C++ 转为 Pascal/Delphi -- 转
2011-07-23 00:39 2953将C++ 转为 Pascal/Delphi ===== ... -
Delphi编程注意事项--转
2011-07-23 00:35 1274Delphi编程注意事项 任何单元必须有对应测试 ... -
Delphi循环语句对应的汇编语句序列-- 转
2011-07-23 00:33 1224count: 终值, start:起始值正向: ... -
Delphi7快捷键--转
2011-07-21 23:43 1718分类 快捷键 解释 ... -
Delphi写数据至WORD--转
2011-07-21 22:27 33751.所需的三个控件: ChooseWA: ... -
delphi 7实现word文档的分页读取
2011-07-21 22:03 1801问题仔细描述,如果 ... -
Delphi中的数据添加到Word模板的相应位置--转
2011-07-21 22:01 1619就跟将数据导入Excel一样,在运行Delph ... -
delphi控制 word的几种方法--转
2011-07-21 21:49 2333对几种方法的难易程度的判别 a.通过Delphi的控件TOl ... -
Delphi控制Word的报表例子介绍--转
2011-07-21 21:46 2703说明:WordApp是Server下的TWordAppl ... -
delphi 为word文档增加一个段落样式--转
2011-07-21 21:44 1915下为程序中的一段,解决了为文档增加一个段落样式。这个段落样式的 ... -
delphi操作word -- 转
2011-04-25 17:14 1358转自 http://xxzqb.blog.163.com/ ... -
delphi常见属性事件说明
2010-07-20 21:54 1301DELPHI常见属性说明:align 设置组件对齐(同 ... -
C,Delphi,PHP 基础语法对比[转载]
2010-07-20 20:40 942说明 C(区分大小写) ... -
DELPHI控件安装与删除
2010-07-19 22:49 2398DELPHI控件安装与删除控件安装 基本安装 1、对于单个控件 ... -
『Delphi』File not found的解决办法
2010-07-19 22:48 2649当程序启动,提示Fatal Erro:File not fou ... -
Delphi StringGrid控件的属性及使用说明[转载]
2010-07-19 21:01 5876Delphi StringGrid控件的属 ...
相关推荐
如何用DELPHI实现把WORD、EXCEL和图片等存储到数据库
实例270 向SQL Server中存储Word文档 348 实例271 从SQL Server中提取Word文档 349 8.4 SQL Server服务器应用 350 实例272 和服务器时间同步 350 实例273 取得网络中的SQL服务器名 351 8.5 数据库维护 ...
0222 把Excel中的数据保存到数据库中 147 0223 怎样弹出ConnectionString设置页 148 0224 利用ADO获取DELETE后所影响的记录数 148 7.3 业务实现数据处理技术 149 0225 随机产生中奖号码 149 0226 使用...
0222 把Excel中的数据保存到数据库中 147 0223 怎样弹出ConnectionString设置页 148 0224 利用ADO获取DELETE后所影响的记录数 148 7.3 业务实现数据处理技术 149 0225 随机产生中奖号码 149 0226 使用...
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel,Wps等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制,附件上传等办公自动化系统...
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
offic软件里也有,别说你没有安装word,Excel......2、如果你没有安装sql server 2000,只需将“安装程序.rar”解压缩到随便那个目录里,然后在sql server 2000光盘里找到MSDE目录,连目录拷贝至上面解压缩目录中,...
3、适用范围 因为ReportAll报表控件/插件是标准的ActiveX控件,所以所有支持ActiveX技术的前台开发工具(如:Delphi、C++Build、VC++、VB、、VC#、PowerBuild、JavaScript、VBScrip、Excel等)都可以使用ReportAll...