anchor.diff:        end;
         vtObject:
         begin
  -        if (Params[i].VObject is TStream) then
  -        begin
  -          SetParamBlob(i+1, TStream(Params[i].VObject));
  -        end
  +        if not Assigned(Params[i].VObject) then
  +          SetParamNull(i+1)
           else
           begin
  -          raise ESQLiteException.Create('Unsupported param object type');
  +          if (Params[i].VObject is TStream) then
  +          begin
  +            SetParamBlob(i+1, TStream(Params[i].VObject));
  +          end
  +          else
  +            raise ESQLiteException.Create('Unsupported param object type');
           end;
         end;
         vtVariant:
  
positive.code:     dtNumeric:
        Result := FieldAsDouble(I);
      dtBlob:
        Result := FieldAsBlobText(I);
      dtDate:
      begin
        if not TryStrToDate(FieldAsString(I), dt1, fDB.FmtSett) then
  
negative.code: 
  end;
  
  function TSQLiteUniTable.FieldAsBlobVariant(I: Cardinal): Variant;
  var
    LStream: TMemoryStream;
    MyBuffer: Pointer;
  begin
    Result := Null;
    LStream := FieldAsBlob(I);
    if Assigned(LStream) then
    begin
      try
        LStream.Position := 0;
        Result := VarArrayCreate([0, LStream.Size - 1], VarByte);
        MyBuffer := VarArrayLock(Result);
        LStream.ReadBuffer(MyBuffer^, LStream.Size);
      finally
        VarArrayUnlock(Result);
        LStream.Free;
      end;
     end;
  end;
  
  function TSQLiteUniTable.FieldAsDouble(I: cardinal): double;
  begin
    Result := Sqlite3_ColumnDouble(fstmt, i);
  