我的 MySQL 数据库上有一个存储过程,其中有 2 个 OUT 参数作为 Blob 类型
我想用 UniDAC 的 SP 组件将它们的值作为 TStream 获取,我已经尝试过这段代码进行测试:
SP := TUniStoredProc.Create(nil);
M := TMemoryStream.Create;
try
try
SP.StoredProcName := 'user_getpic';
SP.PrepareSQL(False);
SP.Params.ParamByName('fUID').AsString := '...';
SP.Params.ParamByName('fDiceCode').AsString := '...';
...
SP.ExecProc;
M.LoadFromStream(SP.Params.ParamByName('fUPic').AsStream);
except
on E:EXception do
begin
ShowMessage('Error : ' + E.Message);
end;
end;
finally
SP.Free;
M.Free;
end;
问题是 Param.AsStream 返回 Nil 但 Param.AsBlob 不是 Nil
当我在 MySQL 上直接调用这个 SP 时,fUPic 有 blob 数据并且在 SP 上没有问题
我已经尝试过 SP.CreateBlobStream() 但我应该将什么作为 TField 传递给它的第一个参数?!
我曾尝试从 Param.AsBlob 投射到 TBlobStream 但没有机会!
我想知道如何获得一个 OUT blob 参数作为 TStream ?
我正在使用 Delphi XE6 和 UniDAC 6.1.4