Vas*_*kov 4 delphi memorystream variant
如何将TMemoryStream的内容转换为变体?我使用的是Delphi 2010.
TMemoryStream存储文件的内容,它可以是PDF或JPG(扫描文档).
文件保存在MS SQL基础中.当我在程序中进入编辑模式时,我将该文件的内容从base提取到TMemoryStream中.
编辑完文件卡后,我需要将文件发回基地.扫描文件也可以更改(或替换为其他文件).要记录回来,我使用带有一堆参数的存储过程 - 每个字段一个.我将参数作为变量传递给存储过程.
这就是我需要将TMemoryStream转换为变体的原因.
Rem*_*eau 10
假设您需要Variant来保存字节数组,您可以使用:
var
MS: TMemoryStream;
V: Variant;
P: Pointer;
begin
...
V := VarArrayCreate([0, MS.Size-1], varByte);
if MS.Size > 0 then
begin
P := VarArrayLock(V);
Move(MS.Memory^, P^, MS.Size);
VarArrayUnlock(V);
end;
...
end;
Run Code Online (Sandbox Code Playgroud)