寻求OLE与TBlob数据库字段的数据交换的实施步骤(100分)

J

Jams

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在进行高校试题库的编写工作,现遇到如下问题:
1。如何将OLE(Word/Writer)存入TBlob字段中,并确认写入的是正确的?
2。如何将TBlob字段中的记录传给OLE,并确认传人的是正确的?
本人由于对Delphi 3.0了解的不是很多,曾使用TStream等方法,都不能奏效,
运行时都有错误,好象是说'...stream read error'之类的信息,本人现不
知如何下手,望各位能给以实施的方法!多谢!!!
作为交换条件,如各位的电脑有被病毒侵袭的不能正常工作的,或硬盘受损等
的,本人均给以帮助。
本人的E-mail: sdut@163.net
virus-cn@163.net
 
哈哈!原来是同行!
您是做那个学校的题库?
我的问题已经被BiJ解决了,只是还没有贴到网上来.
主要原因是这样的:
Stream读完以后,没有把Stream.Position置为0,
就又开始读,就又会有stream read error了.
我用的是TMemoryStream.
因为我的Mail Server发信正常,收信奇慢无比,所以如果还有不清楚的地方
就贴上来吧!我现在不在自己的机器上,所以只能讲这么多了.

交换条件嘛,我想等我们的程序架子都搭好以后,交换一下心得好吗?
再就是,有空的话,在virus方面教我两招.
(跟踪病毒都是dos时代的事了,windows下的我还没有接触过呢!)
 
给我一点分吧.
呜呜
确认正确可以通过检测stream的大小和BLOB字段的大小是否匹配的方法.
我是一个懒人,太繁的点子我也想不出来.
 
茶蛋:你的那个什么遗传算法,能给些资料吗?
 
Hi, 茶叶蛋。这名字太别扭了,有否可称呼的。
至于学校的问题,请访问www.sdut.edu.cn便知了。
你的提议固然是好,但是...我还是不会!
能否给出较详细的方法步骤。即解决嵌入在OLE中的内容,有公式、图形及文字在一起
的,但不是以文件的形式存在,如何将其存入FBlob字段中,这个过程只是说明一下既
可,但还要能从TBlobField字段中读出。对于OLE和Blob字段其原理我已明白了,但
如何操作还茫然不知所措,不知如何下手,就请在此方面给以指点。
另一方面,你若也在进行此项工作,由于各单位要求不一样,故不会与你冲突,我也不
必要你的劳动成果,只是对此问题能给予帮助。这个问题从年前就一直困惑着我。
至于Virus,不要轻视Dos,Dos掌握不好,Windows更不好理解。分析、剖析病毒的
目的不是要杀除病毒,而是要了解计算机系统更深的东西。计算机系统了解了,清病毒
当然就不在话下,但不是说KV300、Kill等就对系统了解的很深,厂家吗,就是以赢利
为目的,要不然为什么左一个升级又一个补丁呢!嗨..., 还有很多很多,若有空就给
我发个E-mail吧,再聊!
但我的问题一定要给个说法呀!先给个50分以兹鼓励,别嫌少,解决问题给你1,000,000.00分如何?
 
to Jims:
我叫蒋靖,个人具体资料Delphi发烧友联谊会上有.
我的程序还没有完全编好,主要原因时数据库实在太差, :)
现给出新建和存入数据库的程序:
procedure TMainForm.NewMenuClick(Sender: TObject);
begin
MainPage.ActivePage := EditSheet;

MyWord:= CoApplication_.Create;
FileName := 'C:/My Documents/HHH.doc';
MyWord.Documents.Open(FileName,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam);

OleContainer1.DoVerb( ovShow );
end;

procedure TMainForm.CloseMenuClick(Sender: TObject);
var
OleStream : TMemoryStream;
begin
OleStream := TMemoryStream.Create;
Myword._Release;
OleContainer1.SaveToStream( OleStream );
OleStream.Position := 0;
with dm1.InsertTable do
begin
Close;
Open;
Edit;
//Append;
FieldByName( 'title' ).asstring := 'ok,letgo';
TBlobField( fieldbyname('ole') ).LoadFromStream( OleStream );
post;
begin
dm1.db2.StartTransaction;
try
ApplyUpdates; {try to write the updates to the database};
dm1.Db2.Commit; {on success, commit the changes};
except
dm1.Db2.Rollback; {on failure, undo the changes};
raise; {raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates; {on success, clear the cache}
end;
//ApplyUpdates;
showmessage( 'done' );
end;
OleStream.Free;
end;
这些程序奇烂无比,主要是没时间优化.如果没有意外的话,这两天应该能全部搞定.
对了,我在程序中用到了WordBasic,主要是想把文件转存为html格式,以便检索和
浏览.但是现在还有一个问题,我的程序每次退出是有共享冲突错误.
我的程序是非盈利性质的,大家所在省份也不同,所以不存在利益冲突问题.
大家一起交流吧.我的界面很丑陋的,还想向你学几招呢!
我收信不方便,发信没有限制.
ps: MyWord: _Application;
FileName: OleVariant; 两个全局变量

to CJCJC :
我们系的遗传算法是看家宝,最近几天开始毕业设计,用遗传算法的人肯定会跳出来的.
到时候再给你寄过来.简单的说,应该就是非最佳匹配加上一个优胜疟汰吧!
 
茶叶蛋大哥!!
遗传算法,我最近对其发生浓厚兴趣,并希望能够结合到我的论文中去。
你能提供一些资料吗?
多谢...(以任何形式)
 
Hi, 蒋靖
你的算法我记下来,研究研究。若有什么结果或疑问再请教!多谢。
由于本人的上网注册不定,因此希望能够多进行交流,你看如何?
给你500分如何?待我有结果再加分。
 
Hi, 蒋靖
多谢指点。我记下来,再试试。有何结果或疑问再探讨。
由于本人上网注册不定,希望能多进行一些探讨,多方面、多题种!
但我较感兴趣的还是Virus及HC、Delphi、汇编等。
先给你500,待我解决后再加数倍,你看如何?
 
500我不要了,毕竟大家到这个论坛是为了<a href="http://www.gislab.ecnu.edu.cn/delphibbs/UserList.asp">上榜</a>
把这个题目的分数给我就行了.嘻嘻 *_*

我的例子可以使用的,这两天我一直在用.
不过,在转为html方面,<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=103591">又有问题了</a>
我的地址是: 南京理工大学95622班 (210094)
tel: 025-4319516(晚10:30后)
很久没有玩virus了,等我做完我的任务......
 
to tqz:
等一等吧?
 
同行!
我也正在做一个高等数学的题库,您可以用TBlobStream!
 
继续征求解答!
 
茶叶蛋的
MyWord:= CoApplication_.Create;一句的
Myword为何类型?
CoApplication_为何意?作用又如何?Delphi在线帮助怎么没有?
 
建议你读一下TQZ的为B计划那个程序.
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
609
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部