HTML and CSS Reference
In-Depth Information
2.7.9 Datenbank-Queries
Wir haben in den vorangegangenen Beispielen bereits oft davon gesprochen, dass die UI
aktualisiert wird. In diesem Beispiel bedeutet das, dass sämtliche Notizen sortiert nach
Datum aus der Datenbank geholt und angezeigt werden müssen. Schauen wir uns also
dieses
SELECT
-Statement genauer an und werfen wir auch einen Blick darauf, wie das
SQLResult
-Objekt die Daten unserer Abfrage enthält:
var statementErrorCallback ...
db.transaction(function(t){
t.executeSql('SELECT * FROM notes ORDER BY date DESC;', null,
function(transaction, resultSet){
var i, row, id, note, date;
for (i 0; i < resultSet.rows.length; i++)
{
row resultSet.rows.item(i);
id row.id;
note row.note;
date row.date;
//create HTML and update UI
}
}, statementErrorCallback);
});
Zunächst wird folgendes
SELECT
-Statement ausgeführt, wodurch alle Zeilen der
notes
-
Tabelle für unser Ergebnis selektiert werden:
SELECT * FROM notes ORDER BY date DESC;
Da wir keine Platzhalter verwenden, muss auch kein zweiter Parameter mit den Erset-
zungen angegeben werden. Der zweite Parameter ist also somit null.
Spannend ist nun das
statementSuccessCallback
, da wir für das
SQLResultSet
-
Objekt zum ersten Mal die Daten unserer Abfrage erwarten können. Das
SQLResultSet
-
Objekt wird wie folgt definiert:
interface SQLResultSet {
readonly attribute long insertId;
readonly attribute long rowsAffected;
readonly attribute SQLResultSetRowList rows;
};
interface SQLResultSetRowList {
readonly attribute unsigned long length;
getter any item(in unsigned long index);
};
Das Attribut
rows
zeigt auf ein weiteres Objekt vom Typ
SQLResultSetRowList
. Dies
ist das eigentliche Objekt, das unsere Daten enthält. Da das Ergebnis einer SQL-Data-