Учебник по отладке Android SQLite с триггерами - PullRequest
0 голосов
/ 23 февраля 2011

Мне очень хотелось узнать о триггерах в Android и SQLite. Я нашел отличный учебник по адресу:

http://android -pro.blogspot.com / 2010/10 / с использованием-SQLite-базы данных с-android.html

Однако, импортировав их проект в Eclipse и попытавшись запустить его, я получаю сообщение об ошибке:

android.database.SQLiteException: no such column EmployeeName while compiling: SELECT _id,EmployeeName, Age, DeptName FROM ViewEmps WHERE DeptName=?

Это происходит при попытке просмотра информации из базы данных после выбора внешнего ключа элемента. например добавить человека в отдел ИТ. Перейдите на экран просмотра, выберите IT, и ошибка происходит.

Автор руководства попытался решить проблему, сказав, что нужно увеличить версию базы данных, но, похоже, это никому не помогло. Часть кода, которая вызывает ошибку, выглядит следующим образом:

db.execSQL("CREATE VIEW "+viewEmps+
" AS SELECT "+employeeTable+"."+colID+" AS _id,"+
" "+employeeTable+"."+colName+","+
" "+employeeTable+"."+colAge+","+
" "+deptTable+"."+colDeptName+""+
" FROM "+employeeTable+" JOIN "+deptTable+
" ON "+employeeTable+"."+colDept+" ="+deptTable+"."+colDeptID
);

Я пробовал разбивать и менять биты и пытался отлаживать себя, но ничего не получил с этим. Если у кого-то есть какие-либо идеи, это будет с благодарностью. Если бы кто-нибудь мог скачать код с сайта выше и попробовать его, чтобы увидеть его результаты, это было бы действительно полезно, так как кажется, что это происходит только с несколькими людьми. Если потребуется дополнительная информация, дайте мне знать, и я постараюсь помочь.

РЕДАКТИРОВАТЬ: если кто-то хочет загрузить исходный код, я также загрузил его в MediaFire, поскольку у некоторых людей возникли проблемы с другим зеркалом. Возьмите его по адресу: http://www.mediafire.com/?2ya4jsbcuiyq3m5

Ответы [ 2 ]

2 голосов
/ 20 ноября 2011

Я смог заставить его работать на 2.1, изменив код на:

    db.execSQL("CREATE VIEW "+viewEmps+
            " AS SELECT "+employeeTable+"."+colID+" AS _id,"+
            " "+employeeTable+"."+colName+" AS EmployeeName,"+
            " "+employeeTable+"."+colAge+" AS Age,"+
            " "+deptTable+"."+colDeptName+" AS DeptName"+
            " FROM "+employeeTable+" JOIN "+deptTable+
            " ON "+employeeTable+"."+colDept+" ="+deptTable+"."+colDeptID
            );
0 голосов
/ 23 февраля 2011

Попробуйте изменить его на:

db.execSQL("CREATE VIEW "+viewEmps+
" AS SELECT "+employeeTable+"."+colID+" AS _id,"+
" "+employeeTable+"."+colName+" AS "+colName+","+
" "+employeeTable+"."+colAge+" AS "+colAge+","+
" "+deptTable+"."+colDeptName+" AS "+colDeptName+
" FROM "+employeeTable+" JOIN "+deptTable+
" ON "+employeeTable+"."+colDept+" ="+deptTable+"."+colDeptID
);

Только что добавлено

AS ....

к столбцам в выбранном.

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