Quicklite vs. SQLite direkt (Newbie)

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

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • Quicklite vs. SQLite direkt (Newbie)

    Hallo,

    komme von der Linux-Ecke und wollte mich gerne mit XCode unterm Leopard an eine GUI-Anwendung wagen, die idealerweise mit einer SQL-Datenbank zusammen arbeitet.
    Die Anwendung sollte in Cocoa/Objective-C sein, ich habe mir Quicklite 1.56 gezogen, leider finde ich nirgends eine Anleitung, wie ich das in mein Projekt einbinden kann. Ferner gibt's hier im Forum auch den Tipp, dass man sqlite direkt ansprechen kann, meine Erfolge dazu sind aber eher gering, will sagen ich habe Probleme, ein CallBack zu schreiben.
    Hat jemand zufällig ein paar Beispiellinks, Source-Code-Schnipsel oder ähnliches, wie man Quicklite installiert oder wenigstens direkt mit der sqlite-Lib arbeitet?

    Ich habe schon gegoogelt nach den möglichsten und unmöglichsten Kombinationen...

    Danke schon mal im Voraus für jede Hilfe!

    Matthias
  • beides aht seine vor- und nachteile:

    sqlite ist in 10.4 und 10.5 bereits mit dabei (auf 10.5 ist es version 3.4.0). Wenn man ein programm will, welches auch unter < 10.4 funktioniert dann verwendet man am besten sqlite von sqlite.org. Hat auch den vorteil dass es einige befehle mehr hat. Zb das "IF EXISTST" beim erstellen oder löschen von tabellen. hat aber auch den nachteil dass es zb keine datenbanken von netzwerk-volumes laden kann. Die von apple modifizierte variante kann das jedoch.

    hier sample direkt von sqlite.org:


    C-Quellcode

    1. #include <stdio.h>
    2. #include <sqlite3.h>
    3. static int callback(void *NotUsed, int argc, char **argv, char **azColName){
    4. int i;
    5. for(i=0; i<argc; i++){
    6. printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
    7. }
    8. printf("\n");
    9. return 0;
    10. }
    11. int main(int argc, char **argv){
    12. sqlite3 *db;
    13. char *zErrMsg = 0;
    14. int rc;
    15. if( argc!=3 ){
    16. fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
    17. exit(1);
    18. }
    19. rc = sqlite3_open(argv[1], &db);
    20. if( rc ){
    21. fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
    22. sqlite3_close(db);
    23. exit(1);
    24. }
    25. rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
    26. if( rc!=SQLITE_OK ){
    27. fprintf(stderr, "SQL error: %s\n", zErrMsg);
    28. sqlite3_free(zErrMsg);
    29. }
    30. sqlite3_close(db);
    31. return 0;
    32. }
    Alles anzeigen
  • Hallo zusammen,

    erstmal vielen Dank an dieser Stelle für Eure Antworten.

    Klaro hab ich auf sqlite.org geschaut und auch das Beispiel durchexerziert. Ich habe halt folgendes Problem:
    Aus der SQLite-Db sollen für eine Eingabemaske dynamisch Werte kommen, die ich dann bspw. in einem NSPopUpButton einsetze, sprich es sollte in Cocoa mit Objective-C laufen. Da man ja C-Code problemlos in OC einbinden kann, habe ich versuch, das Beispiel dort zu integrieren, bin auch soweit gekommen, dass ich die sqlite3.h eingebunden habe und mit -lsqlite3 linken konnte. Beim Öffnen einer DB erhalte ich aber immer nur den Rückgabewert "0", egal, ob das DB-File an dem Pfad existiert oder nicht. Von der Integration des Call-Back mal ganz zu schweigen.
    Bei CoreData hab ich auch schon gesucht, aber bin noch nicht so richtig fündig geworden. Vielleicht wird's ja noch ;)