AGB  ·  Datenschutz  ·  Impressum  







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

SQLite unter Android

Ein Thema von oakley · begonnen am 26. Mär 2019 · letzter Beitrag vom 2. Jul 2019
Antwort Antwort
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#1

SQLite unter Android

  Alt 26. Mär 2019, 18:54
Datenbank: SQLite • Version: 4 • Zugriff über: Unidac
Hallo zusammen,

ich spiele im Moment etwas mit Firemonkey herum und wollte eine SQLite Datenbank auf eine SD Karte packen und dann mit Unidac darauf zu greifen.
Abgesehen davon das ich Probleme habe direkt unter Windows etwas auf die Karte zu kopieren (mache das mit nem Adapter und schreibe direkt auf die Karte), welches Verzeichnis muss ich der Uniconnection angeben?
UniConnection1.Database := '/storage/sdCard/data.sqlite'; ?
Ich habe da schon etwas probiert bekomme aber immer Could not open Database.

Lg

Mirko

Geändert von oakley (26. Mär 2019 um 20:10 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.159 Beiträge
 
Delphi 12 Athens
 
#2

AW: SQLite unter Android

  Alt 27. Mär 2019, 13:16
Dafür brachst Du kein UniDac, es geht mit FireDac.
Und die Datei kannst Du der App per Deployment mitgeben, falls dir das etwas weiterhilft.
Auf externe Files wirst du u.U. nur begrenzt zugreifen können, weil die App in einer Sandbox lebt.
Dann wäre es eventuell besser eine DB-Datei per Internet auszutauschen.

Rollo
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#3

AW: SQLite unter Android

  Alt 27. Mär 2019, 13:34
Hallo Rollo,

Danke für die Info. Ich habe das gerade mal probiert.
Als Verzeichnis habe ich im Deployment einfach "./" gewälht.

Ich habe in der testdb.sqlite eine Tabelle namens testtab, die ich unter Windows mit SQLiteManager erzeugt habe.

Wenn ich nun die Verbindung mache bekomme ich "no table testtab". Woher kommt das?
Aber die Verbindung funktioniert jetzt.

Ich nutze folgenden Code:

UniConnection1.Database := './testdb.sqlite';
UniConnection1.Connect;

if UniConnection1.Connected = false then
ShowMessage('Keine Verbindung zur Datenbank')
else
ShowMessage('Verbunden'); <- Zeigt er so an !

UniQuery1.Close;
UniQuery1.SQL.Text := 'SELECT * from testtab';
UniQuery1.Execute; <- no such table testtab

LG

Mirko
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.159 Beiträge
 
Delphi 12 Athens
 
#4

AW: SQLite unter Android

  Alt 27. Mär 2019, 13:47
Du kannst versuchen einfach über Projekt\Resources und Images die Datei als Ressource anzulegen.
Das sollte normalerweise ein Deployment korrekt anlegen, auch wenn man die Resource nicht nutzt.
Der Pfad wäre dann "..\assets\internal\" wenn ich es richtig sehe.

Die Datei kann man dann wie beschrieben erreichen.
Ich würde immer erstmal mit FileExists prüfen was wo da ist.
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#5

AW: SQLite unter Android

  Alt 27. Mär 2019, 16:00
Danke für Deine Hilfe !!!

Das hat an der Resource gelegen denke ich.
Ich habe jetzt eine Verbindung und bekomme auch etwas aus der Tabelle gelesen.

Lg

Mirko
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#6

AW: SQLite unter Android

  Alt 1. Jul 2019, 14:27
Ich wollte nicht noch ein neues Thema starten weil es im Prinzip noch um die gleiche Sache geht.
Die Verbindung zu SQLite funktioniert jetzt einwandfrei mit Unidac.

Ich verwende aktuell beim onClick Event eines Buttons:

Code:

  UniConnection1.Database := TPath.Combine(TPath.GetDocumentsPath, 'testdb.sqlite');

  if UniConnection1.Connected = false then UniConnection1.Connect;
Wenn ich das gleiche nun im onCreate des Formulars mache blockiert die App.

Weil jemand woran das liegt?

LG

Mirko
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:37 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 by Thomas Breitkreuz