Intégration du framework SMySQL dans XCode
Salut à tous,
Je suis nouveau dans la programmation Cocoa sur MacOS X et je souhaite faire une appli qui gère mes DVD en utilisant le SGBD MySQL.
J'aimerais faire cette appli en utilisant le framework SMySQL, mais malheureusement lorsque j'intègre le framework SMySQL_static, l'appli refuse de compiler. XCode génère un message d'erreur mais ce message ne concerne pas mon appli. Visiblement il concerne le framework lui-même puisque lorsque je l'enlève, l'appli compile très bien.
J'ai essayé sans succès de me connecter à ma BDD en n'intégrant pas le framework, bien que l'appli compile très bien sans sa présence. J'ai utilisé l'exemple fournit sur le site de SMySQL dans l'objet MCPConnection.
Quelqu'un aurait il une idée pour se connecter à MySQL en utilisant Coca ou y aurait-il une solution pour se connecter via l'API C livrée avec MySQL ?
Je n'en peux plus, mon appli est bloquée et ne peux avancer tant que cette question de MySQL ne sera pas reglée.
Aidez moi SVP. :'( Je vous remercie
TMX
Je suis nouveau dans la programmation Cocoa sur MacOS X et je souhaite faire une appli qui gère mes DVD en utilisant le SGBD MySQL.
J'aimerais faire cette appli en utilisant le framework SMySQL, mais malheureusement lorsque j'intègre le framework SMySQL_static, l'appli refuse de compiler. XCode génère un message d'erreur mais ce message ne concerne pas mon appli. Visiblement il concerne le framework lui-même puisque lorsque je l'enlève, l'appli compile très bien.
J'ai essayé sans succès de me connecter à ma BDD en n'intégrant pas le framework, bien que l'appli compile très bien sans sa présence. J'ai utilisé l'exemple fournit sur le site de SMySQL dans l'objet MCPConnection.
Quelqu'un aurait il une idée pour se connecter à MySQL en utilisant Coca ou y aurait-il une solution pour se connecter via l'API C livrée avec MySQL ?
Je n'en peux plus, mon appli est bloquée et ne peux avancer tant que cette question de MySQL ne sera pas reglée.
Aidez moi SVP. :'( Je vous remercie
TMX
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
une BDD SQL pour gérer une petite DVDthèque personnelle, n'est-ce pas démesuré ?
Malheureusement, j'ai bien besoin d'une BDD puisque possédant plus de 900 Films en DVD et un nombre assez important de série.
J'avais fait une application similaire en Java utilisant une passerelle en C avec JNI malheureusement Java utilise bcp trop de ressource mémoire. C'est pour ca que j'ai décidé de la refaire en Cocoa. L'application précédente tournait sous Linux mais depuis je suis passé sur MacOS X.
C'est pour ca que j'aimerais bien avoir une réponse à mon intérrogation. Dire que c'est le dernier point qu'il me reste à regler avant de pouvoir finir mon appli et que je ne peux me connecter à cette foutue BDD. J'ai déjà réglé le point de la lecture de la config de la BDD en XML, il me reste juste ce point.
Un simple fichier XML qui sert de sauvegarde ne suffit pas ?
Par exemple, le fichier XML de ma bibliothèque iTunes fait 5 Mo pour 4000 enregistrements (x 10 champs / titre).
Pour la recherche et la rapidité, bein, si tu as arrives à faire un truc comme celui d'iTunes, c'est immédiat.
J'espère que les autres pourront t'aider demain si tu passes par mySQL. ;-)
Bon courage.
Comme tu vois, c'est vraiment un gros projet qui me tiens vraiment à coeur.
J'ai, par ailleurs, un autre projet encore plus gros celui-là : XSound (prononcé Cross-Sound) qui est un intégré consacré comme son nom l'indique, au son. Dans cet intégré, il y a un sampler (XSampler), un tracker (XTracker) et un séquenceur (XSequencer). D'autres outils viendront peut etre plus tard. Si je n'arrive pas à faire VideoManager 2, je me lancerai sur XSampler.
Je m'en sers dans PureFTPd Manager; donc en principe tu devrais pouvoir reprendre le bundle (/Application/PureFTPd Manager.app/Contents/Frameworks/SMySQL.framework) et l'integrer a ton projet.
N'oublie pas de le copie dans ton .app (ajoute un phase de copie pour cela)
Et puis apres, roulez jeunesse ;-)
#import <SMySQL/SMySQL.h>
@implementation MySQLUserManager
- (void) doQuickConnectDisconnect
{
MCPConnection *mySQLConnection;
mySQLConnection = [[MCPConnection alloc] initToHost:host
†††††††††††††††††††††††withLogin:login password:password
†††††††††††††††††††††††usingPort:[port intValue]];
[mySQLConnection close];
}
@end
http://cocoanut.net/pureftpd
J'ai essayé de compilé ton projet mais il me provoque des erreurs de compil au niveau du framework SMySQL.
Quelle version de MySQL utilises tu ?
Quelle version de SMySQL utilises tu ? Est-ce la version static, la version dynamique ou la version bundle ?
???
Je suis circonspect. Je me demande si je ne vais pas devoir abandonner l'idée d'utiliser MySQL et utiliser de simples fichiers XML.
ZeroLink: unknown symbol '_mysql_init'
VideoManager2 has exited due to signal 6 (SIGABRT).
J'essaie de compiler avec l'option "-lmysqlclient" mais rien n'y fait.
Quelqu'un aurait il une idée ?
En fait, le framework a treois version.
Je te conseille la troisième.
http://www.forbiddenbyte.co.uk/cocoa/mysql-cocoa_bundling_in_xcode.pdf
HTH
A+
Merci à tous pour votre précieuse aide. Mon projet peut enfin avancer à pleine vitesse.
Si j'ai besoin d'autre aide, je n'hésiterai pas à faire appel à vous.
Cocoa-ment votre
TMX
le framework SmySQL est pas mal, mais comment fait on pour stocker dans une base mySQL des données autres que du texte ou des entiers, par exemple un Blob qui serait le récepteur d'une instance de NSImage.
exemple :
- (IBAction)goNow:(id)sender
{
NSImage *anImage=[NSImage alloc];
NSString *thePath=[[NSBundle mainBundle] pathForResource:@192.jpg ofType:nil];
[anImage initWithContentsOfFile:thePath];
[thePicture setImage:anImage];
NSString *theQuery=@insert into stock (ID_ID,Jaquette) values (0,anImage);
theRes = [connection queryString:@insert into stock (ID_ID,Jaquette) values (0,];anImage)"];
[anImage release];
}
cela ne fonctionne pas.
Quelqu'un a t il une idée??
Merci
Donc il suffit que tu récupère la "représentation" de ton image par :
Ensuite, tu "insert" ce NSData dans la colonne de type blob dans ta table.
Pour récupérer l'image après un "select", tu récupères le blob sous forme de NSData puis tu fais :
Je ne sais pas si ça va marcher... De toute façon, il est temps pour moi de tester ce framework, alors je te tiens au courant.
.