gpt4 book ai didi

mysql - 获取存储过程的 OUT BLOB 类型参数作为 TStream

转载 作者:行者123 更新时间:2023-11-28 23:21:01 24 4
gpt4 key购买 nike

我的 MySQL 数据库上有一个存储过程,带有 2 个 Blob 类型的 OUT 参数

我想通过 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

最佳答案

使用AsBlob。它将 blob 作为字节数组返回。您可以直接使用它,或者如果您需要通过流访问数据,请使用 TBytesStream

Stream := TBytesStream.Create(Param.AsBlob);

关于mysql - 获取存储过程的 OUT BLOB 类型参数作为 TStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41573515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com