Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   SQLite db vom Android beschreiben, am PC öffnen geht nicht (https://www.delphipraxis.net/193420-sqlite-db-vom-android-beschreiben-am-pc-oeffnen-geht-nicht.html)

Kostas 27. Jul 2017 16:01

SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,

ich lege am PC eine neue leere SQLite an und kopiere sie auf einem Android device über den Explorer.
Über meine Android App wird die Datenbank befüllt. Übe eine SQLite Editor App kann ich meine Daten sehen, sie sind einwandfrei.
Nun kopiere ich wieder über den Explorer die gleiche Datenbank vom Adroid Device zurück zum PC und versuche mit dem gleiche Tool mit dem die Datenbank erzeugt habe zu öffnen.
Die Datenbank enthält drei Tabellen mit einer Handvoll Datensätze. Zwei Tabellen werden angezeigt und die dritte "Personal" nicht.

Kann es sein dass die Files nicht (Android(win) binär Kompatibel sind? Wie gesagt, am Android device kann ich die Daten einwandfrei anschauen, nur unter Windows nicht.
Versucht habe ich die zwei Programme: SQLiteStudio https://sqlitestudio.pl/index.rvt
und SQLiteAdmin http://sqliteadmin.orbmu2k.de/




Das ist das SQL für die Datenbank mit den drei Tabellen:

Code:
CREATE TABLE Baustellen (BAUSTELLEID INTEGER PRIMARY KEY NOT NULL,
                               BAUSTELLE VARCHAR (100));

CREATE TABLE Personal (PERSONALID INTEGER NOT NULL PRIMARY KEY,
                       NAMEN VARCHAR (50),
                       VORNAME VARCHAR (50),
                       GEBURTSDATUM DATE,
                       FIRMA VARCHAR (50),
                       GESPERRT BOOLEAN,
                       SPERRGRUND VARCHAR (100));

CREATE TABLE Zeiterfassung (ZEITERFASSUNGID INTEGER PRIMARY KEY NOT NULL,
                            BARCODE INTEGER,
                            ZEITPUNKT DATETIME,
                            BARCODEIDENT VARCHAR (10),
                            GESENDET BOOLEAN,
                            PERSONALID INTEGER,
                            BAUSTELLEID INTEGER);

Hat jemand eine Idee?
Gruß Kostas

Rollo62 27. Jul 2017 18:04

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Wenn du die Struktur schon am PC erzeugst müsste es doch OK sein.
Oder ist vielleicht eine leere DB nicht gut genug.

Probier doch mal wenn du schon am PC ein paar Datensätze reinlegst, und
dann auf Android noch welche dazu machst.

Wenn das nicht crasht dann müsste es doch funktionieren.

Rollo

Aviator 27. Jul 2017 23:08

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also mit meinem eigenen SQLite Tool das ich gerade programmiere erhalte ich bei der Datei Personal.s3db ebenfalls einen Fehler. Siehe anliegenden Screenshot (die markierten Stellen). Da funktioniert nicht mal die Hauptabfrage um überhaupt irgendwelche Informationen aus der Datenbank zu lesen.

Anhang 47688

Die Datei Personal_master.s3db kann ich allerdings problemlos öffnen und auch den Inhalt anzeigen. (siehe Hintergrund im Screenshot, da ist die Tabelle Zeiterfassung aus der Datei Personal_master.s3db geöffnet)

sko1 28. Jul 2017 06:12

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Zitat:

ich lege am PC eine neue leere SQLite an und kopiere sie auf einem Android device über den Explorer.
Wozu denn das?
Wenn es eine leere DB ist, kannst Du Dir das schenken, die wird automatisch beim ersten Zugriff angelegt, wenn nicht vorhanden!
So zumindest in meiner Anrdoid / Windows APP!

Ciao
Stefan

bra 28. Jul 2017 08:58

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Mit dem "DB Browser for SQLite" kommt auch eine Fehlermeldung "invalid file format". Vermutlich geht da irgendwas grundlegendes kaputt. Laut http://www.sqlite.org/different.html#onefile müssten die Dateien eigentlich auch plattformunabhängig sein.

Du solltest die DB direkt auf dem Gerät erstellen und befüllen. Eventuell macht auch die SQLite-Version einen Unterschied?

Kostas 28. Jul 2017 16:34

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Hallo Zusammen,

keine Ahnung was hier passiert. Aber ich habe ein anderes Device Samsung Galaxy S7. Die gleiche App funktioniert da ebenfalls und die DB wird nicht beschädigt. Entweder ist die SQLite Version auf dem anderen Device eine adere und beschädigt die Datenbank, oder das Device selbst hat irgend ein Problem.
Gibt es eine Möglichkeit die SQLite Version abzufragen? Ich verwende die FireDAC Komponenten. Möglicherweise geht es aber auch über das Android-System. Ich habe auf das Android Device die SQLite Filed nicht aktualisiert sondern die vom System verwendet. Kann es da Unterschiede geben, vermutlich schon oder?

Gruß Kostas

nahpets 28. Jul 2017 16:45

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Es gibt die SQL-Funktion sqlite_version() zur Abfrage der Version der genutzten SQLite library. Kann man also mit einem SQL-Statement abfragen.

Siehe: http://www.sqlite.org/lang_corefunc.html#sqlite_version

Rollo62 28. Jul 2017 18:25

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
@sko1

Automatisch erzeugen wäre mir neu.
Ich mache das mit "create table if not exists".
Das funktioniert überall.

sko1 29. Jul 2017 07:25

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Ich schrieb dass die (leere) Datenbankdatei automatisch erzeugt wird wenn nicht vorhanden!
Man muss also keine leere DB aufs Device kopieren...

Dass man die Tabellen natürlich selbst erzeugen muss sollte klar sein!

Ciao
Stefan

Uwe Raabe 30. Jul 2017 15:46

AW: SQLite db vom Android beschreiben, am PC öffnen geht nicht
 
Zitat:

Zitat von sko1 (Beitrag 1377721)
Ich schrieb dass die (leere) Datenbankdatei automatisch erzeugt wird wenn nicht vorhanden!

Das wird in der FireDAC-Connection im Parameter OpenMode eingestellt (gibt's aber wohl nur bei SQLite). Als Default steht da CreateUTF8 - also, solange man das nicht ändert, wird eine Datenbank erzeugt, wenn nicht vorhanden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz