AIR и sqLite: если таблица существует условно - PullRequest
3 голосов
/ 05 января 2011

Как получить логическое значение в AS3 независимо от того, существует ли таблица или запись в базе данных?

Ответы [ 3 ]

10 голосов
/ 02 июня 2011

В отличие от поиска его вручную с помощью SQL, вы должны использовать встроенные информационные классы / функции Schema.Вот пример того, как это будет работать.

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;
}
2 голосов
/ 05 января 2011

Нет простого оператора для получения логического значения, но вы можете:

  1. использовать PRAGMA table_info(tbl_status) и анализировать список.

  2. попробоватьчтобы выполнить SELECT col FROM table_name в блоке try ... catch, в случае ошибки просто установите переменную в значение bool.

Кстати, возможно, вам нужно использовать IF NOT EXISTS в операторе создания для таблицы, создание индекса ...

1 голос
/ 19 июня 2014

кому-то может пригодиться - для асинхронного подключения:

connection.loadSchema();
connection.addEventListener(SQLEvent.SCHEMA, check_result);

private function check_result(event:SQLEvent):void{
var schema:SQLSchemaResult = connection.getSchemaResult();
//as above
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...