SQL ou CoreData?
Salut tout le monde !
Voilà je vais commencer une application iPhone et j'ai besoin d'une BDD.
Ma question est simple : que choisir? SQL ou CoreData (maintenant que c'est disponible pour l'iphone) ?
Et en bonus, j'aurai besoin que l'user puisse exporter des données au format Excel ou autre tableur, c'est possible à faire?
Merci
Voilà je vais commencer une application iPhone et j'ai besoin d'une BDD.
Ma question est simple : que choisir? SQL ou CoreData (maintenant que c'est disponible pour l'iphone) ?
Et en bonus, j'aurai besoin que l'user puisse exporter des données au format Excel ou autre tableur, c'est possible à faire?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
1) je crois que de toute manière CoreData s'appuie sur une base SQLite...
2) as-tu envie d'apprendre CoreData ?
Donc la vraie question est savoir si tu vas utiliser CoreData ou bien un frameWork SQL intégré à l'appli + des requêtes perso.
(ce n'est pas du trollisme, je peux défendre cette affirmation).
Admettons : tu conseille quoi comme framework SQL en remplacement de CoreData (pour une appli mac je parle, pas iPhone) ?
http://www.mobileorchard.com/iphone-sqlite-tutorials-and-libraries/
J'ai utilisé FMDatabase.
Sur ta page ils parlent de SQLite et après de librairie (FMDatabase,etc ....). Il faut donc en fait créer une BDD avec SQLIte et ensuite grâce à une librairie manier cette BDD SQLite ?
Exactement.
Tu peux le créer avec un plugin FireFox qui gère les bases SQLite, SQLite Manager (ce que j'ai fait). Ils en parlent dans un des tutoriaux.
Où tu dois pouvoir trouver phpMySQLite (ou un truc de ce genre, je sais plus le nom exact, mais ça sous-entend qu'il te faut PHP d'installé).
"man sqlite3" dans le terminal (ou en suivant mon lien) pour plus d'infos.
Le rôle de CoreData étant d'automatiser la "persistence" de l'enregistrement.
Je n'en sais rien, car je ne m'y suis pas penché. Mais déjà , pourquoi partir absolument sur un un wrapper ObjC ? Attaquer la base avec les API en C est une alternative simple et efficace.
- exporter les données sous un format plus simple, par exemple CSV.
- ou lancer Excel et s'interfacer avec lui.
Maintenant que les logiciels Microsoft utilisent des formats XML (xlsx ?), il est peut-être plus simple de les parcourir.
En pratique, la méthode du CSV est plutôt confortable. La bibliothèque standard de Python contient même un parser CSV.
J'arrive a lire dans ma base de donnée avec juste un select * from maTable .
Maintenant je veux faire du select * from maTable where monchamp = uneVariable.
J'ai donc écris ça
En faisant la trace du code j'en déduis que le while ne passe même pas une fois.
Et voici ce que le debugger affiche :
Je vois pas trop pourquoi ...
Une date bien paramétrée pour SQL ?
Exemple : 27-06-2009
Et comme ça ?
NSString *sqlStatement = [NSString stringWithFormat:@select * from historique where date = '%@';",d];
Manifestement, quelque part tu crois avoir une NSArray, et en fait tu as une NSString, ou l'inverse. Il faut rechercher ce type d'erreur dans ton code.
J'étais trop focalisé pour ma méthode et en fait elle est bonne. C'est quand j'affiche mes lignes que ça va pas. Je m'en vais régler ça ^^
J'ai donc mis :
Mais après dans la méthode je pense que ça doit changer. Je vois pas trop vers quoi me tourner pour exécuter ma requête.
DELETE FROM table WHERE ...
Et non DELETE * FROM table WHERE...
J'ai un autre soucis maintenant ....
JE veux faire du delete à un id précis.
J'ai :
Quand j'exécute ma méthode rien ne se passe, rien n'est deleté ... Ma requête est bonne pourtant non?