使用OleVariant进行二进制数据保存(delphi6)

 最近做个项目:需要对数据进行加密的.开发工具使用delphi6

但是delphi6没有好的加密方法,于是采用微软的Crypt。方案如下:

delphi6调用vc2003写的COM(使用Crypt加密,使用vs.net2003开发Crypt加密很容易)

 

delphi6调用COM组件需要用到OleVariant变量,于是问题来了。

 

ole delphi项目中保存二进制字段并没有采用Olevariant的方法,因此这里简介一下他的方法

非常简单:

 

//save

 

var

vTempData :OleVariant;

P:Pointer;

 

 with TAdoBlobStream.Create(FieldByName('TemperatureSet') as TBlobField,bmWrite) do
        try
            vTempData := VarArrayCreate([0,15],varByte);
            for i := 0 to 15 do
            begin
                vTempData[i] := i;
            end;

            P := VarArrayLock(vTempData);
            WriteBuffer(P^,16);
            VarArrayUnLock(vTempData);

            vTempData := Unassigned;
        finally
           Free;
        end;

 

//read 相似

with TAdoBlobStream.Create(FieldByName('TemperatureSet') as TBloBField,bmRead) do
            try
                if Size > 0 then
                begin
                    vTempData := VarArrayCreate([0,Size - 1],varByte);
                    P := VarArrayLock(vTempData);
                    ReadBuffer(P^,Size);
                    VarArrayUnLock(vTempData);

                    for i :=0 to Size -1 do
                    begin
                        s := s + IntToHex(vTempdata[i],2);
                    end;
                    Memo1.Lines.Add(s);
                end;
            finally
               free;
            end;

 

希望用的兄弟有个捷径

 

你可能感兴趣的:(加密,开发工具,Delphi,微软)