更新sqlite db会在fb 4.6中抛出'no such table'错误

时间:2013-02-17 05:32:20

标签: sqlite actionscript-3 flex flash-builder flex4.5

我正在使用FlashBuilder 4.6并拥有一个我正在处理的简单应用程序。它使用sqlite db,我有mxml组件 1.)让我添加一条新纪录 2.)使用列表组件列出数据库中的记录,然后单击一个时, 3.)使用输入字段来修改所选的db记录

每个方面都运行良好,数据库创建(如果不存在),列表组件显示所有记录,添加新条目工作并成功存储...

问题出在UPDATE函数中。我知道这个表存在于db中,因为我使用其他组件来添加新记录并列出它们...(已经验证了数据库和表名在所有函数中是一致的)但是由于某些原因我尝试执行以下操作时它吐出的UPDATE例程

SQLError: 'Error #3115: SQL Error.', details:'no such table: 'tblquiz'', operation:'execute', detailID:'2013'

这里是我试图运行的actionscript3代码,允许用户更新db记录:

private function updateQuestion():void
        {

            var dbFile:File = File.applicationDirectory.resolvePath("database.db");
            var dbConnection:SQLConnection = new SQLConnection();
            dbConnection.open(dbFile);

            var statement:SQLStatement = new SQLStatement();
            statement.sqlConnection = dbConnection;

            // TAKE THE FORM FIELD VALUES AND USE THIS SQL STATEMENT TO UPDATE THE DATABASE RECORD WHERE THE ID MATCHES DATA.ID
            statement.text = "UPDATE tblquiz SET question = '" + fieldQuestion + "', answerA = '" + fieldAnswerA + "', answerB = '" + fieldAnswerB + "', answerC = '" + fieldAnswerC + "' WHERE id = " + data.id;
            trace(statement.text);

            statement.execute();

            // GO BACK TO THE LIST COMPONENT TO SEE IF THE UPDATE WORKED
            navigator.popView();

        }

我在这里想念的是什么?引用数据库和表格的其他所有内容都可以正常工作我在谷歌搜索中找不到任何有关此错误的信息。通过USB连接的设备和桌面计算机上的AIR仿真器上发生错误。我正在开发。

提前谢谢!

更新:问题解决了......我在应用程序中使用了不同的路径数据库...某些地方的applicationDirectory和其他地方的applicationStorageDirectory ....所以我把所有内容改为:

File.applicationStorageDirectory.resolvePath("database.db");

...我相信这是一种适用于ios和android的方法(虽然android现在都是我所关注的)。谢谢你的帮助 - 不能相信我早些时候错过了。我会责怪睡眠不足。

1 个答案:

答案 0 :(得分:2)

问题解决了....结果我在应用程序中使用了不同的路径数据库...在某些地方使用applicationDirectory而在其他地方使用applicationStorageDirectory ....所以我将所有内容更改为:

File.applicationStorageDirectory.resolvePath("database.db");

...我相信这是一种适用于ios和android的方法(虽然android现在都是我所关注的)。谢谢你的帮助 - 不能相信我早些时候错过了。我会责怪睡眠不足。