Einzelnen Beitrag anzeigen

dynamo

Registriert seit: 21. Okt 2008
Ort: Bordesholm
37 Beiträge
 
Delphi 11 Alexandria
 
#1

Sqlite-Daten mit verschiedenen Android-Apps austauschen

  Alt 6. Aug 2023, 13:09
Ich habe 2 Apps programmiert:
App1 = "haushalt" mit sqlite-Daten in 'system.ioUtils.TPath.GetPublicPath+PathDelim'
also '/Android/data/joerg.haushalt/files/haushalt.db'
App2 = "einkauf" mit sqlite-Daten in 'system.ioUtils.TPath.GetPublicPath+PathDelim'
also '/Android/data/joerg.einkauf/files/einkauf.db'
Beide Apps laufen für sich super gut.

Nun kam mir folgende Idee: wenn ich in App1 (haushalt) einen Artikel reduziere, soll er automatisch in der einkauf.db von App2 gelistet werden.
Nur wie kann ich von App1 auf die Daten von App2 zugreifen? (sind ja verschiedene Verzeichnisse).
Die sqlite-Daten in beiden Apps verwalte ich mit den FireDac-Komponenten FDConnection und FDQuery.
Ich würde dann in App1 eine 2.FDConnection für die Daten in App2 machen, etwa so:

Delphi-Quellcode:
function Tfrm_haushalt.connection : boolean;
begin
  FDConn2.Connected := False;
  FDconn2.Params.Clear;
  FDconn2.Params.Add('DriverID=sqlite');
  FDconn2.Params.Add('StringFormat=Unicode');
  // die folgende Zeile ist so sicherlich falsch - aber wie ist's richtig?
  FDconn2.Params.Add('Database=/storage/emulated/0/Android/data/joerg.einkauf/files/einkauf.db');// das Problem ist die Pfadangabe!
  try
    FDconn2.Connected := true; // wenn die params stimmen, wird zur Datenbank verbunden
    Result := true;
  except
    Result := false;
  end;
end;
In beiden Apps sind die Permissions für write_external_Storage und read_external_storage gesetzt.
Bis einschl. Delphi 10.4 konnte ich ja direkte Pfade verwenden, aber das geht wohl in Delphi 11.3 nicht mehr - oder?
Wie krieg ich nun in D11.3 die Verbindung hin? Das Problem ist wohl der Datenbank-Pfad zu App2.
Hat jemand 'ne Idee hierzu?
Die einzige Lösung, die ich im Moment sehe, ist, beide Apps in einer einzigen zusammenzuführen. Aber das möchte ich eigentlich nicht.
Sie sollen eigenständig bleiben.
Jörg
  Mit Zitat antworten Zitat