Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新sqlite数据库抛出';没有此类表格';FB4.6中的错误_Sqlite_Actionscript 3_Apache Flex_Flash Builder_Flex4.5 - Fatal编程技术网

更新sqlite数据库抛出';没有此类表格';FB4.6中的错误

更新sqlite数据库抛出';没有此类表格';FB4.6中的错误,sqlite,actionscript-3,apache-flex,flash-builder,flex4.5,Sqlite,Actionscript 3,Apache Flex,Flash Builder,Flex4.5,我正在使用FlashBuilder4.6,并且有一个我正在使用的简单应用程序。它使用sqlite db,我有mxml组件 1.)让我添加一个新记录 2.)使用列表组件列出数据库中的记录,然后单击其中一个, 3.)使用输入字段修改所选的数据库记录 每个方面都工作正常,数据库创建(如果还不存在),列表组件显示所有记录,添加新条目并成功存储它们 问题出在更新函数中。我知道该表存在于数据库中,因为我使用其他组件添加新记录并将其列出。。。(已验证所有函数中的数据库和表名称是否一致)但由于某种原因,当我尝试

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

每个方面都工作正常,数据库创建(如果还不存在),列表组件显示所有记录,添加新条目并成功存储它们

问题出在更新函数中。我知道该表存在于数据库中,因为我使用其他组件添加新记录并将其列出。。。(已验证所有函数中的数据库和表名称是否一致)但由于某种原因,当我尝试执行以下更新例程时,它会弹出

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连接的设备和Im开发的桌面计算机上的空中模拟器上

提前谢谢

更新:问题已解决。。。我在应用程序中使用了不同的数据库路径。。。某些位置的applicationDirectory和其他位置的ApplicationStorage Directory。。。。因此,我将所有内容改为:

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

。。。我相信这是一种可以在ios和android上运行的方法(尽管目前我只关心android)。谢谢你的帮助,真不敢相信我刚才错过了。我会责备睡眠不足。

问题解决了。。。。原来我在应用程序中使用了不同的数据库路径。。。某些位置的applicationDirectory和其他位置的ApplicationStorage Directory。。。。因此,我将所有内容改为:

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

。。。我相信这是一种可以在ios和android上运行的方法(尽管目前我只关心android)。谢谢你的帮助,真不敢相信我刚才错过了。我会责怪睡眠不足。

您可以从命令行运行
sqlite3 database.db
,并列出该db文件中实际包含哪些表吗?我可以在哪里运行它?从FB内部?我正在使用的macbook pro没有安装sqlite,我想没有,但是它(sqlite)在空中,所以它在空中模拟器中运行,在我的android手机上运行。同样,列表组件成功地“获取”了存储值。。。现在我不再收到错误,但更新没有保存——只是不断显示旧值,从不保存/存储更新。当我得到错误时,我实际上有一些东西要追求,但现在除了沉默之外什么也没有-但是在保存更改方面没有成功。@RedCricket-好的,睡几个小时,醒来后再次解决这个问题。。。我确实使用命令行检查了database.db。。。它将其路径显示为/private/tmp/database.db。该线程似乎与我所处理的类似-或者类似,我只是不知道要更改什么以确保数据库副本与我的列表组件使用的相同。在FB4.6中,我可以在src/bin debug/foldernice中查看database.db以查看自我回答的问题;)顺便说一句,applicationStorageDirectory在所有平台上都能工作——不仅仅是ios和Androidm还在拍自己的背。。。。但在处理下一个问题时。。。但解决新问题才是乐趣所在!(大概是一个人能得到的极客)@水蛭