关于WORD和文件流……这个问题比较难,分数不够您言语! 如果是在oracle中,可以使用blob类型的字段来存取。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你是用oracle数据库,你可以将流保存到blob类型的字段中去。 你用的是什么类型,我用过SQL中的IMAGE字段类型,但只能保存很小的文件,后来改用Pardox7中的OLE字段类型,一切搞定了。 我用的就是SQLSERVER2000里面的IMAGE类型。请问是不是这个这个原因,那么请教用SQLSERVER里面的什么类型字段可以解决此问题! 用SQLSERVER2000里面的IMAGE类型可以;写如曹作如下:(ADOTable1.FieldByName('AAAA') as TBlobField).LoadFromFile('h:\1998年.jpg');—————————————————————————————————MaximStr := '宠辱不惊,看庭前花开花落,去留无意; 毁誉由人,望天上云卷云舒,聚散任风。';if Not Assigned(I) then I := TI.Create(Nil);I.Maxim := MaximStr;I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';I.Desire := '加不加分随你';————————————————————————————————— 写入什么文件都可以,与文件类型无关。—————————————————————————————————MaximStr := '宠辱不惊,看庭前花开花落,去留无意; 毁誉由人,望天上云卷云舒,聚散任风。';if Not Assigned(I) then I := TI.Create(Nil);I.Maxim := MaximStr;I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';I.Desire := '加不加分随你';————————————————————————————————— TO:lxpbuaa(桂枝香在故国晚秋)感谢你的回答,我照你的办法试了一下,但依然提示“STREAM READ ERROR”,为什么?MSDOS.SYS文件只有几百字节。(query1.FieldByName('AAA') as TBlobField).LoadFromFile('c:\MSDOS.SYS'); 我曾经用过,查过书,理论上讲好象可以,但实际作的时候不行,最后我没办法而改用prodax,如果你能在sql中处理,告诉我,[email protected],如果你解决不了,建议你改变数据库。 必须在网上,你可以使用Corba来实现数据共享。 我不久前刚刚做了一个Word for Web控件 除了:另外我虽然可以打开WORD文件但速度比较慢,看的出消耗了很多内存,而且打开WORD文件的次数一多就容易出错没有你说的问题字段类型得用Image把你的Query设置为缓冲模式 试试 不明白你为何同一个操作里要OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,false然后又来TBlobField(Query1.fieldbyname('aaa')).savetostream(ccc);ccc.position:=0;OleContainer1.loadfromstream(ccc);还有,你保存的代码为什么不帖出来! 保存var OleStream : TMemoryStream; OleStream := TMemoryStream.Create; OleContainer1.SaveToStream(OleStream); OleStream.Position := 0; //找回零点 Edit; Tblobfield(FieldByName('Content')).LoadFromStream(OleStream); Post; UpdateBatch ; 同意楼上,但不是所有的数据库的blod字段都可以进保存的进去。 TO;wenzm(疯之驴),我照你的方法试了一下,但必须要几个屏蔽掉几个才能执行,执行后的结果依然是“STREAM READ ERROR”。到底是为什么?另外我也把打开和保存WORD分开写了。var OleStream: TMemoryStream;begin OleStream:= TMemoryStream.Create; OleContainer1.SaveToStream(OleStream); OleStream.Position := 0;// Edit; Tblobfield(Table1.FieldByName('aaa')).LoadFromStream(OleStream);// Post;// UpdateBatch;end; netlib(河外孤星) :现在SQL中也可以搞定了,且可以存any type,any sizefanxinlong dcphashes md5 不可逆加密控件 如何使用 多表查询错误,在线等 请教各为大虾定点数表示范围的问题! 有没有使用quickrep的高手,我的数据库里有多行文本,我用QRDBRichText1来打印这个字段时,能否自动看它有多少字来分配给他多大的空间, 谁给一个好的文本加密算法! 请教,急! 如何获得字符的 ASCII 值? 让用户来设计调整报(rave) 修改可执行程序 请教win2k下剪贴板使用的问题。 在DELphi中如何申明一个指向数组的指针 如何获得ADO ConnectionString数据链接属性的种类(即OLE DB 提供者的种类)
(ADOTable1.FieldByName('AAAA') as TBlobField).LoadFromFile('h:\1998年.jpg');
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
I.Desire := '加不加分随你';
—————————————————————————————————
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
I.Desire := '加不加分随你';
—————————————————————————————————
感谢你的回答,我照你的办法试了一下,但依然提示“STREAM READ ERROR”,为什么?MSDOS.SYS文件只有几百字节。
(query1.FieldByName('AAA') as TBlobField).LoadFromFile('c:\MSDOS.SYS');
必须在网上,你可以使用Corba来实现数据共享。
除了:另外我虽然可以打开WORD文件但速度比较慢,看的出消耗了很多内存,而且打开WORD文件的次数一多就容易出错没有你说的问题字段类型得用Image
把你的Query设置为缓冲模式 试试
OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,false
然后又来
TBlobField(Query1.fieldbyname('aaa')).savetostream(ccc);
ccc.position:=0;
OleContainer1.loadfromstream(ccc);还有,你保存的代码为什么不帖出来!
保存
var OleStream : TMemoryStream;
OleStream := TMemoryStream.Create;
OleContainer1.SaveToStream(OleStream);
OleStream.Position := 0; //找回零点
Edit;
Tblobfield(FieldByName('Content')).LoadFromStream(OleStream);
Post;
UpdateBatch ;
OleStream: TMemoryStream;
begin
OleStream:= TMemoryStream.Create;
OleContainer1.SaveToStream(OleStream);
OleStream.Position := 0;
// Edit;
Tblobfield(Table1.FieldByName('aaa')).LoadFromStream(OleStream);
// Post;
// UpdateBatch;
end;
fanxinlong