anchor.diff:                    thisColType^ := Sqlite3_ColumnType(stmt, i) //use the actual column type instead
                   //seems to be needed for last_insert_rowid
                   else
  -                  if (DeclaredColType = 'INTEGER') or (DeclaredColType = 'BOOLEAN') then
  +                begin
  +                  sColType :=  AnsiUpperCase(DeclaredColType);
  +
  +                  if TSQLiteDatabase.FColumnTypes.TryGetValue(sColType, iColType) then
  +                  begin
  +                    thisColType^ := iColType;
  +                  end
  +                  else
  +                  begin
  +                    thisColType^ := dtStr;
  +                  end;
  +
  +                end;
  +                 { if (DeclaredColType = 'INTEGER') or (DeclaredColType = 'BOOLEAN') then
                       thisColType^ := dtInt
                     else
                       if (DeclaredColType = 'NUMERIC') or
  
positive.code:               fCols := TStringList.Create;
                fColTypes := TList.Create;
                fColCount := SQLite3_ColumnCount(stmt);
                for i := 0 to Pred(fColCount) do begin
                  fCols.Add(UpperCase(Sqlite3_ColumnName16(stmt, i)));
                end;
                for i := 0 to Pred(fColCount) do
                begin
                  new(thisColType);
  
negative.code:                       if DeclaredColType = 'BLOB' then
                          thisColType^ := dtBlob
                        else
                          thisColType^ := dtStr; }
                  fColTypes.Add(thiscoltype);
                end;
                fResults := TList.Create;
  