如何解决dbrichedit只能容纳64K文本的问题?(100分)

  • 主题发起人 主题发起人 patlovecl
  • 开始时间 开始时间
P

patlovecl

Unregistered / Unconfirmed
GUEST, unregistred user!
在我开发的数据库中,部分fmemo字段超过了64K,以至于
无法在dbrichedit中正常现实,改用memo类型,dbmemo
只能容纳32K字节,有哪个控件能解决这问题??或还有什么变通方法?
 
你用的是什么版本的DELPHI?
 
先将数据存入一个内存流内,以64k为分段,分批取到Richedit中进行处理.
就别用DBrichedit了.
自己控制刷新/入库等操作吧!更灵活!
本人从来不用Db系列,除了功能极简单的之外.
 
为什么要以64k为分段,分批取到RichEdit中?
 
dubhe兄:
不是超过64K出错吗?
您没看作者的提问?
 
出错是因为DBRichEdit无法放下超过64K的内容,
使用RichEdit通过TMemoryStream存取数据库则不存在这个限制.
1.从数据库把文本内容取到RichEdit中:
With Table1 do
begin
//.....
theContent:=TMemoryStream.Create;
(FieldByName('Content')as TblobField).SaveToStream(theContent);
theContent.Position :=0;
RichEdit1.Lines.LoadFromStream(theContent);
//.....
end;
theContent.Free;
2.把RichEdit的内容存到数据库中
With Table1 do
begin
//.....
theContents:=TMemoryStream.Create;
redtContents.Lines.SaveToStream(theContents);
theContents.Position := 0;
(FieldByName('Contents')as TblobField).LoadFromStream(theContents);
//.....
end;
 
WuYi ,我用的是D 3.0
另外,我的数据包括一些在DOS下录入的表格,在richedit中无法正确显示,总错行,在memo中可以正确显示,无奈只好把所有的formatmemo转换为memo,可没想到原来碰到的richedit 64K问题变为了 memo 32K问题.
dubhe的法子待我试试再说.

多谢各位!
 
如果不想保存文本格式的话,可将RichEdit的PlainText设为True
 
如果表格错行,可以将缺省的字体定为宋体小五号,就行了!
 
dubhe:
用stream无法解决richedit 64K问题
hanson:
小5号无法解决表格显示问题

看来,绕过64K问题没戏了,除非重编tcontrol.
 
以下文字来自ChenKe
<hr>
这里有一个Dbmemo增强控件,不限文本长度,还可显示特殊效果。
带源码,帮助,例子应有尽有,下载:
可到ftp.fortunecity.com,
username:chenkeftp
password:chenkeftp
get PlusMemo.zip
enjoy it!
 
PlusMemo is good, but how to give my point to ChenKe
 
chenke请在此贴一段.
 
多谢各位大虾,小的来了,我只要20分咯,其余的请分给各位大虾,
因为我没做什么事.
 
多人接受答案了。
 

Similar threads

后退
顶部