Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS: SQLite Bereitstellung auf Gerät (https://www.delphipraxis.net/176319-ios-sqlite-bereitstellung-auf-geraet.html)

eddie11 27. Aug 2013 08:34

iOS: SQLite Bereitstellung auf Gerät
 
Hi und guten Morgen allerseits,

ich möchte SQLite in einer iOS-App benutzen. Das funktioniert auch alles sehr gut, im Bereitstellungsmanager habe ich alles hinterlegt und die SQLite-Datei wird vom Entwicklungsrechner via PA-Server übertragen.

Es funktionert leider nur FAST alles: Wenn ich als Built-Konfiguration "Release" auswähle, als Zielplattform "iOS-Gerät" und darunter "AdHoc", dann wird die App zwar auf dem Gerät installiert, kann auch gestartet werden und scheint zu funzen - aber wenn ich die Datenbank öffne, dann erhalte ich die Meldung "database disk image is malformed" und nix geht. Alle anderen Konfigurationen (Debug/Simulator, Release/Simulator, Debug/Gerät) funktionieren, die Datenbank wird übertragen und kann ganz normal benutzt werden. Auch wenn ich die Datenbank zur Laufzeit anlege ist alles ok.

Ich benutze zur Verbindung mit der Datenbank die Standard-DBX-Komponenetn (TSQLConnection , TSQLDataSet).

Was ist zu tun?

arnof 27. Aug 2013 08:52

AW: iOS: SQLite Bereitstellung auf Gerät
 
teste mal, ob die datenbank wirklich da ist (fileexits), wenn nein, die Bereitstellung ist auch unterschiedlich zwischen debug und release (warum auch immer)

eddie11 27. Aug 2013 09:09

AW: iOS: SQLite Bereitstellung auf Gerät
 
Ja, die Datei ist da, das hab' ich schon ziemlich zuerst getestet.

Eine ander Datei (nicht SQLite sondern eine ganz normale Text-Datei wird ornungsgemäß deployed)

RWarnecke 27. Aug 2013 11:21

AW: iOS: SQLite Bereitstellung auf Gerät
 
Zitat:

Zitat von eddie11 (Beitrag 1226366)
...aber wenn ich die Datenbank öffne, dann erhalte ich die Meldung "database disk image is malformed" und nix geht...

Hat die Datei auf dem Gerät die gleiche Größe wie bei Dir auf dem Rechner ? Eine andere Variante wäre noch, die Datei nicht zu deployen sondern zur Laufzeit erstellen zu lassen.

eddie11 27. Aug 2013 12:34

AW: iOS: SQLite Bereitstellung auf Gerät
 
Die Datei hat auf dem Gerät die gleiche Größe wie auf dem Entwicklungsrechner. Ich habe inzwischen mal die Datei auf dem iPad erstellt, dann ist alles ok. Wenn ich jetzt diese auf dem iPad erstellte Datei mit Xcode und Organizer auf den Entwicklungsrechner kopiere, und dann anschliessend wieder aufs Gerät deploye, dann gibts wieder die Fehlermeldung "Database image is malformed". Es scheint also an der Übertragung zu liegen. Möglicherweise an der Dateigröße, wenn ich nämlich eine nur wenig gefüllte Datenbank deploye, dann funktioniert es ebenfalls.

Ich möchte die Datenbank auf dem Zielgerät nur ungern erstellen, da es sich um ca. 30.000 Datensätze handelt. Ich möchte es unseren Anwendern eigentlich gerne ersparen, nach der Installation warten zu müssen bis die Datenbank installiert bzw. gefüllt ist.

RWarnecke 27. Aug 2013 12:37

AW: iOS: SQLite Bereitstellung auf Gerät
 
Hast Du mal andere Komponenten ausprobiert wie zum Beispiel UniDAC ob es damit besser funktioniert ?

eddie11 27. Aug 2013 13:30

AW: iOS: SQLite Bereitstellung auf Gerät
 
Zitat:

Zitat von RWarnecke (Beitrag 1226402)
Hast Du mal andere Komponenten ausprobiert wie zum Beispiel UniDAC ob es damit besser funktioniert ?

Nein, das habe ich (noch) nicht getan. Ich habe allerdings auch weder UniDac noch FireDac gekauft/lizensiert. Ich dachte ohnehin bei so einer relativ kleinen Datenbank komme ich gut mit SQLite und DBX klar. Gewinne ich den tatsächlich etwas mit UniDAC?

Allerdings funktioniert es ja alles grundsätzlich, es scheint ja irgendwie ein Problem mit der Bereitstellung zu sein.

eddie11 27. Aug 2013 14:19

AW: iOS: SQLite Bereitstellung auf Gerät
 
Also jetzt habe ich das mal mit einem anderen Gerät ausprobiert, da funktioniert es erstaunlicherweise. Das wo es funktioniert ist ein iPad mini, gleicher iOS-Stand, auch 16GB 3G-Version. Allerdings sind auf diesem Gerät 12,9 GB frei, auf dem iPad wo's nicht funzt nur 7,8. Die Datenbank ist aber lediglich 3,9 MB groß, daran sollte es doch wohl nicht liegen. das iPda habe ich auch schon mal komplett runtergefahren, geht trotzdem nicht.

weisswe 27. Aug 2013 14:36

AW: iOS: SQLite Bereitstellung auf Gerät
 
Überschreibst du dein Projekt immer wieder oder deinstallierst du es bevor du es neu deployst?
Hatte mal einen ähnlichen Fall. Seitdem deinstalliere/lösche ich die App bevor ich sie neu einspiele.

eddie11 27. Aug 2013 15:10

AW: iOS: SQLite Bereitstellung auf Gerät
 
Zitat:

Zitat von weisswe (Beitrag 1226419)
Überschreibst du dein Projekt immer wieder oder deinstallierst du es bevor du es neu deployst?
Hatte mal einen ähnlichen Fall. Seitdem deinstalliere/lösche ich die App bevor ich sie neu einspiele.

Ich lösche die App immer vorher (sonst würde die Datei ja ohnehin nicht neu deployed werden).


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.

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