Offline online sein mit Google Gears

Teil 4: [Workshop] Google Gears: Dynamische Inhalte offline zur Verfügung stellen

11.12.2009 von Redaktion pcmagazin und Andreas Hitzig

ca. 2:15 Min
Ratgeber
  1. [Workshop] Google Gears: Dynamische Inhalte offline zur Verfügung stellen
  2. Teil 2: [Workshop] Google Gears: Dynamische Inhalte offline zur Verfügung stellen
  3. Teil 3: [Workshop] Google Gears: Dynamische Inhalte offline zur Verfügung stellen
  4. Teil 4: [Workshop] Google Gears: Dynamische Inhalte offline zur Verfügung stellen

Sie können verschiedene Begriffe auch mit einer logischen Verknüpfung versehen, wobei UND der Standardoperator ist und weggelassen wird. Der String schubidu lalala sucht nach allen Datensätzen, in denen die beiden Begriffe gleichzeitig auftauchen, schubidu OR lalala begnügt sich auch mit einem der beiden. Mit einem Minuszeichen schließen Sie einen Begriff explizit aus, das Asterisk-Zeichen dient als Platzhalter für ein oder mehrere Zeichen.

Google Gears
SQLite 3 unterstützt Sie bei der Administration Ihrer Datenbank.
© Archiv

Weitere Informationen zum Syntax finden Sie online unter . Es handelt sich dabei um die Website von fts1, da sich an der Bedienung der Erweiterung nichts geändert hat im Vergleich zur ersten Version.

Damit Sie bei größeren Tabellen ein wenig an Performance gewinnen, benötigen Sie eine zusätzliche Standardtabelle, welche die zu indizierende Spalte enthält und Ihre fts2-Tabelle. Die beiden Tabellen werden in der Abfrage über einen Inner Join miteinander verbunden. Wenn Sie also die Spalte text1 indizieren möchten, generieren Sie sich eine weitere Tabelle und fügen Sie dieser optional weitere Spalten hinzu.

db.execute('CREATE TABLE meine_tab2
(text1 TEXT PRIMARY KEY, text3 INTEGER)');

Die beiden Tabellen verknüpfen Sie anschließend in einer SQL-Abfrage:

var rs = db.execute('SELECT
meine_tab.rowid FROM meine_tab, meine_tab2 ' + ' WHERE meine_tab.rowid = meine_tab2.rowid AND meine_tab2.text3 > ? AND meine_tab MATCH ?', ['schubi', 'doooo']);

Wie das Beispiel zeigt, wird zur Verknüpfung die rowid der beiden Tabellen verwendet. Für die Abfrage können Sie anschließend sowohl Argumente aus der Tabelle meine_tab als auch aus der indizierten Tabelle meine_tab2 verwenden.

Datenbankmanipulationen müssen in beiden Tabellen synchron gehalten werden, da Sie ansonsten nicht mehr über die rowid auf die Datensätze zugreifen können. Verwenden Sie deswegen eine Transaktion, um die Datenmanipulation zu kapseln und sicherzustellen, dass beide Tabellen konsistent geändert werden.

db.execute('BEGIN');
... Zugriff auf meine_tab ...
... Änderungen auf meine_tab1 ...
db.execute('COMMIT');

HTML-Seite

Jetzt können Sie Ihren Usern die Datenbank zur eigenen Suche anbieten. Dazu müssen Sie nur noch die Eingabe nach vorne in den Browser verlagern. Im Beispiel wird der Nachname eines Rennfahrers abgefragt und dazu der Rennstall ausgegeben. Dazu werden die Beispieltabellen verwendet.

<form><input type="text"
name="fahrer" id="fahrer"><input type="button" value="OK"
onclick="gears_suche()"></form>

Die HTML-Abfrage ist einfach gehalten und wird über eine Form und ein Eingabefeld mit der ID fahrer realisiert.

Die Funktion gears_suche() enthält im Wesentlichen die Bestandteile aus dem zweiten Beispiel, angereichert um eine dynamisch generierte Abfrage der Datenbank auf Basis der Eingabe.

function gears_suche () {
var s_name = document.
getElementById("fahrer").value;
if ( s_name != "" ) {
var db = google.gears.factory.
create('beta.database');
db.open('im_test');
var rs=db.execute('select * from
f1_fahrer where f_nachname like"' + s_name + '"');
}
while (rs.isValidRow()) {
document.writeln("Name des
Fahrers: ", rs.fieldByName("f_vorname"), " ", rs.fieldByName("f_nachname"), " Rennstall: ", rs.fieldByName("name"), "<br>");
rs.next();
}
rs.close();
}

Zum Abschluss wird die Ergebnismenge durchlaufen und die Daten werden auf dem Bildschirm ausgegeben.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.

Online-Urheberrecht: Unser Ratgeber bietet Tipps für das Cloud-Recht.

Online-Recht in der Cloud

Wie sieht das Urheberrecht in der Wolke aus?

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…

Logistik im E-Commerce: Prozesse rund um die Logistik.

E-Commerce-Logistik

Logistik im E-Commerce

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.