aus mysql Datenbank nur aktuelle Werte abrufen.

  • Antworten:3
  • Bentwortet
Bastian Seidemann
  • Forum-Beiträge: 137

06.04.2014, 13:47:07 via App

Hallo zusammen,

Ich habe eine Datenbank von der ich via JSON Daten abrufe.

Bis jetzt ist es so dass bei jeder onCreate() die kompletten Daten gezogen werden.

Meine Frage :

Wie setze ich es am besten um dass die Daten offline verfügbar gemacht werden und bei Bedarf nur die neusten Aktualisierungen heruntergeladen werden?

Vielen Dank für jede Antwort!

Lg

Antworten
Gelöschter Account
  • Forum-Beiträge: 8.735

06.04.2014, 14:37:39 via Website

Ich bin kein Android-Entwickler aber MySQL kenne ich gut und mit RPC-Abfragen mit JSON oder XML-Response arbeite ich täglich. Daher sehe ich Dein Problem recht trivial an.

Deine Datensätze besitzen hoffentlich einen Timestamp (Datum mit sekundengenauer Uhrzeit) der letzten Änderung. Ich nenne das Feld für das Beispiel `mdate` (für Modification Date). Die Clients lässt Du dessen größten, lokalen Wert abfragen. Wenn das eine SQLLite-DB ist, sollte das mit

1SELECT max(mdate) FROM table LIMIT 0,1

möglich sein.

Diesen Wert übergibst Du als Parameter in deiner Parameter-Liste an den Server und lässt diesen folgendes Statement zusammenbauen:

1SELECT * FROM table WHERE mdate > $mdate

Zusatz-Info:
MySQL bietet für die Feld-Definition die Funktion ON UPDATE CURRENT_TIMESTAMP an, so dass Du nichts für das Setzen oder Aktualisieren des Datums in die INSERT-, UPDATE- und REPLACE-Statements schreiben musst.

Ich habe keine Lust mehr auf Bastelei und widme mich lieber wieder dem Real Life. Die Idee gärte schon länger. Tschüß!


Antworten
Bastian Seidemann
  • Forum-Beiträge: 137

06.04.2014, 14:39:43 via App

Sehr gut dass ist das was ich gesucht habe!

Vielen Dank :)

Antworten
Tim F.
  • Forum-Beiträge: 2.492

06.04.2014, 14:56:27 via App

Hallo,

wenn dein Problem gelöst ist, wäre es schön, wenn du den Thread auf "beantwortet" setzt, damit andere User sehen können, dass es hier eine Lösung zu der Frage gibt.

Gruß Tim

Antworten