三层开发,中间层各逻辑处理模块封装成动态连接库形式,每个模块还要通过访问公用的数据库接口函数(动态连接库形式)访问数据库,直接传输使用OleVariant类型的变量,请问OleVariant类型变量在动态连接库之间传输多了会不会影响内存的管理呀?我在模块中由于要对传进来的OleVariant变量进行解析,重新打包,用到了几个中间OleVariant变量,结果发觉明明没错的赋值操作。就是一直有问题,郁闷了很久,特请教高手……
procedure TForm1.ProVehicleAdd(var vData:OleVariant;var iResult:integer;cm1:TADOCommand);
var
    vVehicleInfo0,vVehicleInfo1:OleVariant;//temple变量
begin
        vVehicleInfo0:=VarArrayCreate([0,2],varVariant); //字段
            vVehicleInfo1:=VarArrayCreate([0,4],varVariant); //字段
            vVehicleInfo1[0]:=vData[1][0];
            vVehicleInfo1[1]:=vData[1][1];
            vVehicleInfo1[2]:=vData[1][2];
            vVehicleInfo1[3]:=vData[1][3];
            vVehicleInfo0[0]:= vVehicleInfo1;
        
    vVehicleInfo1[0]:=vData[2][0];
            vVehicleInfo1[1]:=vData[2][1];  
            vVehicleInfo1[2]:=vData[2][2];
            vVehicleInfo1[3]:=vData[2][3];
            vVehicleInfo0[1]:=vVehicleInfo1;
            FunDBDataInsert('tVehicle',vVehicleInfo0,4,cm1);//插入第一个表
           //数据库接口函数,是另一个动态连接库的函数            vVehicleInfo1[0]:=vData[1][0];
            vVehicleInfo1[1]:=vData[1][1];  //出错!???????
            vVehicleInfo1[2]:=vData[1][2];
            vVehicleInfo1[3]:=vData[1][3];
            vVehicleInfo0[0]:= vVehicleInfo1;
        
            vVehicleInfo1[0]:=vData[2][0];
            vVehicleInfo1[1]:=DateToStr(now);
            vVehicleInfo1[2]:=vData[2][2];
            vVehicleInfo1[3]:='正常变更';
            vVehicleInfo0[1]:=vVehicleInfo1;
            FunDBDataInsert('tVehicleHistoryWeight',vVehicleInfo0,4,cm1);//插入第二表