求助~用sqlquery往数据库插入二进制出现内存错误

fky1989 fky1989 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
function TServerMethods1.UploadPic(uName: string; uPortrait: TStream): Boolean;
//上传图片
const
BufSize = 51200;
var
Stream: TStream;
MS: TMemoryStream;
Buffer: TBytes;
ReadCount: Integer;
begin
Result := False;
Stream := uPortrait;
try
MS := TMemoryStream.Create;
if Stream.Size < -1 then
begin
SetLength(Buffer, BufSize);
repeat
ReadCount := Stream.Read(Buffer[0], BufSize);
if ReadCount > 0 then
MS.Write(Buffer[0], ReadCount);
until ReadCount < BufSize;
end
else
MS.CopyFrom(Stream, 0);
MS.Position := 0;
MS.SaveToFile('c:\users\fky\desktop\123.bmp');
// 上面的都ok
try
with sqlqry_Pic do
begin
Close;
SQL.Clear;
SQL.Add('update t_User set u_Portrait = :p_Portrait where u_Name = :p_Name');
TBlobField(Params.ParamByName('p_Portrait')).LoadFromStream(MS);
// 就是到上面这行,出现内存错误了
Params.ParamByName('p_Name').Value := uName;
ExecSQL(False);
Result := True;
end;
except
Result := False;
end;
finally
MS.Free;
end;
end;
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部