![]() |
SQLite - не могу подключить к Air
Создана база данных, делаю все как в примере
Создал простейшую базу данных для эксперимента. Код AS3:
openSuccess selectError Скажите, плиз, откуда взяться ошибке? Добавлено через 1 час 44 минуты Да, собственно ошибка: selectError SQLError: 'Error #3115: SQL Error.', details:'no such table: 'nnn'', operation:'execute', detailID:'2013' Но эта таблица в базе данных есть. Перепробовал несколько готовых файлов баз, создавал свои простейшие - ошибка со всеми одна и та же:((( |
Если таблица есть - заключать её в тильды. Так же заключать в тильды названия полей:
Код AS1/AS2:
Код AS3:
Кстати, очень хочу написать серию статей по SQLITE в AIR. Будет кому интересно - начну писать. |
DaFive, спасибо, но если бы все так просто решалось... Тильды не помогли. Ошибка прежняя - нет таблицы.
Статьи по SQLite конечно актуальны, пиши обязательно. |
Тогда другой вопрос. Точно ли база ccc.sqlite лежит в applicationStorageDirectory с теми таблицами, которые ты создавал? Потому что в случае с ошибкой в путях - эйр создаст пустую базу ccc.sqlite.
Или выполни запрос после коннекта: Код AS3:
Или попробуй создай базу, скажем в userDirectory/test/ вручную, через sqlite expert personal (советую скачать, бесплатна и очень помогает). Да, и поскольку коннект к базе асинхронный - дожидайся завершения 1 запроса по евенту, а потом запускай следующий. А вообще - лучше сделай для начала синхронный коннект к базе. |
Цитата:
Цитата:
Цитата:
Цитата:
Добавлено через 1 минуту Я смотрю проблема не только у меня. Поиск в гуле выдает, что проблема у многих, но самое интересное, что нигде нет решения. |
Цитата:
Проверь существование файла через File.applicationStorageDirectory.resolvePath("ccc.sqlite").exists. И я не уверен что applicationStorageDirectory - это bin-debug. В Винде, она вроде как в юзерской папке находится. Добавлено через 8 минут Ну да, так и есть: http://blog.usu.edu/flexing/2008/09/...oss-platforms/ |
Ну так у меня bin-debug и находится в юзерской папке
Код AS3:
Добавлено через 3 минуты Да и вообще, как приложение может не найти путь к базе данных, если у меня слушатель открывает openSuccess только в случае успешного соединения к базе? А это всегда успешно происходит. Добавлено через 7 минут Может Air как-то кэширует базы данных? |
Да не кеширует. Оно всегда будет успешно отрабатывать коннект, потому что нет проверки на существование файла. Оно его создаст или приконнектится к существующему, в случае если файл не создан. Приложение не сможет создать БД в случае, если путь будет в папку, доступ к которой запрещен. Тогда и вывалится ошибка.
Протрейсить можно еще путь: File.applicationStorageDirectory.nativePath. Что выведет? |
Цитата:
Вывело "C:\Users\Astraport2011\AppData\Roaming\diary\Local Store" |
Ну вот. Там есть что-нибудь?
|
| Часовой пояс GMT +4, время: 09:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.