AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite iOS <> SQLite Android!

Ein Thema von Mavarik · begonnen am 6. Dez 2013 · letzter Beitrag vom 3. Feb 2015
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Mavarik
Mavarik

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

AW: SQLite iOS <> SQLite Android!

  Alt 25. Dez 2013, 14: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
 
#22

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 15: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
Benutzerbild von Mavarik
Mavarik

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

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 16:06
Bessere Idee? Ja.
Nach unserem Skype-Gespräch habe ich Dein Demo mit FireDAC nachgebaut und dort stimmen Theorie und Praxis auf Anhieb überein.
Und ich hab den Fehler gefunden:

Data.DbxSqlite.pas


Delphi-Quellcode:
var
  DatabaseName: string;
  ErrorCode: Integer;
begin
  if ConnectionProperties.Values['ColumnMetaDataSupported'] = 'then
{$IFDEF MSWINDOWS}
    ConnectionProperties.Values['ColumnMetaDataSupported'] := 'True';
{$ENDIF}
{$IFDEF MACOS}
    ConnectionProperties.Values['ColumnMetaDataSupported'] := 'False';
{$ENDIF}
  DatabaseName := FConnectionProperties.Values[TDBXPropertyNames.Database];
  try
    if string.Compare(FConnectionProperties.Values['FailIfMissing'], 'True', True) = 0 then
      ErrorCode := sqlite3_open_v2(MarshaledAString(Utf8Encode(DatabaseName)), FConnectionHandle, SQLITE_OPEN_READWRITE, nil)
    else
      ErrorCode := sqlite3_open16(PChar(DatabaseName), FConnectionHandle);
  except
    raise Exception.Create(SLibraryNotFound);
  end;
Wer findet den Fehler, warum es auf Android nicht funktioniert?

Für Andoid steht da:

Delphi-Quellcode:
var
  DatabaseName: string;
  ErrorCode: Integer;
begin
  if ConnectionProperties.Values['ColumnMetaDataSupported'] = 'then
    DatabaseName := FConnectionProperties.Values[TDBXPropertyNames.Database];
  try
    if string.Compare(FConnectionProperties.Values['FailIfMissing'], 'True', True) = 0 then
      ErrorCode := sqlite3_open_v2(MarshaledAString(Utf8Encode(DatabaseName)), FConnectionHandle, SQLITE_OPEN_READWRITE, nil)
    else
      ErrorCode := sqlite3_open16(PChar(DatabaseName), FConnectionHandle);
  except
    raise Exception.Create(SLibraryNotFound);
  end;
Was mir sagt NIEMAND, in Worten NIEMAND hat es bisher versucht eine SQLite Datenbank onthefly auf einem Android Device zu erzeugen... Erschreckend!

Bzw. Hatte zum Glück immer 'ColumnMetaDataSupported'] = '' gesetzt!

Mavarik

Geändert von Mavarik (27. Dez 2013 um 16:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#24

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 16:15
Weil bei Android der Code so compiliert wird
Delphi-Quellcode:
  if ConnectionProperties.Values['ColumnMetaDataSupported'] = 'then
    DatabaseName := FConnectionProperties.Values[TDBXPropertyNames.Database];
statt so (ob das besser ist?)
Delphi-Quellcode:
  if ConnectionProperties.Values['ColumnMetaDataSupported'] = 'then
  begin

  end;
  DatabaseName := FConnectionProperties.Values[TDBXPropertyNames.Database];
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 16:39
statt so (ob das besser ist?)
Delphi-Quellcode:
  if ConnectionProperties.Values['ColumnMetaDataSupported'] = 'then
  begin

  end;
  DatabaseName := FConnectionProperties.Values[TDBXPropertyNames.Database];
Der Kandidat hat 100 Punkte...

Tja wie ist es denn bei Android, wahrscheinlich wie bei iOS oder?

Keinen Plan...


Mavarik
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.254 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#26

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 17:54
man kann nie genug begins haben, aber dran denken alles braucht ein end (nur die Wurst hat zwei: end to end)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#27

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 20:16
Und ich hab den Fehler gefunden:

Data.DbxSqlite.pas
Erstellst du auch noch einen QC-Eintrag dazu?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 21:56
Und ich hab den Fehler gefunden:

Data.DbxSqlite.pas
Erstellst du auch noch einen QC-Eintrag dazu?
Logisch... 121404
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.254 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#29

AW: SQLite iOS <> SQLite Android!

  Alt 27. Dez 2013, 22:08
[QUOTE=Mavarik;1241187]
Bessere Idee? Ja.

Was mir sagt NIEMAND, in Worten NIEMAND hat es bisher versucht eine SQLite Datenbank onthefly auf einem Android Device zu erzeugen... Erschreckend!

Mavarik
Da stimmt doch meine Schätzung (anderes Thema).

Weist Du auch, wenn man die Download zahlen bei den neuen nativen Androidcomponenten siehst (die wurden auch geblogt, auch hier mal war der Link zu sehen), da waren heute nachmittag nur 140 downloads. Ich war da schon mindesten 2 mal dabei.

Ich würde behaupten JEDER der ernsthaft hier was für Android macht mit XE5, hat die sich sicherlich schon mal angeschaut, ob man die vielleicht benutzen, oder was abschauen kann!

Das ist Weltweit, ja da weiste bescheid!

Geändert von arnof (27. Dez 2013 um 22:13 Uhr)
  Mit Zitat antworten Zitat
GS1200

Registriert seit: 16. Jul 2006
26 Beiträge
 
#30

AW: SQLite iOS <> SQLite Android!

  Alt 28. Dez 2013, 15:25
Hallo zusammen,

ich bin neu im Thema Mobile-Devices unter XE5 und habe statt iOS erst einmal mit meinem Galaxy S4 unter Android 4.2.2 angefangen meine ersten Erfahrungen zu sammeln.
Genau dieses o.a. Problem hatte ich auch und das Fixing der Data.DBXSqlite war die Lösung. Ich habe ewig die Ursache gesucht und den Fehler nur bei mir Code vermutet.

Ich wollte einfach mal danke sagen, an all diejenigen,die hier im Forum zu Lösungen beitragen.

Gruß

Axel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 13:42 Uhr.
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