我正在使用 FlashBuilder 4.6 并且有一个我正在开发的简单应用程序。它使用 sqlite db,我有 mxml 组件 1.) 让我添加一条新记录 2.) 使用列表组件列出数据库中的记录,然后单击一个时,3.) 使用输入字段修改选定的 db 记录
每个方面都工作正常,数据库创建(如果不存在),列表组件显示所有记录,并且添加新条目工作并成功存储它们......
问题出在 UPDATE 函数中。我知道该表存在于数据库中,因为我使用其他组件来添加新记录并将它们列出...(已验证数据库和表名称在所有函数中都是一致的)但是由于某种原因,当我尝试执行以下操作时它吐出的更新例程
SQLError: 'Error #3115: SQL Error.', details:'no such table: 'tblquiz'', operation:'execute', detailID:'2013'
这是我试图运行以允许用户更新数据库记录的 actionscript3 代码:
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)。感谢您的帮助-不敢相信我之前错过了。我会责怪睡眠不足。