MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Hallo Forum,

    wie Ihr seht, ist dies meine erste Nachricht hier. Ich komme ursprünglich aus der PHP-Entwicklung und beschäftige mich seit einigen Jahren sporadisch mit Cocoa und Obj-C, richtig produktiv war ich allerdings nie. Dieses Forum habe ich auch tatsächlich erst vor einigen Wochen entdeckt, bis dahin dachte ich, diese Themen werden ausschließlich in Englisch diskutiert. osxentwicklerforum.de finde ich eine sehr gute Idee, denn auch wenn man gut Englisch spricht, lassen sich schwierige oder neue Themen in der Muttersprache doch besser verstehen.

    Jetzt aber zum Thema: Gibt es einen verbreiteten und anerkannten Weg, MySQL via Objective-C anzusprechen? Mir sind bisher folgende Möglichkeiten bekannt:
    1. Direkt die MySQL-C-API einbinden und Queries etc. per C absetzen.
    2. Ein Wrapper-Framework für die C-API schreiben. (Da gab es doch mal MCPKit, scheint allerdings nicht mehr gepflegt zu werden.)
    3. ODBC, davon habe ich allerdings so ziemlich überhaupt keine Ahnung, außer dass die Performance nicht die Beste sein soll.

    Ich bin doch sicher nicht der Erste, der auf eine MySQL-Datenbank zugreifen will!? Über Hinweise etc. (speziell in Richtung ODBC & Cocoa) wäre ich sehr dankbar.

    Vielen Dank
    Christoph

    [Nachtrag: Die Anzahl der Postings wird ja zum Glück gar nicht eingeblendet. Wie viele brauche ich denn um Senior Developer zu werden?]
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Zu allererst zum Nachtrag: Who cares? (BTW: 1 Beitrag seit dem 26.04.2007)

    Also, du kannst natürlich Core Data an MySQL binden. Mutmaßlich willst du das aber richtig als Datenbank nutzen.

    Dann wäre es freilich richtig, eine API zu verwenden und die zu wrappen. Was spricht dagegen?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Na da spricht gar nichts dagegen, außer dem Umstand dass ich mich ärgern würde, wenn ich nachher feststelle, dass es A) eine bessere oder B) schon einen "fertige" Lösung gibt.

    Kennt jemand die Hintergründe zum Aus von MCPKit? Das Teil ist ja Open Source, was einem ohne Dokumentation allerdings wenig bringt (v. a. wenn ich es nicht mal schaffe auf 'nem Intel-Mac zu kompilieren).

    Grüße vom Bodensee
    Christoph
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Ich kann mir wegen so eines Missverständnisses zu Core Data sogar vorstellen, dass es nicht mehr gepflegt wird. Dass es gar nichts mehr gibt, würde mich allerdings wundern.

    Aber da wir schon beim Thema sind: Wieso willst du dich an MySQL hängen?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Wieso nicht? :P

    Im Ernst: Es geht um eine Statistik-Software. Die Daten sollen übers Web (PHP) eingegeben, mit Obj-C ausgewertet werden (verarbeite mal 1000000+ Datensätze mit PHP) und wieder übers Web ausgegeben werden.

    Gruß
    Christoph
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Ok, Drittanbindung und echtes DB-Problem. Da würde ich auch zu so etwas greifen und nicht zu Core Data.

    Leider kenn ich auch kein Framework. Sich aus einer C-API aber eine Objective-C-API zu basteln, ist nicht viel Arbeit, vor allem, wenn man auf ein bestimmtes Ziel hinauswill. Wenn es wirklich nichts mehr gibt, solltest du dich jetzt dransetzen. ;)
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Ja sicher, es handelt sich um eine echte Datenbank-Anwendung. Nur noch mal zur Auffrischung: CoraData ist nur zum alles öffnen, bisschen änderung und wieder alles speichern, oder??

    Danke
    Christoph
  • Auch wenn ich wahrscheinlich gleich gelyncht werde, warum unbedingt mit ObjC/Cocoa?

    Java bietet z.B. mit der JDBC eine sehr gute Möglichkeit auf Datenbanken zuzugreifen. Läuft auch nicht nur unter OS X.

    Cocoa hat's halt noch nicht so mit einer einheitlichen Datenbank-API...
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Hallo,

    das ist das erwähnte MCPKit, welches aber seit geraumer Zeit nicht mehr gewartet wird und eben schlecht bis überhaupt nicht gewartet wird.

    Java nehme ich nicht weil ich einmal in meinem Leben so ein cooles Cocoa-Programm machen will. Nein, es muss wie gesagt ziemlich flott sein, da hab ich von Java anderes in Erinnerung. Objective-C zusammen mit C flitzt da schon ein bisschen besser.

    Gruß
    Christoph
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Also, der Erste bist Du sicher nicht, Wunschlisten dazu finden sich überall. Das Problem ist, dass Apple die Konkurrenz im eigenen Haus hat, nämlich WebObjects und EOF. WO gibt es nur noch unter Java.
    Original von ccll1
    Java nehme ich nicht weil ich einmal in meinem Leben so ein cooles Cocoa-Programm machen will. Nein, es muss wie gesagt ziemlich flott sein, da hab ich von Java anderes in Erinnerung. Objective-C zusammen mit C flitzt da schon ein bisschen besser.

    Coole Programme unter Cocoa sind in der Regel Desktop-Programme. Aber niemand bremst Dich, das zu ändern.

    Core Data and EOF (the Enterprise Objects Framework that ships with WebObjects) share a common heritage, but have different goals. EOF is a Java-based framework that connects as a client to a database server. Core Data is an Objective-C-based framework designed to support desktop application development. Core Data supports a number of features not supported by EOF, and vice-versa.
    Mehr davon: Conceptual CoreData
    I would be embarrassed if they did not spy on me.
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Ich benutze um MySQL zu administrieren schon seit Jahren
    cocoaMySQL.
    Der Name sagt doch auch schon was.
    Vielleicht findet sich dort was.

    cocoamysql.sourceforge.net/


    Mich würde auch sehr eine Anbindung an mySQL interessieren.

    Ich denke da an:
    Dokumente werden in cocoa Applikation erstellt, und danach mit einem Click (mit mysql verbinden, daten rüberschieben), fürs Internet publiziert.
    Ist heute eigentlich ein Grundbedürfnis!!!

    Gruss, Oliver
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Original von ccll1Nein, es muss wie gesagt ziemlich flott sein, da hab ich von Java anderes in Erinnerung. Objective-C zusammen mit C flitzt da schon ein bisschen besser.


    Öhm *hust* Also Objective-C bzw. Cocoa ist auch nicht gerade ein Wunder an Geschwindigkeit. ;)

    Aber mach was du willst. Zum Lernen würde ich halt nicht gleich so etwas nehmen. ;)
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Hallo

    Ich habe nun mal fleissig downgeloadet, und gelesen und probiert.
    CocoaMySQL konnte ich auf Anhieb kompilieren.
    Im Code von CocoaMySQL kann man sehr gut sehen, wie das MCPKit Framework angesprochen wird.

    Was braucht es:
    Am einfachsten das compilierte Paket MCPKit:
    MCPKit_bin_3.0.1.dmg

    Hier zu finden
    prdownloads.sourceforge.net/mysql-cocoa/

    Die Anleitung wie das Framework ins Projekt kommt.
    mysql-cocoa.sourceforge.net/do…coa_bundling_in_xcode.pdf

    Achtung früher hiess das Framework noch SMySQL jetzt eben MCPKit. In der Anleitung steht noch der alte Name.

    Und jetzt erinnert man sich an PHP und schreibt in objectiv-c:

    Quellcode

    1. MCPConnection *mySQLConnection =[[MCPConnection alloc] initToHost:@"www.meinHost.ch" withLogin:@"meinLoginName" password:@"meinPasswort" usingPort:nil];

    Dann checken ob die Verbindung funktioniert:

    Quellcode

    1. [mySQLConnection isConnected]

    Dann gegebenenfalls mit Database wählen:

    Quellcode

    1. [mySQLConnection selectDB:@"MeineDatenbank"]

    Dann kann man schon query's abschicken.

    Quellcode

    1. MCPResult *theResult = [mySQLConnection queryString:@"SELECT * FROM `meineTabelle`;"];

    Abchecken ob query ok:

    Quellcode

    1. if ( ![[mySQLConnection getLastErrorMessage] isEqualToString:@""] ) {
    2. NSLog(@"Fehler %@",[mySQLConnection getLastErrorMessage]);
    3. }

    Und dann Ergebnis in Mutable Array abfüllen:

    Quellcode

    1. NSMutableArray *aResult = [NSMutableArray array];
    2. int r = [theResult numOfRows];
    3. for ( i = 0 ; i < r ; i++ ) {
    4. [theResult dataSeek:i];
    5. [aResult addObject:[theResult fetchRowAsArray]];
    6. }

    Und hier mal schnell das Ergebnis:

    Quellcode

    1. NSLog(@"%@",aResult);


    Interessant ist auch das Tool MCPModeler. (MCPModeler_bin_3.0.0.dmg)
    Damit kann man seine mySQL Datenbank anzapfen, die ganze Struktur einlesen, oder selbe welche eingeben und direkt in objective-c Klassen mit allem drum und dran konvertieren lassen.

    Gruss, Oliver
  • RE: MySQL via Objective-C ansprechen... Bin ich der Erste der das will?

    Ach, die machen das generisch? Hmmm, eine Idee.

    Willst du dazu vllt ein Tutorial für cocoading.de schreiben?

    Da fällt mir gerade ein, dass ich die Korrekturen des letzten Tutorials noch zurücksenden muss …
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?