Самый простой способ - использовать UNIQUE, создавая таким образом столбцы / составные столбцы, которые приведут к конфликту ограничений и, следовательно, не позволят вставить строку.
Что не совсем ясно, так это то, какие столбцы вы используете.имеют в видуЗаголовок показывает, что это столбец name , в этом случае вы можете изменить COl_NAME + " TEXT, " +
на COl_NAME + " TEXT UNIQUE, " +
.
Текст, как говорится I wan 't проверить, существует ли поисковый URL и собственный URL в БД. Это подразумевает, что только если существует комбинация обоих, вы не хотите добавлять строку, но это комбинация, где только одинстолбцы, которые уже существуют, должны быть добавлены.
Предполагая это, вы можете добавить составное УНИКАЛЬНОЕ ограничение, в этом случае вы можете добавить строку
", UNIQUE(" + COL_NATIVEURL + "," + COL_SEARCHURL + ")" +
Это будет добавлено после строкиCOL_SEARCHURL + " TEXT" +
Если требуется, чтобы строка не добавлялась, если она существует, вы можете добавить UNIQUE к определениям столбцов, используя: -
COL_NATIVEURL + " TEXT UNIQUE," +
COL_SEARCHURL + " TEXT UNIQUE" +
- Обратите внимание, что addBookMark вернет-1, если строка не была добавлена.
Если вышеприведенное не подходит и вы хотите проверить столбец, вы можете основать эту проверку на чем-то похожем на следующий метод в классе BookmarkDB: -
public boolean ifNativeUrlExists(String nativeUrl) {
boolean rv = false;
String whereclause = COL_NATIVEURL + "=?";
String[] whereargs = new String[]{nativeUrl};
Cursor csr = mDB.query(TBL_BOOKMARK,null,whereclause,whereargs,null,null, null)
if (csr.getCount() > 0) {
rv = true;
}
csr.close();
return rv;
}
Вы можете использовать это, используя что-то вроде: -
public void saveData() {
Random r = new Random();
int low = 14;
int high = 100;
int result = r.nextInt(high-low) + low;
if (!bookmarkDB.ifNativeUrlExists(mUrl.getText().toString())) {
bookmarkDB.addBookmark(result, mName.getText().toString(), false, "", mUrl.getText().toString(), "http://" + mUrl.getText().toString());
} else {
..... code to indicate not added
}
}
- Очевидно, что это может быть довольно легко адаптировано для других столбцов.
Обратите внимание, что выше в-принципный код и не был проверен или выполнен и, следовательно, содержит некоторые ошибки.