Android: где условия с ContentValues превышают String[] в функции обновления SQLiteDatabase
В настоящее время функция обновления в SQLiteDatabase использует String[] для аргументов Where.
update(String table, ContentValues values, String whereClause, String[] whereArgs)
Я нахожу это очень странным
A) Обычно значения передаются с использованием объекта ContentValues: я могу передать фактический объект, и SQLiteDatabase преобразует его должным образом, используя его собственные функции привязки.
Например, я могу вставить в Content Value a Long, и SQLiteDatabase преобразует его должным образом во время вставки.
put(String key, Long value)
Б) Тем не менее, для условия "Где" мне нужно преобразовать значения в строку самостоятельно. Конечно, в большинстве случаев это не проблема, так как.toString() сделает свою работу. Однако в некоторых случаях преобразование не так просто, например:
- чтобы скрыть число с плавающей точкой, я должен использовать "." или "," как десятичная точка (это варьирует страны к странам)?
- Как я могу преобразовать в String нулевое значение?
ВОПРОСЫ:
Вопрос 1) Есть ли у вас какие-либо предложения относительно наилучшей практики использования оператора Where?
Вопрос 2) Есть ли способ передать whereArgs как ContentValues, чтобы использовать нативную привязку для преобразования?
Вопрос 3) Если я буду использовать String[] в качестве whereArgs, я попаду в невыровненную ситуацию: сама вставка использует собственные функции привязки, но оператор where требует преобразования самостоятельно. Я чувствую, что это вызовет некоторые конфликты (например, я вставляю поплавок "5.2", но затем я обновляю поиск строки на "5,2").
Вопросы 3.1) Были ли у кого-то подобные проблемы и каково было решение?
Вопросы 3.2) Чтобы выровнять 2 вида преобразований, я думал всегда позаботиться о преобразовании в String: так, чтобы передать в ConcentValues только String (преобразованный мной) + конечно, чтобы использовать то же преобразование для String [ ] Где Аргс. Будет ли это решением? Какие недостатки вы можете предвидеть?
Заранее благодарим всех вас за поддержку Энрико