2014-08-27 68 views
0

我尝试从Adobe Flash/Air数据库获取一些数据。 和它抛出错误说:错误消息:错误#3115:SQL错误。 Flash Sql数据库表错误

“错误消息:Error#3115:SQL错误没有这样的表 'favori'”

我的代码是:

import flash.data.SQLConnection; 
import flash.events.SQLErrorEvent; 
import flash.events.SQLEvent; 
import flash.filesystem.File; 
import flash.data.SQLResult; 
import flash.data.SQLStatement; 
import flash.errors.SQLError; 

var conn:SQLConnection = new SQLConnection(); 

conn.addEventListener(SQLEvent.OPEN, openHandler); 
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler); 

// The database file is in the application storage directory 
var folder:File = File.applicationStorageDirectory; 
var dbFile:File = folder.resolvePath("debe2.db"); 

conn.openAsync(dbFile); 

function openHandler(event:SQLEvent):void 
{ 
    trace("the database was created successfully"); 
} 

function errorHandler(event:SQLErrorEvent):void 
{ 
    trace("Error message:", event.error.message); 
    trace("Details:", event.error.details); 
} 

var selectStmt:SQLStatement = new SQLStatement(); 

// A SQLConnection named "conn" has been created previously 
selectStmt.sqlConnection = conn; 
conn.openAsync(dbFile); 

selectStmt.text = "SELECT id, name FROM favori"; 

selectStmt.addEventListener(SQLEvent.RESULT, resultHandler); 
selectStmt.addEventListener(SQLErrorEvent.ERROR, errorHandler2); 

selectStmt.execute(); 

function resultHandler(event:SQLEvent):void 
{ 
    var result:SQLResult = selectStmt.getResult(); 

    var numResults:int = result.data.length; 
    for (var i:int = 0; i < numResults; i++) 
    { 
     var row:Object = result.data[i]; 
     var output:String = "id: " + row.itemId; 
     output += "; name: " + row.itemName; 
     trace(output); 
    } 
} 

function errorHandler2(event:SQLErrorEvent):void 
{ 
    trace("Error message:", event.error.message); 
    trace("Details:", event.error.details); 
} 

和我谷歌搜索它,大多数人有同样的问题... 我检查了我的数据库与几个程序看起来不错,我看到我的表在那里。 对此有什么想法?

回答

0

其路径问题。

你必须找到它的“applicationStorageDirectory”路径和db文件。 我将其更改为“desktopDirectory”,并为我解决了...