Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Mobile Datenerfassung Android mit Firebird Server (https://www.delphipraxis.net/212235-mobile-datenerfassung-android-mit-firebird-server.html)

josef-b 9. Jan 2023 15:00

Datenbank: Firebird • Version: 3.0 • Zugriff über: Windows 11

Mobile Datenerfassung Android mit Firebird Server
 
Bisher nutzen wir unser kleines Warenwirtschaftssystem nur im LAN mit Firebird.

Nun möchten wir aber mobile Datenerfassungen mit Android-Geräten einführen.

Zuerst einfach nur z.B. Inventur-Daten (eine Tabelle) erfassen.

Später sollen allerdings etwas umfangreichere Dinge hinzukommen, wie mobile Unterschriftserfassung, oder Drucken von Belegen..

Habe mich etwas belesen, aber ich habe noch keinen Durchblick wie man das am besten/schnellsten macht.

Irgendwann hatte ich schon mal eine kleine Sache mit REST gemacht, da musste ich aber alle Daten manuell mappen.

Ich denke, das kann man sich sicherlich bei einer "eigenen" Anbindung ersparen/automatisieren..

Ist da Datasnap das richtige? oder was sind die gängigen Verfahrensweisen?

Wir möchten also per Android auf unseren Firebird Server zugreifen.

Rollo62 9. Jan 2023 16:59

AW: Mobile Datenerfassung Android mit Firebird Server
 
Ich würde das auf jeden Fall mit einer kleinen REST Zwischenschicht machen, um auf Mobile nicht direkt mit DB hantieren zu müssen.
Das kann immer mal Probleme geben und REST via HTTP(S) funktioniert in der Regel ohne Probleme.

Es gibt auch verschiedene ORM Varianten als RESTServer, QuickORM, MARS Curiosity, DMVC, usw.
Das ist aber auch mehr oder weniger viel Arbeit das in ein bestehendes Projekt zu integrieren.

josef-b 9. Jan 2023 18:28

AW: Mobile Datenerfassung Android mit Firebird Server
 
Das hört sich jetzt erstmal alles nicht ganz einfach an..

Eine Middleware ..dann doch wieder manuelles Mapping...?

Mal ganz einfach gedacht:

Das Handy schickt einen Sql-Befehl an den Firebird - Server...

ich habe ein TEdit auf dem Handy, beim ändern schickt das Handy einen
Sql-Befehl an den Firebird-Server, einfach per Https, müsste doch auch gehen...

So nach dem Motto: Update Inventur set Menge = 5 where ArtikelNr = 10

müsste doch auch gehen..

brauchen wir nur noch die Daten wieder zurück, auf dem ähnlichen Weg
beim Select....

TurboMagic 9. Jan 2023 20:01

AW: Mobile Datenerfassung Android mit Firebird Server
 
Naja, der Firebird Server implementiert vermutlich ein eigenes Protokoll.
Besser nicht auf die Ebene gehen, sonst kann das bei DB Updates Anpassungsaufwand verursachen.

Ich Frage mich, warum es keinen FB Client für Android gibt...

Man könnte aber auch einen REST Server schreiben der eine Methode
hat die SQL als Parameter erwartet? Evtl. liefert die dann eine eindeutige
ID zurück, mit der man das Ergebnis mit einer Get Abfrage Abrufen kann.
Evtl. als CSV.

Mit Datasnap gibt es aber auch eine Möglichkeit die Attribute eines Objektes direkt nach JSON zu konvertieren und zurück zu liefern.

Man muss also nur die von der DB abgefragten Daten in Objektfe oder packen.

josef-b 10. Jan 2023 02:45

AW: Mobile Datenerfassung Android mit Firebird Server
 
Zitat:

Mit Datasnap gibt es aber auch eine Möglichkeit die Attribute eines Objektes direkt nach JSON zu konvertieren und zurück zu liefern.

Man muss also nur die von der DB abgefragten Daten in Objektfe oder packen.

Damm müsste auf dem Android Client auch wiederum eine Datenbank installiert werden, wie z.B. SQLite?

Delphianer111 10. Jan 2023 08:30

AW: Mobile Datenerfassung Android mit Firebird Server
 
Für Firebird 3 bzw. 4 gibt es Clientbibliotheken für Android.
Mit den UniDAC bzw. IBDAC Komponenten von Devart ist dann ein direkter Zugriff auf eine Firebird Datenbank vom Androidgerät aus möglich.

DeddyH 10. Jan 2023 08:53

AW: Mobile Datenerfassung Android mit Firebird Server
 
Ich persönlich würde eine REST-Lösung vorziehen. Dabei enthält der Server eine Reihe vordefinierter Routen und führt in keinem Fall irgendwelche SQL-Scripte, die vom Client kommen, aus. Auf diese Weise reißt man sich keine Sicherheitslücken auf und ist bei der Wahl des Clients flexibel, das kann später ein Webclient oder sonstwas sein. Das ist zwar erst einmal etwas Aufwand, später zahlt sich dieser aber aus. Die bereits genannten Frameworks (ich selbst bin bei DMVC gelandet) nehmen einem ja schon einen großen Teil der internen Implementierung ab, das ist also machbar.

TurboMagic 11. Jan 2023 17:04

AW: Mobile Datenerfassung Android mit Firebird Server
 
Zitat:

Zitat von josef-b (Beitrag 1517264)
Zitat:

Mit Datasnap gibt es aber auch eine Möglichkeit die Attribute eines Objektes direkt nach JSON zu konvertieren und zurück zu liefern.

Man muss also nur die von der DB abgefragten Daten in Objektfe oder packen.

Damm müsste auf dem Android Client auch wiederum eine Datenbank installiert werden, wie z.B. SQLite?

Warum? Neee, ich glaube du hast das noch nicht ganz verstanden:
der Server liest deine Server DB auf Anfrage aus, steckt die gelesenen Daten in entsprechende Felder einer
Klasse und nutzt die JSON FUnktionalität der Delphi RTL um daraus einen JSON string zu machen, der als
Antwort auf die GET Abfrasge, welche ja die DB Abfrage gestartet hatte, zurückgeliefert wird.

Der Client muss dann halt das JSON parsen, weil da seine Daten drin sind.
=> der Client braucht also nicht zwingend eine DB, es sei denn du willst deine Daten da rein stecken
um dort lokal DB-mäßig mit zu arbeiten.

Grüße
TurboMagic

josef-b 12. Jan 2023 11:30

AW: Mobile Datenerfassung Android mit Firebird Server
 
ja so langsam kommt da etwas Licht ins Dunkel.

die Überlegung war noch, das mobile Gerät direkt als Client mit der stationären Firebird-Datenbank anzubinden.

Davon wird aber ja auch an verschiedenen Stellen wegen Sicherheit und der Geschwindigkeit der Übertragung
abgeraten.

Also werden wir uns wohl für eine REST-API entscheiden.

Frickler 12. Jan 2023 12:49

AW: Mobile Datenerfassung Android mit Firebird Server
 
Wenn das nicht über eine App, sondern über eine Webseite erfolgen soll, gibt es hier ein Video vom "IBExpert" über verschiedene Möglichkeiten, das mit Firebird zu machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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