AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

SQLite iOS <> SQLite Android!

Ein Thema von Mavarik · begonnen am 6. Dez 2013 · letzter Beitrag vom 3. Feb 2015
Antwort Antwort
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: SQLite iOS <> SQLite Android!

  Alt 7. Dez 2013, 19:41
@Frank:
Du schreibst, dass Du Unterschiede in der Syntax vermutest. Ich interpretiere dies als "Unterschiede in der SQL-Syntax". Das würde mich sehr überraschen, aber vielleicht kannst Du hier näher darauf eingehen.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: SQLite iOS <> SQLite Android!

  Alt 8. Dez 2013, 10:33
@Frank:
Du schreibst, dass Du Unterschiede in der Syntax vermutest. Ich interpretiere dies als "Unterschiede in der SQL-Syntax". Das würde mich sehr überraschen, aber vielleicht kannst Du hier näher darauf eingehen.
Würde ich gerne machen, wenn ich richtig Debuggen könnte. Zum einen haben ich auf iOS Seite dieses Problem zum anderen dauert ein Try-Debug auf Android Seite jeweils mehr als 12 Min. (Compile, Link, Deploy dann per TCP/IP die Daten rüber ziehen und diese in die Datenbank einfügen). Selbst wenn ich das auf die minimalen Datenbanken beschränke nochmal 5 Min. weil mein Nexus 10 im Debug Modus noch langsamer ist.
Wenn ich dann das glück habe, dass der Debugger mal den Haltepunkt nicht ignoriert und der Stepper auch das macht was er soll (klapp auch nicht immer) lande ich irgendwo im System (genau Stelle) hab ich noch nicht und bekomme die Meldung. Tabelle nicht gefunden.

Folgendes hab ich getestet.
- Memo1 SavetoFile Memo2 LoadfromFile (Funktioniert! Ich habe also schreib lese rechte auf das Verzeichniss)
- Andere Pfade (TPath.GetDocumentsPath & GetHomePath + PathDelim + 'Documents' + PathDelim; (ggf. Dir erzeugt und getestet ob Dir da!)
- Ich habe(vermutet) es könnte auch an meiner TableExist Routine liegen.

Delphi-Quellcode:
  SQ.SQL.Text := 'SELECT CASE WHEN tbl_name = "'+FTableName+'" THEN 1 ELSE 0 END FROM sqlite_master WHERE tbl_name = "'+FTableName+'" AND type = "table";';
  SQ.Active := true;
  Result := boolean(SQ.Fields[0].AsString = '1');
- Vielleicht reagiert Android anders wenn eine Tabelle noch offen ist oder die Connection geshared wird.
- Oder die Freigabe (ARC)?!?! Keinen Plan.

Mehr konnte ich noch nicht testen da ich eine DeadLine bis gestern 20:00 Uhr für die Genehmigung der Software hatte. Daher musste ich mich dann auf die letzten Kleinigkeiten unter iOS kümmern.

Aber ich werde mal ne keine Test-App mit kleineren Testdaten machen um das Problem einzukreisen, da scheinbar keiner außer mir diese Problem hat.

Grüsse Mavarik
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: SQLite iOS <> SQLite Android!

  Alt 8. Dez 2013, 10:45
Zur Geschwindigkeit unter Android und XE5, das läuft nicht schlecht ich habe heute morgen wiedermal an einer schönen App gearbeitet und gefühlte 100 mal gestartet direkt auf dem Gerät. Das dauert keine 15 sec bis die App läuft.

Ich arbeite aber NICHT im Debugmodus, sondern fast immer mit Release UND Anwendungs-Store mit Zertifikatzuweisung.

Infos gebe ich entweder in Listboxen aus oder in Logdateien aus, auf die kann man unter Android direkt zugreifen.
Angehängte Grafiken
Dateityp: png appconfig.png (8,4 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: SQLite iOS <> SQLite Android!

  Alt 8. Dez 2013, 12:07
Noch mal eine Idee zu deinem Geschwindigkeitsproblem: starte mal nicht direkt die app aufs Gerät, sondern erzeuge diese einfach nur, dann findest Du die apk unter project/android/release(oder debug)/projekt/bin/

Geht das schneller ? Die apk kannste dann manuell aufs Gerät schieben und installieren. Vielleicht kommst du beim manuellen Ablauf so eine Idee wo es hängt.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: SQLite iOS <> SQLite Android!

  Alt 8. Dez 2013, 13:09
Noch mal eine Idee zu deinem Geschwindigkeitsproblem: starte mal nicht direkt die app aufs Gerät, sondern erzeuge diese einfach nur, dann findest Du die apk unter project/android/release(oder debug)/projekt/bin/

Geht das schneller ? Die apk kannste dann manuell aufs Gerät schieben und installieren. Vielleicht kommst du beim manuellen Ablauf so eine Idee wo es hängt.
Kann ich testen.... (Anderer Thread)
Hab 6MB SQLite Datenbank für eine nackte Installation.
Die "fehlende" Geschwindigkeit zeigt sich schon beim Scrollen von eine ListBox mit 10 Einträgen á 3 Images 8 Label. Hatte ich ME, DM, DW schon am Stammtisch auf den letzten Delphi Tagen gezeigt. (Die wollten das auch nicht glauben)
ME: Warte auf Update 1.

Die Animation für das Umlegen eines Switches dauert 3 Sekunden.

Vielleicht muss ich mal ein Video davon machen...

Aber wie gesagt. Lieber hier posten.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: SQLite iOS <> SQLite Android!

  Alt 25. Dez 2013, 13:26
Also...

Wenn das hier auf Android funktionieren soll:

Dann sollte ja gemäß der Anleitung:
Delphi-Quellcode:
procedure TForm1.SQLConnectionSQLiteBeforeConnect(Sender: TObject);
begin
  {$IF DEFINED(iOS) or DEFINED(ANDROID)}
  ShoppingList.Params.Values['Database'] :=
      TPath.Combine(TPath.GetDocumentsPath, 'shoplist.s3db');
  {$ENDIF}
end;
der richtige Path sein.

Das mag funktionieren, wenn man die Datei da per deploy "rüberschiebt",
aber ein

Delphi-Quellcode:
procedure TForm40.SQLConnection1BeforeConnect(Sender: TObject);
begin
  SQLConnection.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'TestBase.s3db');
  SQLConnection.Params.Values['ColumnMetadataSupported'] := 'False';
  SQLConnection.Params.Values['FailIfMissing'] := 'False';
end;
Sollte doch an dieser Stelle die Datenbank erzeuge. (So jedenfalls funktioniert es unter iOS)

Ich denke, dass die Systemtreiber für dieses Verzeichniss keine Create-Rechte habe, den nach einem Aufruf liegt da keine Datenbank.

Oder hat jemand eine bessere Idee?

Mavarik
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 14:28
Bessere Idee? Ja.
Nach unserem Skype-Gespräch habe ich Dein Demo mit FireDAC nachgebaut und dort stimmen Theorie und Praxis auf Anhieb überein.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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