从actionsipt 3(空气或闪存)读取SQlite时出现问题

从actionsipt 3(空气或闪存)读取SQlite时出现问题,sql,flash,actionscript-3,sqlite,air,Sql,Flash,Actionscript 3,Sqlite,Air,我在尝试使用AS3从flash读取SQlite数据库时遇到了一些问题。 数据库是使用以下php脚本创建的: $db = new PDO('sqlite:abaco.sqlite'); $db->exec("CREATE TABLE 'abacodata' ('mod' varchar(25) NOT NULL,'name' varchar(25) NOT NULL,'pos' int(3) NOT NULL,'posx' int(11) NOT NULL,'posy' int(11) NO

我在尝试使用AS3从flash读取SQlite数据库时遇到了一些问题。 数据库是使用以下php脚本创建的:

$db = new PDO('sqlite:abaco.sqlite');
$db->exec("CREATE TABLE 'abacodata' ('mod' varchar(25) NOT NULL,'name' varchar(25) NOT NULL,'pos' int(3) NOT NULL,'posx' int(11) NOT NULL,'posy' int(11) NOT NULL,'image' varchar(50) NOT NULL,'type' int(1) NOT NULL);");  
$lines=file("TEMPDATA.txt");
foreach($lines as $v) {
   $values = explode(',',$v);
   $sql = "INSERT INTO abacodata VALUES ('".$values[0]."', '".$values[1]."', '".$values[2]."', '".$values[3]."', '".$values[4]."', '".$values[6]."', '".$values[5]."');";
   $db->exec($sql);
}
如您所见,这将创建如下数据库: 在此之后,我需要在AS3中阅读此数据库,使用以下非常简单的脚本:

trace("INITIATED");
import flash.filesystem.File;
import flash.data.*;
var dbFile:File= File.applicationStorageDirectory.resolvePath("abaco.sqlite");
var sqlConn:SQLConnection = new SQLConnection();
var sqlStatement:SQLStatement = new SQLStatement();
sqlConn.open(dbFile);
sqlStatement.sqlConnection = sqlConn;
sqlStatement.text = "SELECT * FROM abacodata;";
sqlStatement.execute();
var result:Array = sqlStatement.getResult().data;
trace(result[0]['mod']);
脚本无法连接到文件,但无法定位表!;


有人知道我做错了什么吗?非常感谢

您用于创建数据库的工具与Adobe的实现之间可能存在格式冲突


请尝试从actionscript运行相同的创建脚本,并查看是否出现相同的错误。

能否查看您是否实际连接到了正确的数据库文件

我会检查以下三件事:

1-文件对象是否指向正确的文件;您可以通过跟踪nativePath来检查这一点:

trace(dbFile.nativePath);
2-确保当您打开该数据库时,您打开了现有的数据库,而不是创建一个新的数据库。这样打开你的连接;如果数据库文件不存在,您将得到:

3-最后,通过查询sqlite_主表确保您的表存在:

sqlStatement.text = "select * from sqlite_master;";
sqlStatement.execute();
sqlStatement.text = "select * from sqlite_master;";
sqlStatement.execute();