tx.executeSql('DROP TABLE IF EXISTS DEMO');
Cette ligne ci-dessus supprime la table nommée DEMO chaque fois que vous démarrez votre application mobile PhoneGap
Et je voulais juste vous dire que j'adore votre code. Il donne un très bon indice sur "ce qu'il faut faire" pour l'application PhoneGap ou Cordova de n'importe qui. Cela aidera grandement tous ceux qui entrent dans le monde de SQLite pour la première fois.
Votre code est très propre à lire et à comprendre par rapport aux codes écrits sur le site officiel du plugin Cordova/PhoneGap SQLite sur GitHub.
Mon ami, qui travaille également en tant que CTO d'une entreprise et qui a beaucoup d'expérience avec SQLite, m'a dit qu'il n'est pas nécessaire de fermer manuellement une connexion à la base de données SQLite, et a également fortement recommandé SQLite.
Et pour tous ceux qui recherchent des informations sur SQLite pour PhoneGap/Cordova -
Supposons que vous ayez une table nommée mytable et que vous souhaitiez stocker les valeurs "beautiful" et "dolphin"
Lorsque vous souhaitez effectuer une opération sur le SQLite d'un appareil mobile, comme une tablette ou un téléphone, n'oubliez pas de l'appeler ainsi
Avoir ce qui suit dans votre code source
function insertNewLine(tx)
{
tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
}
et stockez "beautiful" à l'intérieur de var1 et "dolphin" à l'intérieur de var2 et
faites l'instruction suivante afin d'exécuter l'instruction d'insertion SQL, puis enregistrez à l'intérieur de l'appareil.
db.transaction(insertNewLine);
Ne pas appeler directement insertNewLine(tx)
Ne pas appeler directement tx.executeSql( /* SQL INSERT STATEMENT */ ); dans votre code source JavaScript
Et ne le faites pas incluez les valeurs directement dans l'instruction de requête SQL, puis exécutez l'instruction SQL qui inclut les valeurs que vous souhaitez stocker dans la base de données.
En d'autres termes, ce qui suit est incorrect
tx.executeSql('INSERT INTO mytable (word, meaning) values (beautiful, dolphin)');
Ce qui précède est incorrect car les valeurs que vous souhaitez stocker, "beautiful" et "dolphin" sont incluses dans l'instruction SQL. Ils devraient être séparés.
Ce qui suit est la bonne façon d'exécuter le SQL INSERT
tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
// Notice that the values you want to store, beautiful and dolphin
// are separate from the SQL INSERT INTO statement
puis effectuez l'intégralité de la transaction de base de données en incluant ce qui suit dans votre code JavaScript
db.transaction(insertNewLine);
pas le code ci-dessous
tx.executeSql("INSERT....."); // this will not save your values onto the device
pas le code ci-dessous non plus
insertNewLine(tx); // this will not save your values onto the device either.
Et pour utiliser l'instruction SQL SELECT, ayez le code suivant
// Get all lines in the table
//
function viewthelastglory(tx)
{
tx.executeSql( 'SELECT * FROM CUSTOMTABLE', [], querySuccess, errorcode );
}
// Deal with the lines
//
function querySuccess(tx, results)
{
var len = results.rows.length; var queryresult = "all entries ";
for (var i = 0 ; i < len ; i++)
{
queryresult = queryresult +
" Row - " + i +
" Word - " + results.rows.item(i).word +
" Meaning - " + results.rows.item(i).meaning;
}
// and now, you can use the queryresult variable to use the values
}
function errorcode(errorhaha)
{
alert("Error Code " + errorhaha.code + " Error Message " + errorhaha.message);
}
Et ensuite, effectuez la transaction de base de données
db.transaction(viewthelastglory);
Si vous essayez d'en choisir un parmi SQLite, WebSQL et IndexedDB, n'oubliez pas que j'ai cherché autour de stackoverflow pendant un certain temps et j'ai appris que
- Personne n'aime IndexedDB en raison de sa complexité
- IndexedDB est incompatible avec de nombreux types et versions d'OS mobiles
- WebSQL est obsolète par le W3C
- WebSQL renvoie 673 000 résultats, mais SQLite renvoie 1 800 000 résultats. IndexedDB renvoie 300 000 résultats sur Google
- Parmi IndexedDB, SQLite et WebSQL, SQLite est le seul à disposer d'un site Web officiel.
La commande suivante en ligne de commande lorsque vous êtes dans le répertoire de votre projet Cordova installera le plugin SQLite dans votre projet Cordova
cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin