ExecSQL SQLiteException рядом с "?" - PullRequest
       11

ExecSQL SQLiteException рядом с "?"

3 голосов
/ 17 февраля 2010

Почему это не работает ??

db.execSQL("INSERT INTO PARTIES (PARTY_NAME, PARTY_COUNT) SELECT DISTINCT(PARTY), COUNT(PARTY) FROM ? WHERE (Year=?) GROUP BY PARTY ORDER BY PARTY ASC", new Object[] { "Election", "2004" });

Отлично работает в rawQuery !!

Ответы [ 2 ]

2 голосов
/ 17 февраля 2010

Я не знаю, на какой "rawQuery" вы ссылаетесь (URL, пожалуйста). Я не знаю ни одного механизма SQL, который бы допускал подстановку параметров для метаданных, таких как имена таблиц и столбцов - только подстановки параметров допускаются только значения или имена. SQLite не является исключением.

1 голос
/ 16 мая 2012

Может быть, не должно?

копия из документа:

public void execSQL (String sql, Object[] bindArgs)

Выполнить один оператор SQL, который НЕ является SELECT/INSERT/UPDATE/DELETE. Для операторов INSERT используйте любое из следующих действий.

  • insert(String, String, ContentValues)
  • insertOrThrow(String, String, ContentValues)
  • insertWithOnConflict(String, String, ContentValues,int)

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

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