ошибка запроса sqlite для Android - PullRequest
0 голосов
/ 02 июня 2011

У меня есть этот код, чтобы проверить, существуют ли значения (lang) и (lat) или нет. Если они не существуют, происходит сбой программы вместо функции, возвращающей true. Почему?

public boolean pointNotExist(int lat, int lang)
{
    Cursor r= db.query(DATABASE_TABLE3, new String[] {
                    "_id",
                    "point_name",
                    "point_langtitude",
                    "point_latitude",
                    "No_of_visits"
                    }, 
                "point_langtitude"+"=" +lang+ " and " +"point_latitude"+ "="+lat,
                null, 
                null, 
                null, 
                null);
    if(r==null)
    {
        r.close();
        return true;
    }
    else 
    {
        r.moveToFirst();
        ContentValues args = new ContentValues();
        args.put("No_of_visits", 7);
        boolean d=db.update(DATABASE_TABLE3, args, 
        "_id"  + "=" + r.getInt(0), null) > 0;
        return false;
    }
}

Это logCat:

ERROR/Database(32321): 
    Error inserting points_counter=2 point_langtitude=-10084093 _id=16 point_latitude=37422005 
ERROR/Database(32321):   
    android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed

Вставка Points_Counter является счетчиком в другом классе, и когда этот счетчик = 2, вызывается эта (pointNotExist) функция.
Проблема возникла до оператора else.

Это код вставки:

public void insertPointOfIntrest(int lat, int lang,String name)
{ 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put("point_langtitude", lang); 
    initialValues.put("point_latitude", lat); 
    initialValues.put("point_name", name); 
    initialValues.put("No_of_visits",1); 
    db.insert(DATABASE_TABLE3, null, initialValues); 
}

Это код создаваемой таблицы:

//creating table 
track_pointOfInterest db.execSQL(
        "create table pointOfIntrest (_id integer primary key autoincrement, " 
        +"point_name text," 
        + "point_langtitude integer, point_latitude integer, " 
        + "No_of_visits );"
    );

1 Ответ

0 голосов
/ 02 июня 2011

Замените это.

long d = db.update (DATABASE_TABLE3, args, "_id" + "=" + r.getInt (0), null)> 0;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...