ClientDataSet传输Blob的错误Could not convert type (Array Byte) into type (integer).
2026/6/23 23:44:02 网站建设 项目流程

1、两次同样操作的时候:

var tq:TClientDataSet; tq:=TClientDataSet.Create(nil); tq.RemoteServer:=DataBase.DataLink; tq.ProviderName:='dsTemp'; tq.CommandText:='Update Report Set Report=:R where ReportName='''+RN+''' '; tq.ParamByName('R').LoadFromStream(st,ftBlob); tq.Execute;

如果服务端dsTemp,在两次操作过程中没有被其它ClientDataSet调用过(还要param不同),那么就会报错:Could not convert type (Array Byte) into type (integer).

这时就只能在此之前,增加一个其它的操作,比如:select @@version之类的。冲洗dsTemp的param。

tq:=TClientDataSet.Create(nil); tq.RemoteServer:=DataBase.DataLink; tq.ProviderName:='dsTemp'; tq.CommandText:='select @@version'; tq.Execute; tq.CommandText:='XXXXXXXXXXXXXXXX'; tq.ParamBy....................; tq.Execute; //这样就不会再报错

2、FastReport24.2,更新了自动缩小memo字体的设置:

TfrxMemoView.CanShink(Memo1):=True; //这里有时会导致memo行高减小。 TfrxMemoView.ContentScaleOptions.AutoScale:=casStatic; TfrxMemoView.WordWrap:=false;//根据需要 TfrxMemoView.ContentScaleOptions.cstShrink:=false;//根据需要 TfrxMemoView.ContentScaleOptions.cstGrow:=false;//根据需要,true的时候字少会放大。

以上三个属性,如果改完不生效,那么随便调个其它属性,比如字体大小,字体,行距之类的,然后大概率就可以了,如果不行,多来回调几下其它的。在这个版本里,貌似功能还不是很稳定。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询