SQLITE_ENABLE_COLUMN_METADATA

XtOfXtOf Membre

Hello,

Je suis entrain de me former sur Cocoa et je cherche à  comprendre SQLite 3.

Petite précision : c'est un programme pour Mac OSX pas pour iPhone.

J'ai donc ajouté le framework /Developer/SDKs/MacOSX10.6.sdk/usr/lib/libsqlite3.0.dylib à  mon projet.

J'arrives à  ouvrir, faire des requêtes ... mais je voulais utiliser la méthode : sqlite3_table_column_metadata( ) qui me permet, entre autre d'avoir des informations complémentaires sur les colonnes (not null, primary key, etc.).

Mon problème : XCode me renvoit un message d'erreur :

"_sqlite3_table_column_metada", referenced from:
.....
Symbol(s) not found
Collect2: Id returned 1 exit status.



Sur le site sqlite.org, il est indiqué que pour pouvoir utiliser cette méthode, la librairie sqlite3 doit avoir été compliée avec l'option -SQLITE_ENABLE_COLUMN_METADATA.

J'ai surfé sur le Web à  la recherche d'une librarie qui contient cette option, j'ai lu une centaine de posts sur le sujet... mais pas de réponse !

Quelqu'un indique qu'il faut crarrèment reprendre les sources de SQLIte et recompiler... cela me parait dangereux ?!?

Quelqu'un a-t-il déjà  rencontré ce problème ? Si oui, comment l'avez-vous corrigé ?

Je suis deseperé ...  :'(   :'(   :'(

PS : Merci de ne pas me répondre que je dois préférer CoreData car cela n'est pas ma question.

Réponses

  • CéroceCéroce Membre, Modérateur
    04:05 modifié #2
    Je pense que tu n'auras pas de réponse ici...

    Mais effectivement, il est indiqué clairement dans sqlite3.h que le symbole SQLITE_ENABLE_COLUMN_METADATA doit être défini à  la compilation. À partir de là , tu n'as que deux choix:
    - recompiler à  partir des sources (faisable, mais galère, et il faudra placer la dylib dans le bundle de ton appli).
    - te passer de cette fonction.

    Personnellement, j'aurais choisi la deuxième option, ne serait-ce que parce qu'il y a certainement une bonne raison si cette fonction n'est pas standard. Par exemple, un impact important sur les performances ou la compatibilité; il serait intéressant de connaà®tre cette raison.
  • mpergandmpergand Membre
    04:05 modifié #3
    dans 1289038472:

    Quelqu'un indique qu'il faut crarrèment reprendre les sources de SQLIte et recompiler... cela me parait dangereux ?!?

    Quelqu'un a-t-il déjà  rencontré ce problème ? Si oui, comment l'avez-vous corrigé ?


    Dans un projet, j'ai tout simplement  incorporé les fichiers .h et .c
    et je n'ai pas rencontré de problèmes particuliers.
Connectez-vous ou Inscrivez-vous pour répondre.