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 4 von 4   « Erste     234   
Benutzerbild von Mavarik
Mavarik

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

AW: SQLite iOS <> SQLite Android!

  Alt 28. Dez 2013, 16:47
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
Jo ich habe fast 2 Monate in meinem Code den Fehler gesucht... Bis ich dann den Fehler mit dem Debugger gefunden habe...
  Mit Zitat antworten Zitat
schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#32

AW: SQLite iOS <> SQLite Android!

  Alt 3. Feb 2015, 13:25
Hallo,

habe hier ein ähnliches Problem wie weiter oben beschrieben.
Mit dem Code erstelle ich eine SQLite Datenbank:

Delphi-Quellcode:
DataPfad:= TPath.Combine(TPath.GetDocumentsPath, 'Test.db');
if not TFile.Exists(DataPfad) then
  Begin
    Try // Datenbank erstellen
      SQLConnection.connected:=False;
      SQLConnection.Params.Values['Database'] := DataPfad;
      Startup.SQLConnection.Params.Values['FailIfMissing'] := 'False';
      Startup.SQLConnection.Connected:=True;
    except
      on E: EDatabaseError Do ShowMessage(E.Message);
    End;
    Try
      SQLBefehl:='CREATE TABLE Kontakte(EintragID INTEGER PRIMARY KEY AUTOINCREMENT, TelNummer VARCHAR(50) NOT NULL, KontaktName VARCHAR(100));';
      DtaZeilen := SQLConnection.ExecuteDirect(SQLBefehl);
    except
      on E: Exception Do Showmessage(E.ClassName + ' / ' + E.Message);
    End;
    SQLConnection.Connected:=False;
    if not FileExists(DataPfad) then
       ShowMessage('Datenbank nicht erstellt');
  end;
Wie Ihr sehen könnt, frage ich am Ende des Blockes ab, ob die Datei erstellt wurde. Sie wird erstellt, zumindest wird mir das mit FileExists angezeigt. Warum aber sehe ich die Datei nicht mit einem Dateiexplorer wie z.B. Astro-File Manager oder gar mit aSQLiteManager?

Wäre toll wenn mir jemand einen Hinweis geben könnte was ich da falsch mache

Geändert von mkinzler ( 3. Feb 2015 um 13:41 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
665 Beiträge
 
#33

AW: SQLite iOS <> SQLite Android!

  Alt 3. Feb 2015, 13:53
Wie Ihr sehen könnt, frage ich am Ende des Blockes ab, ob die Datei erstellt wurde. Sie wird erstellt, zumindest wird mir das mit FileExists angezeigt. Warum aber sehe ich die Datei nicht mit einem Dateiexplorer wie z.B. Astro-File Manager oder gar mit aSQLiteManager?
Weil andere Apps nicht auf "TPath.GetDocumentsPath" zugreifen dürfen, der ist nur für deine App.
  Mit Zitat antworten Zitat
schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#34

AW: SQLite iOS <> SQLite Android!

  Alt 3. Feb 2015, 13:56
Stimmt, grad auch entdeckt. Wenn ich den Pfad mit GetSharedDocuments auslese dann funktionierts.
  Mit Zitat antworten Zitat
schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#35

AW: SQLite iOS <> SQLite Android!

  Alt 3. Feb 2015, 15:15
Nächstes Problem.

Ich schaffe es Daten in die SQLite Datenbank einzutragen. Nun funktioniert das Auslesen nicht
Delphi-Quellcode:
Try
  FSQLCommandText := 'SELECT * FROM Kontakte;';
  SQLConnection.Execute(FSQLCommandText, NIL, FSQLDataSet);
  FSQLDataSet.First;
  While NOT FSQLDataSet.EOF Do Begin
    sStr := '';
    For i := 0 To FSQLDataSet.FieldCount - 1 Do
      sStr := sStr + ' ' + FSQLDataSet.Fields[i].AsString;
    ShowMessage(sStr);
    FSQLDataSet.Next;
  End;
Except On E: EDatabaseError Do ShowMessage(E.Message);
End;
Verstehe nicht warum. Wenn ich die Datenbank mit der App "SQLite Magic" öffne, dann wird alles angezeigt was ich in die Tabelle "Kontakte" eingetragen habe. Aber der obige Quellcode liefert mir nicht einen Datensatz.
Habe die SQL-Abfrage mittlerweile gefühlte 100x neu geschrieben aber ohne Erfolg. Gibt es vielleicht in XE6 einen Bug?
  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
 
#36

AW: SQLite iOS <> SQLite Android!

  Alt 3. Feb 2015, 15:59
Solltest du nicht besser einen neuen Thread erstellen?

BTW: Dein try except kannst du ersatzlos streichen und du bekommst mehr Informationen bei einer Exception (die auch sehr hilfreich wären, wenn du uns diese mitteilst).

PS Manchmal macht es sich auch gut, wenn man einen Blick in die Dokumentation wirft. Meistens sieht man dann klarer. Ein guter Anfang wäre Delphi-Referenz durchsuchenTSqlConnection.Execute
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)

Geändert von Sir Rufo ( 3. Feb 2015 um 16:02 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 22:15 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