Как мне обновить поле таблицы с счетчиком другой таблицы? SQLite, Java, Android - PullRequest
2 голосов
/ 15 августа 2010

Я получаю «Invalid Character Constant» под «D» сразу после ОБНОВЛЕНИЯ.Есть идеи?ОРИГИНАЛ:

public Cursor fetchAllJournals(String sort) {

            mDb.rawQuery(UPDATE 'DATABASE_JOURNAL_TABLE'
SET 'KEY_JOURNAL_NOTES' =
(SELECT COUNT(*) FROM 'DATABASE_HOMES_TABLE'
WHERE 'DATABASE_JOURNAL_TABLE'.'KEY_JROWID' = 'DATABASE_HOMES_TABLE'.'KEY_HOME_JOURNALID')
)
return mDb.query(DATABASE_JOURNAL_TABLE, new String[] {KEY_JROWID, 
KEY_JOURNAL_TITLE, KEY_JOURNAL_NOTES, KEY_JDATE},null , null, null, null, sort ,null);
        }

ОТВЕТ:

 public Cursor fetchAllJournals(String sort) {
            mDb.execSQL("UPDATE "+DATABASE_JOURNAL_TABLE+" SET "+KEY_JOURNAL_NOTES+" " +
                    " = (SELECT COUNT(*) FROM "+DATABASE_HOMES_TABLE+" WHERE "
                    +DATABASE_JOURNAL_TABLE+"."+KEY_JROWID+" = "+DATABASE_HOMES_TABLE +"." + KEY_HOME_JOURNALID+")");

            return mDb.query(DATABASE_JOURNAL_TABLE, new String[] {KEY_JROWID, 
                    KEY_JOURNAL_TITLE, KEY_JOURNAL_NOTES, KEY_JDATE},null , null, null, null, sort ,null);
        }

1 Ответ

0 голосов
/ 15 августа 2010

Недопустимая символьная константа в этом случае - DATABASE_JOURNAL_TABLE. Одинарные кавычки в Java определяют символьную константу, то есть один символ, например, «а» или «б» или «!». 'DATABASE_JOURNAL_TABLE' представляет собой их строку, поэтому вы должны использовать строковый литерал и двойные кавычки, т.е. "префикс" + DATABASE_JOURNAL_TABLE + "суффикс".

Попробуйте это:

public Cursor fetchAllJournals(String sort) {

mDb.rawQuery("UPDATE "+DATABASE_JOURNAL_TABLE+" SET "+KEY_JOURNAL_NOTES+" = (SELECT COUNT(*) FROM "+DATABASE_HOMES_TABLE+"WHERE "+DATABASE_JOURNAL_TABLE+"."+KEY_JROWID+" =+"DATABASE_HOMES_TABLE"+."+KEY_HOME_JOURNALID+")");

return mDb.query(DATABASE_JOURNAL_TABLE, new String[] {KEY_JROWID, KEY_JOURNAL_TITLE, KEY_JOURNAL_NOTES, KEY_JDATE},null , null, null, null, sort ,null);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...