2017-08-12 9 views
0

データベースにデータを挿入するときは-1を使用します。 NOTHINGが挿入されていることを示す0を使用してはならない場合、falseを返します。これは正しい方法でしょうか?データベースにデータを挿入する - なぜ0ではなく-1を使用していますか?

多くのおかげで、

マーク

Routine.java

if (routineInserted) {               

Toast.makeText(RoutineEdit.this, "Activity Inserted", Toast.LENGTH_LONG).show(); 

MediaPlayer mymedia = MediaPlayer.create(RoutineEdit.this, R.raw.whoosh); 
mymedia.start(); 

} else { 

Database.java

public boolean insertRoutine(int activityImage, String selectedDay, int activitySlot) { 

    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put(RoutineColumn1,selectedDay);             
    contentValues.put(RoutineColumn2,activityImage);             
    contentValues.put(RoutineColumn3,activitySlot);             
    long result = db.insert(RoutineTable, null, contentValues);          // The db.insert is responsible for insertion of the data into the database and stores the result of this action (either true or false) in result. 

    if(result == -1)                    // if the result is not equal to -1 or data is not successfully inserted it will return FALSE. otherwise TRUE 
     return false; 
    else 
     return true;} 

答えて

1

docによります。

戻り値は、新たに挿入された行の行IDを長い間、または-1エラー だから、あなたが使用する必要があります

を発生した場合は-1。

さて、このAPIの開発者は、出現SQLExceptionの戻り値として-1を選択しました。

詳細については、あなたが代わりに二つのうちの一つreturn文を使用することができ、source code

もう一つをチェックする必要があります。

public boolean insertRoutine(int activityImage, String selectedDay, int activitySlot) { 

     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues contentValues = new ContentValues(); 
     contentValues.put(RoutineColumn1,selectedDay);             
     contentValues.put(RoutineColumn2,activityImage);             
     contentValues.put(RoutineColumn3,activitySlot);             
     long result = db.insert(RoutineTable, null, contentValues);          // The db.insert is responsible for insertion of the data into the database and stores the result of this action (either true or false) in result. 

     return (result != -1) 
} 
+0

どういう意味ですか?ドキュメントを読んで、-1を使うべきだと理解していますが、その理由を理解していますか? – MarkW

関連する問題