300谢大家参与:三层中的Image字段只能存入32K的数据,进来帮提提!(300分)

  • 主题发起人 主题发起人 yue_shan
  • 开始时间 开始时间
Y

yue_shan

Unregistered / Unconfirmed
GUEST, unregistred user!
1、数据库字段定义为:Image,用存储过程保存、选择一条记录,在中间层上用TStoreProc,TDataSetPrivoder(我本来想在中间层定义一个过程,客户端执行这过程取数据,但不知用什么类型的参数好)
2、客户端用TClientDataSet连接:
保存: with DM.cdsMT_SaveStreamdo
begin
Close;
....
FetchParams;Params[3].LoadFromStream(st,ftGraphic);
.....
Excute;
Close;
end;
取数据:
var
st: TMemoryStream;
FName: string;
begin
Screen.Cursor := crHourGlass;
st := TMemoryStream.Create;
with DM.cdsMT_GetStream
begin
Close;
FetchParams;
Params[0].AsInteger := RecID;
Open;
Tblobfield(FieldByName('Body')).SaveToStream(st);
Close;
end;
FName := ExtractFileDir(Application.ExeName) + 'a.eml'
st.SaveToFile(FName);
st.Free;
end;
大家好空再给参谋,来瞧热闹的也帮提提
 
没人顶,到时分都发不了
 
hoho来了~我帮你踢一脚
 
将BDE中的BLOB SIZE的值32改大一点
 
嗯,来晚一步……
把Blob Size和Blobs to Cache都酌情设大一点,就可以解决这一问题,不但如此,还可以解决其它问题,请看:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1249185
 
hds6400,sachow,都正確﹗
 
hds6400,sachow说的我都有设过,目前还不能超过1000K
 
用ADO连接会大一些。
要分!
 
分大家分了吧
 
多人接受答案了。
 
后退
顶部