已经是第四个通宵了,问题还没有解决,希望有高手帮忙!
首先,我刚开始学习,基础不是很好,但是整个问题必须解决,因为这个作业很重要。
其次,我已在百度谷歌等很多网站查找过,没有能够找到答案。
第三,我业查过相关的资料,看过很多文章,但是问题还是没有能够解决,希望有高手能出手相助。谢谢了!
我的问题是这样的:
就用OleContainer嵌入word文档对象后,将这个word文档通过SaveToStream 和 LoadFromStream方法将整个word文档存储到AC数据库的Ole对象字段 现在能不能实现从数据库中把word文档的数据读出数据库, 导入到一个新开的word文档呢?
今天晚上第四个通宵,希望有高手帮忙。在线等!谢谢了!
问题点数:20、回复次数:19Top
1 楼cjchtree()回复于 2006-06-02 02:56:31 得分 0
等者CSDN上高手的出现....................Top
2 楼sfengnet(☆☆☆☆☆)回复于 2006-06-02 08:45:24 得分 0
你的说明是什么样的数据库,每个数据库的特性不是太一样的Top
3 楼jjwwang((空园歌独酌,春日赋闲居))回复于 2006-06-02 08:50:02 得分 0
AC数据库?
ACCESS数据库?Top
4 楼sfengnet(☆☆☆☆☆)回复于 2006-06-02 09:00:08 得分 20
一个简单例子
#include
#pragma hdrstop
#include "Unit1.h"
---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant OLEObject;
AnsiString dataword;
if(Trim(Edit1->Text)=="")
{
ShowMessage("请输入文件名");
return;
}
String currentPath=GetCurrentDir()+"//"+Trim(Edit1->Text);
OLEObject=CreateOleObject("Word.Basic");
OLEObject.Exec(Procedure("FileNew"));
OLEObject.Exec(Procedure("EndOfDocument"));
ADOTable1->First();
while(ADOTable1->Eof!=True)
{
dataword=ADOTable1->FieldValues["工号"]+ADOTable1->FieldValues["姓名"]+ADOTable1->FieldValues["性别"]+ADOTable1->FieldValues["部门"];
OLEObject.Exec(Procedure("Insert")< ADOTable1->Next();
}
OLEObject.Exec(Procedure("StartOfDocument"));
OLEObject.Exec(Procedure("FileSaveAs")<OLEObject.Exec(Procedure("FileClose")<<1);
ShowMessage("文件已经写入!");
}Top
5 楼cjchtree()回复于 2006-06-02 09:55:58 得分 0
用的是ACCESS数据库,感谢sfengnet,jjwwang(风归叶)的回答。
但是上面那个例子好像不是问题的答案,因为现在在数据库里面字段值是二进制文件。请大家继续帮忙,我自己也会努力的。Top
6 楼Shatty(西北游侠)回复于 2006-06-02 10:17:33 得分 0
ole又自己的一套数据类型,读出来的时候,做一下转换,com库里边提供了相应的转换函数.Top
7 楼cjchtree()回复于 2006-06-02 10:24:17 得分 0
能不能具体讲下,Shatty? 我不是很了解。给个思路也可以。Top
8 楼cjchtree()回复于 2006-06-02 10:24:45 得分 0
能不能具体讲下,Shatty? 我不是很了解。给个思路也可以。Top
9 楼myy()回复于 2006-06-02 12:20:16 得分 0
你留个eMail,我给你发个例子。Top
10 楼cjchtree()回复于 2006-06-02 13:24:42 得分 0
我的E-mail:cjchtree@163.com 先行谢过!Top
11 楼cjchtree()回复于 2006-06-02 23:16:41 得分 0
高手帮忙啊,十万火急!!!!!!!!!!!!!!!Top
12 楼cjchtree()回复于 2006-06-03 15:31:31 得分 0
myy你在吗? 一直给你发站内信息,希望你能收到。
其他的高手帮个忙啊,也许这个问题对你来说很简单,但是对我来说真的很难。我已经尝试了很多办法但是都不性,先谢谢大家了,我真的很急。Top
13 楼jbczj(人见人爱)回复于 2006-06-03 15:42:42 得分 0
笨呀你,通过一个临时文件过渡呀,保存的时候把文件名同时保存,系统会根据扩展名来调用相关的程序滴.Top
14 楼cjchtree()回复于 2006-06-03 16:06:52 得分 0
不是很懂jbczj的意思,你的意思是说先把内容放到OleContainer里面,然后保存文件?
我这边校园网很烂,打开这个页面很慢,但是一直在刷,等高手们来。Top
15 楼cjchtree()回复于 2006-06-04 00:03:38 得分 0
今天是第六天,没有人回答,只好自己直接将OleContainer里面的文件SaveToDocument成word文档,可是现在又遇到一个问题,如何把满足要求的数据放入OleContainer然后保存成文件呢?也就是要有Stream的连接。还有就是格式 最简单的换行就可以了。Top
16 楼cjchtree()回复于 2006-06-04 02:35:54 得分 0
CSDN的高手帮帮忙啊,真的是很急的问题。我自己解决不了,愿意出人民币(尽管没有我是穷人,但是没有办法)。Top
17 楼sncel(地狱情人-杨勇)回复于 2006-06-07 15:31:34 得分 0
这个应该很好解决的啊.Top
18 楼cjchtree()回复于 2006-06-07 17:19:03 得分 0
to:sncel(地狱情人-杨勇) 和所有的高手
如果你会能不能帮忙写个例程,不是我懒,只是刚开始学,又急用,没有办法。谢谢了,留下你的联系方法,我和你们联系。再次谢谢你么。Top
19 楼fengfeiwuwq(寒烟翠)回复于 2006-06-08 10:12:19 得分 0
二进制类型字段用TBlobField来解决,参见BCB的帮助文件,既然你已经通过LoadFromStream读入了文件流,为什么不会用SaveToFile方法直接保存成为Word文件呢?其他所有文件类型都是一样的操作方法,很简单的应用,不知道楼主是否说的这个问题?Top




