Stand: 2026-05-25
sqliteviewer-export-v1.json ist ein optionaler Companion-Export für Web/PWA-, Review- und Austausch-Workflows. CSV bleibt der Standardexport für einfache Tabellenweitergabe. JSON ergänzt diesen Pfad um Metadaten zur Herkunft und zur aktuell sichtbaren Ansicht.
- Der Export ist additiv: CSV bleibt unverändert verfügbar.
- Es werden nur aktuell sichtbare Ergebniszeilen exportiert.
- Der Export ist offline-first und enthält keine Cloud-Synchronisation.
- BLOB-Werte werden JSON-kompatibel als Base64-Struktur serialisiert.
Der Export hält sichtbare Daten und Herkunft vor dem Dateidialog fest. Als Ziel
sind die offene Hauptdatenbank, per SQL eingebundene Datenbanken und deren
Standardbegleitdateien -wal, -shm und -journal gesperrt. Das gilt auch für
Dateialiase und für Begleitdateien, die noch nicht existieren. Ein Wechsel oder
Schließen der Datenbank während des Dialogs hebt den ursprünglichen Schutz nicht
auf; neu eingebundene Datenbanken werden zusätzlich berücksichtigt.
Mehrdeutige Windows-Pfadkomponenten mit abschließendem Punkt oder Leerzeichen
werden abgewiesen, bevor Windows den Zielnamen beim Schreiben normalisiert.
Die Ausgabe wird zunächst vollständig in eine eigene temporäre Datei im Zielverzeichnis geschrieben, synchronisiert und geschlossen. Erst danach wird das Ziel nach erneuter Schutzprüfung ersetzt. Serialisierungs-, Schreib- oder Ersetzungsfehler erhalten eine vorhandene Ausgabe; fremde temporäre Dateien werden nicht entfernt. Fehler bei der Prüfung aktiver Datenbanken brechen den Export ab.
Diese Prüfungen garantieren keine Transaktion gegen gleichzeitige externe Dateisystemänderungen zwischen letzter Prüfung und Ersetzung und keine Stromausfall-Dauerhaftigkeit. Besondere SQLite-VFS-/Superjournal-Dateien und App-Einstellungsdateien sind nicht Teil dieses Datenbankschutzvertrags.
{
"schema_version": "sqliteviewer-export-v1",
"app_name": "SQLite Viewer Pro",
"app_version": "2.0.0",
"exported_at": "2026-05-25T11:34:56+02:00",
"source": {
"database_path": "C:/path/demo.sqlite",
"database_name": "demo.sqlite",
"view": "table",
"table": "items",
"query": null,
"row_limit": 1000,
"search_term": null,
"sort_column": "id",
"sort_descending": false
},
"columns": ["id", "name"],
"row_count": 2,
"result_rows": [
{"id": 1, "name": "Alpha"},
{"id": 2, "name": "Beta"}
]
}schema_version: Stabile Kennung des Exportvertrags.app_name/app_version: Herkunft des Exports.exported_at: ISO-8601-Zeitstempel mit Zeitzone.source.database_path: Ursprünglicher Datenbankpfad auf dem exportierenden System.source.database_name: Dateiname der Datenbank.source.view: Herkunft der sichtbaren Daten, aktuelltable,table_searchoderquery.source.table: Aktive Tabelle, falls vorhanden.source.query: Ausgeführte SQL-Abfrage bei Query-Exporten.source.row_limit: Aktives Zeilenlimit der Ansicht.source.search_term: Aktiver Suchbegriff in der Tabellenansicht.source.sort_column/source.sort_descending: Sortierzustand der Tabellenansicht.columns: Sichtbare Spaltenreihenfolge.row_count: Anzahl exportierter Ergebniszeilen.result_rows: Ergebniszeilen als Objekte mit Spaltennamen.
null,string,numberundbooleanbleiben direkt erhalten.byteswerden als Objekt exportiert:
{
"type": "blob",
"encoding": "base64",
"size_bytes": 12,
"data": "AAEC"
}- Nicht direkt JSON-kompatible Sonderfälle werden als String serialisiert.
- Kein vollständiger Dump interner SQLite-Metadaten.
- Kein bidirektionaler Importvertrag in v1.
- Keine Synchronisation kompletter Datenbanken zwischen Geräten.