SQLite Adapter - Import, Export, Update und Delete
Mit dem SQLite Adapter können Daten aus/in SQLite Datenbanken importiert, exportiert oder auch aktualisiert (update) werden. Der SQLite Adapter unterstützt unter anderem auch das Anlegen von neuen SQLite Datenbank (Dateien) und Tabellen, sowie ist es mit dem SQLite Adapter möglich bestehende Tabellen um weitere Felder zu erweitern. Das Ändern von bestehenden Tabellenfeldern wird nicht unterstützt!
Hinweis: Es wird die SQLite Version 3 unterstützt.
Reiter Allgemein
Hier tragen Sie den Pfad (absolut oder relativ) zur SQLite Datenbank ein. Wurde die SQLite Datenbank über ein Passwort geschützt können Sie dies optional mit angeben. Soll das Passwort gespeichert werden, müssen Sie die Option Save Passwort aktivieren. Hinweis: Das Passwort wird verschlüsselt in der Definitionsdatei abgespeichert.
Datenbank anlegen falls nicht existiert: Wenn Sie diese Option aktivieren wird, falls die SQLite Datenbank im angegebenen Verzeichnis nicht existiert, eine neue (leere) SQLite Datenbank angelegt.
Tabelle anlegen falls nicht existiert: Hiermit weisen Sie den SQLite Adapter an die Tabelle neu zu erzeugen falls die Tabelle in der angegebenen SQLite noch nicht vorhanden ist. Hinweis: Wenn Sie diese Option aktivieren müssen Sie auf dem Reiter "Felder / Datentypen" manuell einen Tabellennamen eingeben!
Fehlende Felder automatisch an Tabelle anfügen: Ist diese Option aktiviert wird das SQLite Tabellenschema an die Feldauflistung des SQLite Adapters angepasst. Hinweis: Es werden keine Felder gelöscht oder bereits vorhandenen Felder geändert (z.B. Datentypen), es werden lediglich fehlende Tabellenfelder hinzugefügt!
Wird der Adapter im FlowHeater auf der WRITE Seite (rechten Seite) verwendet, können Sie im unteren Teil noch Angaben vornehmen welche Aktionen während des Imports (Insert/Update) der SQLite Adapter vornehmen soll.
Allgemein
Daten anfügen (Insert): Ist diese Option aktiv, werden Insert SQL Statements generiert
Vorhandene Datensätze ignorieren: Hiermit werden beim Import, bereits vorhandene Datensätze in der Tabelle ignoriert!
Tabelle vor dem Import leeren: Hiermit teilen Sie dem SQLite Adapter mit, den Inhalt der Tabelle vor dem ausführen der Definition zu leeren bzw. zu löschen.
Daten aktualisieren (Update): Ist diese Option aktiv werden Update SQL Statements generiert. Hinweis: Sind die Optionen Insert und Update beide aktiv, prüft der SQLite Adapter anhand des PrimaryKeys ob für den jeweiligen Datensatz eine Insert oder Update SQL (Skript) Anweisung erzeugt werden muss. Wenn Sie nur Daten hinzufügen wollen, deaktivieren Sie in jedem Fall die Update Option, der Import wird dann wesentlich schneller durchgeführt!
Datensätze löschen (Delete): Hiermit wird versucht anhand der gemachten Schlüssel „Primary Key“ angaben vorhandene Datensätze zu löschen. Hinweis: Diese Option kann nicht zusammen mit den Optionen INSERT oder UPDATE verwendet werden.
Keine Daten ändern oder hinzufügen nur SQL Skript generieren: Hiermit weisen Sie den SQLite Adapter an keine Änderungen auf der Datenbank vorzunehmen, es wird lediglich ein SQL Skript mit den Insert und/oder Update Anweisungen gespeichert. Ist diese Option aktiv müssen Sie weiter unten einen Dateinamen angeben, in dem die generierten SQL Statements gespeichert werden sollen.
SQL Skript generieren: Hiermit weisen Sie den SQLite Adapter an die Änderungen (Insert, Update) als SQL Skript Datei unter den angegebenen Namen bzw. Pfad zu speichern.
Reiter Felder / Datentypen
SQL: Je nachdem auf welcher Seite der Adapter gerade verwendet wird, stehen hier folgende Varianten zur Verfügung:
Auf der READ Seite: hier können Sie aus Tables und Views auswählen. Sie haben zusätzlich die Möglichkeit Komplexe SQL Statements im Textfeld zu erfassen. Tabellenverknüpfungen (Joins) müssen dabei selbst definiert werden. In der zweiten ComboBox werden automatisch die vorhandenen Tabellen bzw. Views aufgelistet, die in der angegeben SQLite Datenbank verfügbar sind.
Auf der WRITE Seite: hier steht nur Tables zur Verfügung. In der zweiten ComboBox werden automatisch die vorhandenen Tabellen der SQLite Datenbank aufgelistet. Wurde die Option "Tabelle anlegen falls nicht existiert" ausgewählt müssen Sie im Textfeld "Tabellenname falls nicht existiert" einen Tabellennamen manuelle eingeben der dann für die neu zu erzeugende Tabelle verwendet wird.
Felder Einlesen: Mit diesem Button werden die Schemainformationen (Feldnamen, Feldgrößen, Datentyp, PrimaryKey, etc.) zu dem oben angegeben SQL Statement aus der Datenbank gelesen. Die Felder werden dann in die links stehende Feldliste eingetragen.
Hinweis: Die Felder können in der Feldliste in beliebiger Reihenfolge angeordnet werden. Nicht benötigte Felder können hier entweder ausgeblendet (nicht angehakt) oder einfach gelöscht werden.
Feldeigenschaften: Hiermit steuern Sie welche Felder der SQLite Adapter als Primary Key Felder interpretieren soll. Die Informationen werden nur auf der Write Seite benötigt. Im Normalfall müssen Sie hier keine Änderungen vornehmen, die Informationen werden beim Einlesen der Schemainformationen bereits richtig eingetragen!
PrimaryKey Felder werden für Updates verwendet um einen evtl. bereits vorhandenen Datensatz zu identifizieren.
Auto Increment Felder werden bei Insert/Updates nicht gesetzt bzw. geändert! Hinweis:: Für SQLite Datenbanken nicht relevant!
Achtung: Wenn Sie hier Änderungen vornehmen, kann es sein, dass beim Update mehr als ein Datensatz geändert wird.
Der Reiter Erweitert
Leerzeichen automatisch am Anfang und Ende des Inhaltes entfernen: Wenn Sie diese Option aktivieren wird auf Felder vom Datentyp String ein Auto Trim von sog. „Whitespace“ Zeichen durchgeführt. Dies bedeutet, das vorkommende Leerzeichen, Tabulatoren und Zeilenumbrüche automatisch am Anfang und Ende einer Zeichenfolge entfernt werden.
Verwende TRUNCATE TABLE (= schneller) anstatt DELETE FROM: Diese Option steht für den SQLite Adapter nicht zur Verfügung!
Connection Timeout: Timeout in Sekunden bis auf den Verbindungsaufbau gewartet wird. Konnte die Verbindung in dieser Zeitspanne nicht aufgebaut werden wird der Import/Export Vorgang abgerochen.
Command Timeout: Timeout in Sekunden die auf die Ausführung eines SQL Befehl gewartet wird. Mit dem Wert 0 können Sie diesen Timeout deaktivieren. In dem Fall wird dann unendlich auf die Ausführung des SQL Befehls gewartet. Diese Option ist Interessant wenn Sie für den Export auf der READ Seite große Datenmengen abfragen und die SQLite Datenbank sehr lange benötigt um die Daten aufzubereiten.
Verwende Datenbank Transaktionen: Hiermit können Sie steuern wie die Daten importiert werden sollen. In den Standardeinstellungen verwendet der SQLite Adapter eine „große“ Transaktion um den Importvorgang abzusichern. Bei sehr großen zu importierenden Datenmengen kann es vorkommen, dass Sie über die Option „AutoCommit ausführen nach X geschriebenen Datensätzen“ das Transaktionsverhalten an Ihre Bedürfnisse anpassen.
Verwende UNICODE Zeichenfolgen: Diese Option steht für den SQLite Adapter nicht zur Verfügung, Unicode wird hier per Default unterstützt!
Verarbeitung fortsetzen falls ein SQL Fehler auftritt: Hiermit können Sie den FlowHeater veranlassen, dass die Verarbeitung auch bei auftretenden SQLite Datenbank Fehlern, nicht abgebrochen wird. Achtung: Diese Option nur in Ausnahmefällen verwenden, es könnten dadurch Dateninkonsistenzen entstehen!
Verbindung vorbereiten
Benutzerdefiniert SQL Anweisungen zum Initialisieren der Verbindung: Hier können Sie beliebige Benutzerdefinierte SQL Befehle platzieren, die nach einem Verbindungsaufbau zur SQLite Datenbank, zur weiteren Initialisierung der Verbindung verwendet werden.
Spezielle Adapter Einstellungen
Hier können Sie angeben mit welcher Codepage die Daten in der SQLite Datenbank vorliegen bzw. geschrieben werden sollen. Es stehen UTF-8 oder UTF-16 zur Verfügung. Die Standardeinstellung ist UTF-8.
Reiter Format
Der Reiter Format wird genauer im allgemeinen Kapitel für Adapter beschrieben.
Folgende Beispiele stehen für den SQLite Adapter zur Verfügung