2011-12-16 2 views
0

Я использую функцию SQLite из phonegap (1.2) в своем приложении, а после выхода из приложения и перезапуска его все данные, которые я ранее хранил в базе данных, исчезли. как я могу предотвратить потерю данных и где приложение хранится на устройстве (Android, iPhone).Отключить базу данных Phonegap после выхода из приложения

Создать таблицу:

function favouritesInit(transaction){ 
    transaction.executeSql('CREATE TABLE IF NOT EXISTS FAVOURITES (id INTEGER PRIMARY KEY, lat, ln, title, cont)'); 
} 

Вставка:

var statement = 'INSERT INTO FAVOURITES (lat, ln, title, cont) values('+the_fav.getPosition().lat()+', '+the_fav.getPosition().lng()+', '+the_fav.getTitle()+', '+content+')'; 
    transaction.executeSql(statement); 

благодаря

+0

Этого никогда не должно быть. Какую ОС и версию вы используете? –

+0

Android 2.3.3 и iPhone 4.3. Телефонная связь 1.2. – Konobi

ответ

1

Вы должны убедиться, что проблема заключается в том, что база данных удаляется после закрытия приложения. Мне кажется, что данные не попадают в базу данных с вашей вставкой. С этим кодом, который вы передали, я могу только догадываться, но если бы я был вами, я бы запустил транзакцию для чтения данных из базы данных сразу после ее вставки, чтобы убедиться, что она действительно пробивается к базе данных.

0

Проблема в том, что вы не передаете значение для первичного ключа.

Ваша таблица имеет идентификатор как первичный ключ, и из-за этого он не может быть пустым. Единственным исключением является объявление идентификатора как «AUTOINCREMENT»: в этом случае, если вы не передадите значение первичного ключа, база данных назначит следующее доступное значение из таблицы последовательностей, созданной для этой цели.

Надеется, что это помогает: https://www.sqlite.org/autoinc.html

Ура!