sql >> Databáze >  >> RDS >> SQLite

Ukládání databáze SQLite pomocí Android a Phonegap

tx.executeSql('DROP TABLE IF EXISTS DEMO');

Tento řádek výše smaže tabulku s názvem DEMO pokaždé, když spustíte mobilní aplikaci PhoneGap

A jen jsem vám chtěl říct, že miluji váš kód. Poskytuje velmi dobrou představu o tom, „co dělat“ pro aplikaci PhoneGap nebo Cordova. Výrazně pomůže každému, kdo vstupuje do světa SQLite poprvé.

Váš kód je velmi čistý na čtení a porozumění ve srovnání s kódy napsanými na oficiálních stránkách pluginu Cordova/PhoneGap SQLite na GitHubu.

Můj přítel, který také pracuje jako CTO jedné společnosti a má bohaté zkušenosti s SQLite, mi řekl, že není nutné ručně zavírat připojení k databázi SQLite, a také velmi doporučil SQLite.

A pro každého, kdo hledá SQLite pro informace PhoneGap/Cordova -

Řekněme, že máte tabulku s názvem mytable a chcete uložit hodnoty „beautiful“ a „delphin“

Když chcete provést operaci na SQLite mobilního zařízení, jako je tablet nebo telefon, nezapomeňte to nazvat tímto způsobem

Ve zdrojovém kódu mějte následující

function insertNewLine(tx) 
{
   tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
}

a uložte "krásný" do var1 a "delfín" do var2 a

proveďte následující příkaz, abyste provedli příkaz SQL insert a poté jej uložili do zařízení.

db.transaction(insertNewLine);   

Ne přímo zavolejte insertNewLine(tx)

Ne přímo zavolejte tx.executeSql( /* SQL INSERT STATEMENT */ ); ve zdrojovém kódu JavaScript

A ne zahrňte hodnoty přímo do příkazu SQL dotazu a poté spusťte příkaz SQL obsahující hodnoty, které chcete uložit do databáze.

Jinými slovy, následující text je nesprávný

tx.executeSql('INSERT INTO mytable (word, meaning) values (beautiful, dolphin)');

Výše uvedené je nesprávné, protože hodnoty, které chcete uložit, „krásný“ a „delfín“ jsou součástí příkazu SQL. Měli by být odděleni.

Následuje správný způsob, jak spustit INSERT SQL

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

a poté proveďte celou transakci databáze zahrnutím následujícího do kódu JavaScript

db.transaction(insertNewLine);

nikoli níže uvedený kód

tx.executeSql("INSERT....."); // this will not save your values onto the device

ani kód níže

insertNewLine(tx); // this will not save your values onto the device either.  

A chcete-li použít příkaz SELECT SQL, použijte následující kód

// 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);
}

A poté proveďte transakci databáze

db.transaction(viewthelastglory);

Pokud se pokoušíte vybrat jeden z SQLite, WebSQL a IndexedDB, nezapomeňte, že jsem chvíli hledal v stackoverflow a zjistil jsem, že

  • Nikdo nemá rád IndexedDB kvůli jeho složitosti
  • IndexedDB je nekompatibilní s mnoha typy a verzemi mobilních OS
  • W3C již nepodporuje WebSQL
  • WebSQL vrací 673 000 výsledků, ale SQLite vrací 1800 000 výsledků. IndexedDB vrací 300 000 výsledků na Googlu
  • Mezi IndexedDB, SQLite a WebSQL je SQLite jediný s oficiálními webovými stránkami.

Následující příkaz na příkazovém řádku, když jste v adresáři vašeho projektu Cordova, nainstaluje plugin SQLite do vašeho projektu Cordova

cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin


  1. Máte problémy s padáním MS Access? Nejprve vyzkoušejte tato řešení

  2. COALESCE Funkce v TSQL

  3. Ovládací prvek ListView Události řazení přetažením

  4. Jak vyhodnotit výraz v příkazu select v Postgresu