Das DBUtils Codemodul hilft SQLite Datenbanken in Ihre Programme einzubinden.
Es enthält eine Reihe von Methoden für gängige SQL Aufgaben. Themen wie 'escaping strings' und 'identifiers' werden automatisch bearbeitet.
Das DBUtils Codemodul ist in dem beigefügten Beispiel-Projekt enthalten.
Ab Version 1.07 sind folgende Methoden enthalten:
- CopyDBFromAssets: Kopiert eine Datenbank die im APK 'Package' gespeichert ist (im IDE Files Tab hinzugefügt) an eine schreibbare Speicherstelle. Kopiert aber nur wenn die Datenbank noch nicht an dieser Stelle existiert.
- CreateTable: Erzeugt eine SQL Tabelle mit gegebenen Feldern und Typen. Setzt auch 'primary key' (optional).
- DropTable: Löscht eine Tabelle.
- InsertMaps: Fügt effizient Einträge in die Tabelle hinzu. Die Daten werden einem List Objekt übergeben das Map Objekte als Einträge enthält.
Beispiel:
- UpdateRecord: Ändert einen existierenden Datensatz. Erlaubt einen Feldnamen mit dem neuen Wert und einem Map Objekt mit den 'where' Feldern.
Beispiel:
- ExecuteMemoryTable: Führt eine SELECT Abfrage durch und liest all Einträge in ein List Objekt. Jeder Eintrag in List ist ein Array von Strings das den Werten eines Eintrages entspricht.
- ExecuteMap: Führt eine SELECT Abfrage durch und gibt den ersten Eintrag zurück der in einem Map Objekt gespeichert ist. Die Spaltennamen sind die Schlüsselworte (keys) und die Werte sind die Map-Werte.
- ExecuteSpinner: Führt eine SELECT Abfrage durch und füllt ein Spinner Objekt (ComboBox) mit den Werten der ersten Spalte.
- ExecuteListView: Führt eine SELECT Abfrage durch und füllt ein ListView Objekt mit den Werten der ersten Spalte und optional mit den Werten der zweiten Spalte.
- ExecuteJSON: Führt eine SELECT Abfrage durch und gibt ein Map Objekt zurück das man an den JSONGenerator übergeben kann zur Erstellung eines JSON Textes.
Beispiel:
Siehe das beigefügte Beispiel und das DBUtils Codemodul für mehr Informationen über jede Methode.
- ExecuteHtml: Erstell eine gut aussehende html Tabelle mit den Resultaten. Sie können diese dann in einem WebView Objekt anzeigen. Diese Methode ist sehr hilfreich für die Entwicklung da man die Daten sieht aber auch für Berichte.
Sie können das Aussehen der Tabelle mit der Variable CSS ändern.
Neu: Der letzte Parameter definiert ob die Werte klickbar sind oder nicht.
Falls die Werte klickbar sind dann müssen Sie das WebView_OverrideUrl Event abfangen um die gewählte Zelle zu finden.
- GetDBVersion / SetDBVersion: Holt die Datenbank Version zurück oder setzt sie. Der Wert ist in einer separaten Tabelle 'DBVersion' gespeichert. Das ist hilfreich für die Verwaltung existierender Datenbanken.
Dieses Feature wurde von corwin42 hinzu gefügt. Besten Dank!
Über das Beispiel. In dem Beispiel erstellen wir zwei Tabellen: Students (Studenten) und Grades (Noten). Die 'Students' Tabelle enthält die Liste aller Studenten.
Die 'Grades' Tabelle enthält, für jeden Studenten, die Noten für jeden Test.
Die Aufrufe ExportToJSON oder ShowTableInWebView aktivieren um diese Features zu Veranschaulichen.
Um die Tabelle zu verbergen müssen Sie in Activity_Create den Aufruf auf ShowTableInWebView auskommentieren.
Beigefügte Dateien:
DBUtils.zip
Es enthält eine Reihe von Methoden für gängige SQL Aufgaben. Themen wie 'escaping strings' und 'identifiers' werden automatisch bearbeitet.
Das DBUtils Codemodul ist in dem beigefügten Beispiel-Projekt enthalten.
Ab Version 1.07 sind folgende Methoden enthalten:
- CopyDBFromAssets: Kopiert eine Datenbank die im APK 'Package' gespeichert ist (im IDE Files Tab hinzugefügt) an eine schreibbare Speicherstelle. Kopiert aber nur wenn die Datenbank noch nicht an dieser Stelle existiert.
- CreateTable: Erzeugt eine SQL Tabelle mit gegebenen Feldern und Typen. Setzt auch 'primary key' (optional).
- DropTable: Löscht eine Tabelle.
- InsertMaps: Fügt effizient Einträge in die Tabelle hinzu. Die Daten werden einem List Objekt übergeben das Map Objekte als Einträge enthält.
Beispiel:
B4X:
Dim ListOfMaps As List
ListOfMaps.Initialize
For i = 1 To 40
Dim m As Map
m.Initialize
m.Put("Id", Id)
m.Put("First Name", "John")
m.Put("Last Name", "Smith" & i)
ListOfMaps.Add(m)
Next
DBUtils.InsertMaps(SQL, "Students", ListOfMaps)
Beispiel:
B4X:
Dim WhereFields As Map
WhereFields.Initialize
WhereFields.Put("id", "1234")
WhereFields.Put("test", "test #5")
DBUtils.UpdateRecord(SQL, "Grades", "Grade", 100, WhereFields)
- ExecuteMap: Führt eine SELECT Abfrage durch und gibt den ersten Eintrag zurück der in einem Map Objekt gespeichert ist. Die Spaltennamen sind die Schlüsselworte (keys) und die Werte sind die Map-Werte.
- ExecuteSpinner: Führt eine SELECT Abfrage durch und füllt ein Spinner Objekt (ComboBox) mit den Werten der ersten Spalte.
- ExecuteListView: Führt eine SELECT Abfrage durch und füllt ein ListView Objekt mit den Werten der ersten Spalte und optional mit den Werten der zweiten Spalte.
- ExecuteJSON: Führt eine SELECT Abfrage durch und gibt ein Map Objekt zurück das man an den JSONGenerator übergeben kann zur Erstellung eines JSON Textes.
Beispiel:
B4X:
Dim gen As JSONGenerator 'Requires a reference to the JSON library.
gen.Initialize(DBUtils.ExecuteJSON(SQL, "SELECT Id, [Last Name], Birthday FROM Students", Null, _
0, Array As String(DBUtils.DB_TEXT, DBUtils.DB_TEXT, DBUtils.DB_INTEGER)))
Dim JSONString As String
JSONString = gen.ToPrettyString(4)
- ExecuteHtml: Erstell eine gut aussehende html Tabelle mit den Resultaten. Sie können diese dann in einem WebView Objekt anzeigen. Diese Methode ist sehr hilfreich für die Entwicklung da man die Daten sieht aber auch für Berichte.
Sie können das Aussehen der Tabelle mit der Variable CSS ändern.
Neu: Der letzte Parameter definiert ob die Werte klickbar sind oder nicht.
Falls die Werte klickbar sind dann müssen Sie das WebView_OverrideUrl Event abfangen um die gewählte Zelle zu finden.
- GetDBVersion / SetDBVersion: Holt die Datenbank Version zurück oder setzt sie. Der Wert ist in einer separaten Tabelle 'DBVersion' gespeichert. Das ist hilfreich für die Verwaltung existierender Datenbanken.
Dieses Feature wurde von corwin42 hinzu gefügt. Besten Dank!
Über das Beispiel. In dem Beispiel erstellen wir zwei Tabellen: Students (Studenten) und Grades (Noten). Die 'Students' Tabelle enthält die Liste aller Studenten.
Die 'Grades' Tabelle enthält, für jeden Studenten, die Noten für jeden Test.
Die Aufrufe ExportToJSON oder ShowTableInWebView aktivieren um diese Features zu Veranschaulichen.
Um die Tabelle zu verbergen müssen Sie in Activity_Create den Aufruf auf ShowTableInWebView auskommentieren.
Beigefügte Dateien: