Правильный синтаксис для обновления строки в Android с SQLite - PullRequest
1 голос
/ 01 июля 2011

Хорошо, у меня есть два проекта Android, оба работают на одном уровне API.В одном для обновления строки SQLite я использую:

db.update(DATABASE_TABLE, updateValues, KEY_ROWID + "=" + rowId, null);

В другом я использую:

db.update(DATABASE_TABLE, updateValues, FIELD_COLLECTION_ID + "=?", new String[] {collectionId});

Они оба работают.За исключением того, что во втором проекте, если я изменю синтаксис, чтобы он соответствовал первому (то есть удалил знак вопроса из предложения where и установил whereArgs в ноль), он вернет 0 затронутых строк.Для этого есть причина?Я думаю о том, чтобы придерживаться второго синтаксиса, потому что, очевидно, он уменьшает вероятность внедрения SQL-кода, но я подумал, что добавлю этот синтаксис и посмотрю, есть ли у кого-нибудь подобный опыт.t указать, для чего используется whereArgs, он просто есть: SQLiteDatabase: update ()

1 Ответ

0 голосов
/ 01 июля 2011

Когда вы удаляете знак вопроса, заменяете ли вы его значением collectionId?

Второй синтаксис означает, что SQLite может повторно использовать одну и ту же кэшированную копию запроса для любого числа различных значений rowId или collectionId, вместо того, чтобы каждый раз вызывать совершенно другой запрос. Экономит много ресурсов.

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