гибкое мобильное соединение с базой данных sqlite через представления - PullRequest
1 голос
/ 22 октября 2011

Я относительно новичок в гибкой мобильной среде. Я использую sqlite во flex mobile.

У меня есть базовое приложение с экраном приветствия и регистрацией.

На экране приветствия таблицы создаются, если их нет в локальной базе данных (sqlite)

на экране приветствия

<s:creationComplete>
  dbFile = File.applicationStorageDirectory.resolvePath("testDB.db");
  conn = new SQLConnection();
  conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
  conn.addEventListener(SQLEvent.OPEN, openHandler);
  conn.openAsync(dbFile);
</s:creationComplete>

in scripts
    public var conn:SQLConnection;
    private var insertUser:SQLStatement;
    private var createUsersTable:SQLStatement = new SQLStatement();
    private var getUser:SQLStatement = new SQLStatement();
    public var dbFile:File;
    private function openHandler(event:SQLEvent):void {
        conn.removeEventListener(SQLEvent.OPEN, openHandler);
        conn.addEventListener(SQLEvent.BEGIN, beginHandler);
        conn.begin();
    }
    private function beginHandler(event:SQLEvent):void {
        conn.removeEventListener(SQLEvent.BEGIN, beginHandler);
        createUsersTable.sqlConnection = conn;
        createUsersTable.text ="CREATE TABLE IF NOT EXISTS users(first_name varchar(100),email VARCHAR(100))";
        createUsersTable.execute();
    }

Вышеописанное работает отлично, и таблицы созданы.

На экране регистрации мне нужно снова инициализировать переменные db, как в s: creationComplete на экране приветствия.

Это ошибка, которую я получаю, если не повторяю и пытаюсь получить доступ к conn (переменная для SQLConnection)

TypeError: Ошибка # 1009: невозможно получить доступ к свойству или методу с нулевым значением ссылка на объект.

Но в будущем у меня будет около 30 таких экранов, поэтому я должен буду повторить код для всех экранов в их s: creationComplete?

Наконец, я хотел бы легко открыть соединение db на других экранах и выполнить свои операции sqlite.

Пожалуйста, поправьте меня, если я ошибаюсь, или предложите лучшие способы, если таковые имеются. Большое спасибо

1 Ответ

0 голосов
/ 06 мая 2012

Я только что опубликовал ответ на это сегодня, и он может помочь вам
Как получить представление для чтения данных

Я не уверен, насколько вы знакомы с программированием в целом, но из того, что вы опубликовали выше, вы сможете выяснить, что происходит, и подобрать несколько лучших практик (если вы еще не знаете, их =)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...