在下面语句中    Data := VarArrayLock(v_pkg);////就是这句出错了,
请教!是什么原因
procedure TRDM.S_Add(var v_pkg: OleVariant);
var  Data: PChar;
begin
  try
    Data := VarArrayLock(v_pkg);////就是这句出错了,
    try
      Move(Data^, FInpkg, SPackageLength);
    finally
      VarArrayUnlock(v_pkg);
    end;    DM.S_Add(FInpkg);  except
    On E: Exception do begin
      Raise;
    end;
  end;
end;