AIR and sqLite : if table exists conditional AIR and sqLite : if table exists conditional sqlite sqlite

AIR and sqLite : if table exists conditional


As opposed to finding it manually with SQL you should use the built in Schema information classes/functions. Here is an example of how it would work.

public function doesTableExist(connection:SQLConnection, tableName:String):Boolean{    connection.loadSchema();    var schema:SQLSchemaResult = connection.getSchemaResult();    for each (var table:SQLTableSchema in schema.tables)    {        if (table.name.toLowerCase() == tableName.toLowerCase())        {            return true;        }    }    return false;}


There is no simple statement to achieve boolean value, but you can:

  1. use PRAGMA table_info(tbl_status) and analize list.

  2. try to execute SELECT col FROM table_name in try...catch block, in case of error simply set variable to bool.

BTW, maybe you need to use IF NOT EXISTS in create statement for table, index creation...


can be useful for someone - for async connection:

connection.loadSchema();connection.addEventListener(SQLEvent.SCHEMA, check_result);private function check_result(event:SQLEvent):void{var schema:SQLSchemaResult = connection.getSchemaResult();//as above}