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:

INSERT INTO tabla (a, b, c) VALUES
(1, "valami1", "ertek1"),
(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.
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024),
    values = [[1, "valami1", "ertek1"], [2, "valami2", "ertek2"]];
db.transaction(function (tx) {
  values.forEach(function (row) {
    tx.executeSql('INSERT INTO tabla (a, b, c) VALUES (?, ?, ?)', row);
  });
});
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...)