ugrás a tartalomhoz

Hogy lehet javascripten keresztül több INSERT parancsot lefuttatni SQLite adatbázison?

jeti · 2012. Feb. 11. (Szo), 12.22
Sziasztok!

Van egy adattáblám. Amihez szeretnék adatot hozzáadni, a következő módon:
  1. INSERT INTO tabla (a, b, c) VALUES  
  2. (1, "valami1""ertek1"),  
  3. (2, "valami2""ertek2");  
Ez így nem működik, csak úgy ha egy tranzakcióban csak egy sor értékét adom hozzá, aztán egy másik tranzakcióban a következő sor értékét.
Operát használok és a kódom ennek az oldalnak a forráskódján alapul.

Hogy lehet javascripten keresztül több INSERT parancsot lefuttatni SQLite adatbázison?
Ha nem megoldható, akkor a (jelenleg több száz) parancsot felbontom, külön tranzakciókra. De mielőtt megírnám, kiváncsi vagyok, hogy tudtok-e valamilyen más megoldást.
 
1

SQLite

Poetro · 2012. Feb. 11. (Szo), 13.30
Legegyszerűbb, ha megnézed az SQLite dokumentációt. De szerintem maradjunk abban, hogy egy tranzakcióban végrehajtasz annyi executeSql-t, amennyi sort be szeretnél szúrni.
  1. var db = openDatabase('mydb''1.0''my first database', 2 * 1024 * 1024),  
  2.     values = [[1, "valami1""ertek1"], [2, "valami2""ertek2"]];  
  3. db.transaction(function (tx) {  
  4.   values.forEach(function (row) {  
  5.     tx.executeSql('INSERT INTO tabla (a, b, c) VALUES (?, ?, ?)', row);  
  6.   });  
  7. });  
2

Körülményes, exportálás és importálás

jeti · 2012. Feb. 11. (Szo), 14.13
Bocsánat, rosszul fogalmaztam. Mysql-ben simán hozzá tudok adni több adatot egyetlen mysql_query() használatával az korábban leírt módon. Sok (de nem az összes) adatom Mysql-ből származik, az ottani export sql funkcióval. Akkor ezek szerint itt nem lehet megoldani az sql parancsok lefutatását mindössze egyetlen executeSql()-el?
Tehát, mindenféleképpen be kell olvasnom a fájlt, sorokra szedni, majd tömbbe pakolni, végül a tömbszámnak megfelelő executeSql()-t lefuttatni. Ez így elég körülményes, van ennél egyszerűbb megoldás?

Ha az exportálást és importálást szeretném megoldani, akkor ezek szerint ne használjak sql formátumot?
3

Szkript

Poetro · 2012. Feb. 11. (Szo), 14.20
Írsz rá egy szkriptet a kedvenc nyelvedben, ami átalakítja a MySQL-ből exportált adatokat.
Akkor ezek szerint itt nem lehet megoldani az sql parancsok lefutatását mindössze egyetlen executeSql()-el?

Ha elolvastad volna az SQLite dokumentációját, amit linkeltem(!!!), akkor láthatod, mi a helyzet.
4

Köszönöm a segítségedet, majd

jeti · 2012. Feb. 11. (Szo), 14.56
Köszönöm a segítségedet, majd írok szkriptet rá. Akkor lehet, hogy xml-be kell majd exportálnom és importálnom inkább az adatokat.

(Néztem a linket, de sajnos nem értem a dokumentációt és a Google fordító sem tette érhetőbbé. Majd fejlesztem az angol tudásomat...)