关于ReportBuilder格式设计的问题, 向高手挑战 (100分)

  • 主题发起人 主题发起人 xie8866
  • 开始时间 开始时间
X

xie8866

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在用ReportBUilder进行报表设计时, 若报表内摆放的控件太多的,那么在保存格式时,
就会出现错误: Invalid BLOB field Length. 不知那位仁兄也曾遇到过同样的问题, 能否与我
一同进行探讨, 若您已知道问题在哪里, 请您大发慈悲点拨点拨我, 我为此问题已经耗费了一个
礼拜的白天和黑夜了, 寝食难安。无论您提出给分还是给RMB的要求, 都是可以商量的。
我的EMAIL: xie86@sina.com
另外,我的开发环境是:
Delphi5.0 + ReportBuilder5.0 Enterprise Edition + MSSQL7.0 Desktop Edition
我要求将报表格式保存到数据库的template字段中的, 该字段已被我设置为text类型
拜托了!!
 
看你的报错,好像是bolb的字段大小不够了,是不是SQL Server中的相应字段不够长?
 
Brove 感谢您给我回应, 但是我在SQL SERVER将Template字段设置为text类型了, 按道理不应该存在字段不够长的问题
我看问题的关键似乎并没在这里。
 
设置成image类型试试。
text存放文本,不知道能不能存放格式文件。
 
brave:
我后来发现, 这个问题似乎是Delphi的问题,我发现在Delphi5.0中只能提交最大容量为32K的Txt文本到MSSQL Server的Text类型字段中, 若超过该容量
则系统会出现Invalid BLOB Length的错误信息, 实际上text字段是可以容纳2G的文本的呀
我写了以下一段测试程序, 看您能不能帮忙对以下程序作修改, 使得能够提交更多的内容, 可以采用BDE, ADO等任何方法:
procedure TForm1.Button1Click(Sender: TObject);
var
sstrs:TStrings;
str:string;
i:integer;
begin
sstrs:=TstringList.Create;
str:='0123456789';
for i:=0 to 1692do
//最多只能循环到1692
begin
sstrs.Add('['+inttostr(i)+'] '+str);
end;
showmessage(inttostr(length(sstrs.text)));
table1.Append;
TMemo(table1.FieldByName('template')).assign(sstrs);
//template 字段的类型为text
table1.Post;
sstrs.Free;
end;
 
如果使用BDE的话,默认是32KB的BLOB数据,具体修改:
如果使用SQL Links,则修改 TDatabase 的 BLOB SIZE=32 参数中将32改成更大的值,
如果使用了别名等东西,在BDE别名管理里面可以设置这个参数
使用ADO则无这个限制
 
非常感谢Babylon5和Brave, 问题已经得到解决
 
后退
顶部