2011-12-16 29 views
0

私のアプリケーションでphonegap(1.2)のSQLite関数を使用しています。アプリケーションを終了して再起動した後、以前データベースに保存したすべてのデータはなくなりました。どのようにデータを失うのを防ぎ、アプリケーションはどこにデバイス(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

これは決して起こらないはずです。使用しているOSとバージョンは何ですか? –

+0

Android 2.3.3およびiPhone 4.3 Phonegap 1.2。 – Konobi

答えて

1

をあなたは問題があなたのアプリケーションを閉じた後、データベースがドロップされたことであることを確認しなければなりません。あなたが挿入したデータがデータベースに取り込まれていないということだけです。あなたが渡したコードでは推測できますが、もし私があなただったら、実際にデータベースに実際にアクセスするために挿入した直後にデータベースからデータを読み取るトランザクションを実行します。

0

問題は、プライマリキーの値を渡さないことです。

テーブルにはプライマリキーとしてのIDがあり、そのためにヌルにすることはできません。唯一の例外は、IDを 'AUTOINCREMENT'として宣言する場合です。この場合、プライマリキーの値を渡さないと、データベースはその目的のために作成されたシーケンステーブルから次に使用可能な値を割り当てます。

希望はこのことができます:https://www.sqlite.org/autoinc.html

乾杯を!

関連する問題