Hi,
I'm creating my Adobe Air App using Flash CS5 Professional and facing exactly the following error.
SQLError: 'Error #3115: SQL Error.', details:'no such table: 'categories'', operation:'execute', detailID:'2013'
My SQLite Db has been created using Firefox extension - SQLite Manager. The db file is placed into the same folder as the .fla and .swf files. The db has three tables namely: categories, period and activity. I don't understand why I'm getting this error. I have even tried copy pasting other source code from AS 3.0 reference guide but same error every time.
The code below is a modified version of example code in AS 3.0 reference documentation. Can you suggest how the above error can be fixed?
/you can also reply to me directly at nasiralisher@gmail.com
/regards
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.data.SQLStatement;
import flash.display.Sprite;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
var conn:SQLConnection;
var insertCategory:SQLStatement;
var dbFile:File;
//*************************************
databaseConnect();
//*************************************
function databaseConnect():void
{
// define where to find the database file
var appStorage:File = File.applicationStorageDirectory;
dbFile = appStorage.resolvePath("MyBudgetCalc.db");
// open the database connection
conn = new SQLConnection();
conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
conn.addEventListener(SQLEvent.OPEN, openHandler);
trace("dbFile.exists:"+ dbFile.exists);
conn.openAsync(dbFile);
}
// Called when the database is connected
function openHandler(event:SQLEvent):void
{
conn.removeEventListener(SQLEvent.OPEN, openHandler);
// start a transaction
//Object(this).inputfield.text = "openHandler called.. ";
conn.addEventListener(SQLEvent.BEGIN, beginHandler);
conn.begin();
trace("exiting openHandler..");
}
// Called when the transaction begins
function beginHandler(event:SQLEvent):void
{
conn.removeEventListener(SQLEvent.BEGIN, beginHandler);
//trace("beginHandler - SQLEvent message: "+SQLEvent.message);
Object(this).inputfield.text = "beginHandler called.. ";
insertCategory = new SQLStatement();
insertCategory.sqlConnection = conn;
insertCategory.text = "INSERT INTO categories(id, name) VALUES (', Auto')";
insertCategory.execute();
insertCategory.addEventListener(SQLEvent.RESULT, insertCategoryHandler);
insertCategory.addEventListener(SQLErrorEvent.ERROR, errorHandler);
trace("exiting beginHandler..");
}
// Called after the phone number record is inserted
function insertCategoryHandler(event:SQLEvent):void
{
insertCategory.removeEventListener(SQLEvent.RESULT, insertCategoryHandler);
insertCategory.removeEventListener(SQLErrorEvent.ERROR, errorHandler);
// No errors so far, so commit the transaction
conn.addEventListener(SQLEvent.COMMIT, commitHandler);
conn.commit();
trace("exiting insertCategoryHandler after conn.commit()..");
}
// Called after the transaction is committed
function commitHandler(event:SQLEvent):void
{
conn.removeEventListener(SQLEvent.COMMIT, commitHandler);
trace("exiting commitHandler(): Transaction complete..");
}
// Called whenever an error occurs
function errorHandler(event:SQLErrorEvent):void
{
trace("entering errorHandler()..");
// If a transaction is happening, roll it back
if (conn.inTransaction)
{
conn.addEventListener(SQLEvent.ROLLBACK, rollbackHandler);
conn.rollback();
}
trace(event.error.message);
trace(event.error.details);
trace("exiting errorHandler()..");
}
// Called when the transaction is rolled back
function rollbackHandler(event:SQLEvent):void
{
conn.removeEventListener(SQLEvent.ROLLBACK, rollbackHandler);
}