问题: 如何同时将word中的文本和图片写入数据库! ( 积分: 100 )
分类: OLE/Automation
来自: lcl800, 时间: 2002-04-23 20:39:00, ID: 1063761
1 如何同时将word中的文本和图片写入数据库!
procedure TForm1.Button1Click(Sender: TObject);
var
range:Variant;
_str:string;
_start,_end:integer;
begin
wordApp:= createOleObject('word.Application');
wordApp.Visible := True;
wordapp.Documents.open('C:/temp.doc');
wordapp.Selection.MoveDown(Unit:=wdLine, Count:=3, Extend:=wdExtend);
wordapp.Selection.Copy;
//下列代码能将文本和图片单独复制到数据库
//问题:如果一段文字中既有文本、又有图形(例如:一道数学试题)如何复制到数据库?
//使用olecontainer控件?代码如何写?
if Clipboard.HasFormat(CF_BITMAP) then begin
table1.Edit;
dbimage1.Picture.Bitmap.Assign(Clipboard);
dbimage2.Picture.Bitmap.Assign(clipboard);
table1.Post;
table1.Refresh;
end else
if clipboard.HasFormat(CF_TEXT) then
memo.PasteFromClipboard;
wordapp.Selection.MoveDown(Unit:=wdLine, Count:=1);
wordapp.Selection.TypeParagraph;
wordapp.Selection.Paste;
end;
2 word文档中的文本、图形同时存储到数据库的问题
OLE自动化问题!!! 如何同时将word文档中的文字、图形对象写入数据库中?
用Clipbrd单元很容易单独将word文档中的文字或图片写入数据库的memo字段
或graphic字段,现在想直接选择word的一部分文字和图片写入数据库,应该怎么办?
例如,我想将一道试题写入试题库,试题中既有文字又有公式,怎样同时将试题内容写入
试题库中?假设一个文档中有多道试题,每道试题一个记录。
来自: hbezwwl, 时间: 2002-04-23 20:52:00, ID: 1063801
1.是不是使用qr报表控件的,要升级打印机驱动程序就行.
2.直接选择的文字或图片存入剪贴板中然后用STREAM写入数据库中应该行的.
来自: 笑天宇, 时间: 2002-04-23 21:01:00, ID: 1063819
用Bolb:Tblobfield(table1.fieldbyname('image')).loadfromfile('filename');
来自: lcl800, 时间: 2002-04-27 14:55:00, ID: 1063933
Bolb:Tblobfield(table1.fieldbyname('image')).loadfromfile('filename');
我看跟打印机驱动程序的关系极大的,什么打印机,就是HP的!!!用HP LaserJet 6L打印也正常!!
来自: 少爷的拐杖, 时间: 2002-04-24 2:21:00, ID: 1064171
这种型号打印机好像就是有问题,我这儿几台笔记本接这种打印机,平均
三天就出一次问题,不重启几次就打印不出来。
来自: linsb, 时间: 2002-04-26 15:32:00, ID: 1069948
数据库<-->word文档--编辑打印
一个word(Rtf格式)文件可存放多道试题,分别导入到数据库的不同字段。
RxRichEdit控件中介,RxDBRichEdit和数据库连接。
来自: gophie, 时间: 2002-04-26 16:28:00, ID: 1070088
你知道存在BLOB字段还有什么问题?
ORACLE有工具实现BLOB字段的处理,用用再讨论。
来自: wb_l, 时间: 2002-04-26 17:34:00, ID: 1070242
考虑一下使用vba
来自: lcl800, 时间: 2002-04-27 10:34:00, ID: 1071333
RxDBRichEdit就是db是Data controls控件的DBRichEdit组件吗
来自: linsb, 时间: 2002-04-27 10:46:00, ID: 1071354
RxDBRichEdit就是db是Data controls控件的DBRichEdit组件吗
--是的,它比DBRichEdit组件功能要强大。
来自: lcl800, 时间: 2002-04-27 10:58:00, ID: 1071381
to笑天宇
Tblobfield(table1.fieldbyname('image')).loadfromfile('filename')如何使用?
我的作法:
1 添加table1
2 右击,select New fields
3 添加blob字段 name:my type:blob
4 添加事件
Tblobfield(table2.fieldbyname('my')).loadfromfile('c:/temp.doc');
5 编译错误:stream write error?
问题:
1 如何读出temp.doc文件?
2 如何将读入的temp.doc文件写入表的graphic字段?
来自: tokey, 时间: 2002-04-28 21:39:00, ID: 1074890
要读出word 方法很多,提供一种吧
var
oleDY:TMemoryStream; //取出数据库中的WORD 文件
// ss:string;
begin
PageControl.ActivePageIndex :=1;
openfile.Enabled :=false;
oleDY := TMemoryStream.Create;
oledy.Clear;
(ADOQ_HTGL.FieldByName('URL') as TBlobField).SaveToStream(oleDY);
if oledy.size>0 then
begin
oleDY.Position := 0;
OLE.LoadFromSTREAM(oleDY);
ole.DoVerb(1);
End ELSE begin
ole.Enabled:=true;
ole.CreateObjectFromFile(ExtractFilePath(Paramstr(0))+'yiss.doc',false);
ole.DoVerb(ovShow); //运行此句,才可以启动Word进程,才能让WordApp连上
WordApp.Connect;
WordDoc.ConnectTo(WordApp.ActiveDocument);
// WordApp.CommandBars['Standard'].Set_Enabled(false); //将工具栏设为不可见
wordApp.CommandBars['Formatting'].Set_Enabled(true);
ole.DoVerb(ovShow); //运行此句让工具栏不再出现
// end;
//end;
end;
end;
procedure TFrm_ht.saveasClick(Sender: TObject);
Var
OleStream : TMemoryStream;
begin
OleStream := TMemoryStream.Create; //save to Image字段
try
if Adoq_htgl.State<>dsedit then
Adoq_htgl.Edit ;
olestream.Clear ;
ole.SaveToStream(OleStream);
OleStream.Position := 0; //回零点
ADOQ_HTGL.edit;
(ADOQ_HTGL.FieldByName('url') as TBlobField).LoadFromStream(OleStream);
ADOQ_HTGL.Post ;
finally
openfile.Enabled :=true;
OleStream.Free;
end;
end;
有些是无用的,我的代码只是给你参考,并且ole问题很多,不好用
来自: lcl800, 时间: 2002-04-30 8:32:00, ID: 1074940
如何在Olecontainer控件中粘贴word文档中的内容?
来自: linsb, 时间: 2002-05-12 17:27:00, ID: 1096331
读出word 方法,好像用Servers控件更好一些。
来自: bobosong, 时间: 2002-05-13 10:46:00, ID: 1097475
想通过网页浏览,怎样读取?ole在网页格式里面是不可以用的!
来自: lcl800, 时间: 2002-05-13 19:57:00, ID: 1098837
to linsb:
Servers控件如何使用?我找遍了相关的资料,只学会了如何用server控件连接word,却不知道如何
利用它的属性。请指教
来自: linsb, 时间: 2002-05-13 21:04:00, ID: 1098963
To lcl800
http://www.djpate.freeserve.co.uk/Automation.htm
Delphi与Word之间的融合技术:
http://www.delphibbs.com/delphibbs/dispq.asp?LID=737517
关键字‘Word’搜一下,many many!
来自: lcl800, 时间: 2002-05-15 21:19:00, ID: 1103174
我查找了不少,包括dfw.chm 但没找到答案
来自: linsb, 时间: 2002-05-15 22:02:00, ID: 1103256
留下地址,个你发一个demo
此例:在word内编图文混排的文档,存入数据库的相应字段。
来自: lcl800, 时间: 2002-05-16 14:45:00, ID: 1104552
to linsb:
my E_mail: lcl@sicnu.edu.cn
来自: linsb, 时间: 2002-05-16 15:06:00, ID: 1104595
寄去,查收!
来自: lcl800, 时间: 2002-05-16 17:49:00, ID: 1104952
to linsb
thank you!
请问RxRichEd控件哪儿能找得到?
来自: sundy123, 时间: 2002-05-16 18:33:00, ID: 1105034
to linsb:
my E_mail: sunhq@371.net
我提了一个问题,一星期还没有回答。 linsb,你在大富翁的派名很靠前,
希望你能帮我解决。多谢!
我需要将 word.application中的文挡存入数据库中。使用了OleContainer,可以将
Word文档放到OleContainer中。但在将Word文档存入数据库和从数据库中写回
OleContainer,出现了问题。
将Word文档存入数据库,需要如下三步:
(1)将OleContainer中的对象放入临时的.doc文件。
(2)使用临时的.doc文件创建filestream.
(3)将filestream中的流写入数据库中。
为什么不能将OleContainer中的对象直接写入数据库中?许多文档都说可以,就是调
试不通。
从数据库中写回OleContainer,需要如下三步:
(1)将数据库中的Blob放入Blob Stream;
(2) 创建临时的.doc文件
(3) 将临时.doc文件放到OleContainer。
第二步使得程序变的很慢,省略掉,程序又出错。查了许多文档都说可以,就是调试
不通。
已经调试了很多天,万分焦急,请高手指点!
来自: linsb, 时间: 2002-05-16 23:02:00, ID: 1105509
TRxDBRichEdit是Rxlib里的控件。
来自: lcl800, 时间: 2002-05-17 11:27:00, ID: 1106274
3x!linsb
我在delphi 资源大全光盘中找到rxlib2.75,现在正在学习使用
来自: lcl800, 时间: 2002-05-28 8:59:00, ID: 1127986
里边有很多的pas文件,没有bpl文件!安装后与系统的strutils等单元冲突!用不上
来自: linsb, 时间: 2002-06-03 10:08:00, ID: 1139873
to lcl800
还没解决!
安装rxlib2.75:for d5 (for d6可参照)
将控件包安装到一个目录(默认就可以了),
然后解压补丁包和汉化包,
把里面的文件复制到你安装的目录,覆盖掉原来的文件;然后运行DELPHI5,
用File|Open打开RXCTL5.DPK,用Complie编译她,重复操作RXDB5.DPK和RXBDE5.DPK文件;
然后打开DCLRX5.DPK,Complie她再Install她,重复操作DCLRXDB5.DPK和DCLRXBD5.DPK文件,完成了!
最后如果用的时候说找不到什么什么.dcu文件,在程序搜索路径里加上你安装Rx控件包的Units目录就不会有问题了。
来自: lcl800, 时间: 2002-12-17 17:21:00, ID: 1179293
bobosong-2,gophie-5,hbezwwl-5,linsb-50,sundy123-5,
tokey-20,wb_l-3,少爷的拐杖-5,笑天宇-5,
得分大富翁: bobosong-2,gophie-5,hbezwwl-5,linsb-50,sundy123-5,tokey-20,wb_l-3,少爷的拐杖-5,笑天宇-5,