报错: 缺少所需的空白区 ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);自己感觉应该是 TMemoryStream.Create 创建的时候没有不足。
这个是什么原因?
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);自己感觉应该是 TMemoryStream.Create 创建的时候没有不足。
这个是什么原因?
ms:= TMemoryStream.Create;
try
MS.postion:=0;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);
finally
ms.free;
end;
ms:= TMemoryStream.Create;
MS.postion:=0;
SOAPAttach.SaveToStream(ms);
rs.Append;
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);
rs.Post;
finally
ms.free;
end;
ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
MS.seek(0,sobeginning); rs.Append;
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);
rs.Post;
finally
ms.free;
end;
这是原来的
rs.Open;
rs.Append;
rs.FieldByName('Datetime').AsDateTime:= now;
rs.FieldByName('Customer').AsString:= Customer;
rs.FieldByName('FileName').AsString:= FName;
rs.FieldByName('FileType').AsString:= FType;
rs.FieldByName('Status').AsString:= '1'; ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms); rs.Post;
rs.Free; //释放
ms.Free;
这是原来的
rs.Open;
rs.Append;
rs.FieldByName('Datetime').AsDateTime:= now;
rs.FieldByName('Customer').AsString:= Customer;
rs.FieldByName('FileName').AsString:= FName;
rs.FieldByName('FileType').AsString:= FType;
rs.FieldByName('Status').AsString:= '1'; ms:= TMemoryStream.Create;
SOAPAttach.SaveToStream(ms);
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms); rs.Post;
rs.Free; //释放
ms.Free;
rs.Free; //释放
这句执行之后MS的指针会指向末尾,所以当下一句TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms); 执行的时候会出错,需要这样SOAPAttach.SaveToStream(ms);
MS.postion:=0;
TBlobField(rs.FieldByName('FileData')).LoadFromStream(ms);
SoapAttach: TSOAPAttachment
应该是SoapAttach 的远程传输的时间设置问题吧
只要过了30秒就会报错。谁知道这个时间是那里怎么设置的???