Sqlite database App aktualisieren

  • Sqlite database App aktualisieren

    Hallo Freunde :-D,

    ich hätte mal wieder ein Anliegen :)

    In meiner App habe ich eine sqlite Datenbank. Diese Datenbank ist mit verschiedene Daten (Texte, Bilder) gefüttert.

    Wenn ich die App im Appstore hochlade, möchte ich während der Laufzeit der App die Sqlite-Datenbank aktualiseren.

    einfaches Beispiel.:

    In meiner Sqlite Datenbank (App) ist eine Tabelle mit mit 2 Spalten. Eine für den index (autoincrement) und eine wo verschiedene Texte stehen. Sagen wir ich stelle die App mit der gefüllten sqlite Datenbank online.

    Jetzt kommt aber ein neuer Datensatz hinzu. Sagen wir ich hab eine MYsql Datenbank die gleich aufgebaut ist die die sqlite von der App.

    Was ist die Beste Lösung, dass die App beim Start überprüft ob neue Daten in der MYsql datenbank vorhanden sind ? und wenn ja diese Daten kopiert werden?

    Vielen Dank im Voraus :)

    Gruß

    Benny
  • Verstehe ich nicht. Wenn die neue Datenbank nur neue Einträge dazu hat, dann kannst du doch einfach die Datei kopieren. Oder hat die neue DB die Einträge aus der alten DB nicht mehr? Das würde bedeuten, die Leute mit der alten Version haben mehr Daten als die die die App neu installieren?

    Eine genauere Erklärung wäre nicht schlecht.
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Hallo, erstmal vielen Dank für die Antwort.

    Ne ich mein, dass in meiner App eine Sqlite.Datenbank definiert ist. (sagen wir mal diese Datenbank ist leer).

    Ich möchte, dass wenn die App gestartet wird, dass die App auf eine Mysql datenbank zugreift und die Daten welche in dieser hinterlegt sind (gleiche Struktur wie die Sqlite-Datenbank der App) in die sqlite datenbank kopiert.

    Also dass die App einfach immer aktuell ist. Immer wenn in der Mysql Datenbank neue Datensätze dazukommen, soll die App eine VErbindung zu dieser herstellen und die Daten welche noch nicht in der Sqlite datenbank sind kopieren.

    Hoff ich habs jetzt besser erklärt.
  • Benney schrieb:

    Hallo, erstmal vielen Dank für die Antwort.

    Ne ich mein, dass in meiner App eine Sqlite.Datenbank definiert ist. (sagen wir mal diese Datenbank ist leer).

    Ich möchte, dass wenn die App gestartet wird, dass die App auf eine Mysql datenbank zugreift und die Daten welche in dieser hinterlegt sind (gleiche Struktur wie die Sqlite-Datenbank der App) in die sqlite datenbank kopiert.

    Also dass die App einfach immer aktuell ist. Immer wenn in der Mysql Datenbank neue Datensätze dazukommen, soll die App eine VErbindung zu dieser herstellen und die Daten welche noch nicht in der Sqlite datenbank sind kopieren.

    Hoff ich habs jetzt besser erklärt.

    Es ist sehr schwer umzusetzen, dass die Datenbank Deine App informiert dass es neue Datensätze gibt. Ich würde von daher beim Start der App eine Anfrage an die DB senden ob es neue Datensätze gibt. Wenn ja, dann herunterladen. Während die App aktiv ist, kann man die Aktualisierung ja dem User überlassen indem man einen Pull to Refresh einbaut. Machen alle anderen Apps ja auch so.

    Ob es neue Datensätze gibt erkennt man an dem Datestamp die jeder Datensatz haben sollte.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Vielen Dank :)

    Hab jetzt folgendes gemacht:

    Um es lokal zu testen hab ich jetzt mal MAMP installiert.

    Anschließend ein php File zum holen der Daten erstellt. Dieses PHP File habe ich im htdocs Ordner hinterlegt.

    über

    localhost:8888/test.php ruf ich das PHP-File auf.

    in Xcode hab ich folgendes:


    NSString *strURL = [NSString stringWithFormat:@"http://localhost:8888/test.php"];
    NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];


    NSData *strResult = [[NSData alloc] initWithData:dataURL];

    imageView.image = [UIImage imageWithData:strResult];

    Bin ich so auf der richtigen Weg bzw. kann ich so meine Daten holen? Ich greif ja nicht direkt auf die mysql-Datenbank zu.

    Gruß

    Benny
  • Soweit alles geschafft :)

    Ok, wenn ich die App jetzt im Appstore hochlade, muss ich zuvor schon irgendwo einen Server mit einer Datenbank gemietet haben (Internetdienstanbieter).

    Könnt ihr mir da einen empfehlen? Möchte jetzt nicht alle aufzeigen.

    Gruß

    Benny