Android SQLite with Triggers教程调试

时间:2011-02-23 13:08:58

标签: android sqlite triggers

我一直热衷于了解Android和SQLite中的触发器。我找到了一个很棒的教程:

http://android-pro.blogspot.com/2010/10/using-sqlite-database-with-android.html

但是,将项目导入Eclipse并尝试运行后,我收到错误:

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

在选择项目外键后尝试查看数据库中的信息时会发生这种情况。例如将人员添加到部门IT部门。转到查看屏幕,选择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 个答案:

答案 0 :(得分:2)

通过将代码更改为:

,我能够在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
            );

答案 1 :(得分:0)

尝试将其更改为:

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 ....

到select中的列。