У меня есть этот код, чтобы проверить, существуют ли значения (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 );"
);