0

I'm trying to store a long number (i.e. 9999999999) on a SQLite INTEGER column, and when I try to use ".put" from ContentValues, it doesn't accept, saying it's larger than an integer number.

The interesting thing is that when I tried to create a long variable, I had the same warning.

Bellow there is the code, witch on AndroiStudio gives me the erros:

enter image description here

PS.: sorry for posting it, because there are so many of these kind of question, but I couldn't find a solution looking them.

public class FeedHelperGamer extends SQLiteOpenHelper {

    String TAG = "HelperGamer";

    //string to create gamerDB
    private static final String SQL_CREATE_ENTRIES_Gamer =
            "CREATE TABLE " + FeedReaderContract.FeedEntry.TABLE_GAMER + " (" +
                    _ID + " INTEGER PRIMARY KEY," +
                    COLUMN_GAMER_NAME+ " TEXT," +
                    COLUMN_GAMER_GAMES + " INTEGER," +
                    COLUMN_GAMER_HITS + " INTEGER," +
                    COLUMN_GAMER_POINTS + " INTEGER," +
                    COLUMN_GAMER_PICTURE + " BLOB," +
                    COLUMN_GAMEMODE1 + " TEXT," +
                    COLUMN_GAMEMODE2 + " TEXT," +
                    COLUMN_GAMEMODE3 + " TEXT," +
                    COLUMN_GAMEMODE4 + " TEXT," +
                    COLUMN_GAMEMODE5 + " TEXT)";




    private static final String SQL_DELETE_ENTRIES_GAMER =
            "DROP TABLE IF EXISTS " + FeedReaderContract.FeedEntry.TABLE_GAMER;

    

    // If you change the database schema, you must increment the database version.

    public static final int GAMER_DATABASE_VERSION = 1;

    public static final String DATABASE_NAME_GAMER = "Gamer.db";

    public FeedHelperGamer(Context context) {
        super(context, DATABASE_NAME_GAMER, null, GAMER_DATABASE_VERSION);
    }


    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES_Gamer);

    }
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // This database is only a cache for online data, so its upgrade policy is
        // to simply to discard the data and start over
        db.execSQL(SQL_DELETE_ENTRIES_GAMER);
        onCreate(db);
    }
    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onUpgrade(db, oldVersion, newVersion);
    }

    //insere novo jogador
    public long addNewGamer(String tmpGamerName, byte[] imageBytes) {
        final SQLiteDatabase db = this.getWritableDatabase();
        long number = 999999999999999; //it's useless just created to test the long variable


                // Create a new map of values, where column names are the keys
                ContentValues values = new ContentValues();
                values.put( COLUMN_GAMER_NAME, tmpGamerName );
                values.put( COLUMN_GAMER_GAMES, 0 );
                values.put( COLUMN_GAMER_HITS, 0 );
                values.put( COLUMN_GAMER_POINTS, 9999999999);
                values.put( COLUMN_GAMER_PICTURE, imageBytes );
                values.put( COLUMN_GAMEMODE1, modeStateFalse );
                values.put( COLUMN_GAMEMODE2, modeStateFalse );
                values.put( COLUMN_GAMEMODE3, modeStateFalse );
                values.put( COLUMN_GAMEMODE4, modeStateFalse );


                long newRoId = db.insert( FeedReaderContract.FeedEntry.TABLE_GAMER, null, values );
                
        
        return newRoId;
    }

1 Answers1

1

You should change this line

long number = 999999999999999; 

like below

long number = 999999999999999L;