Mysql et ObjectiveC

Bonjour,

Après avoir parcouru un bon nombre de page sur google, j'ai installer dans usr/local/ mysql via le site mysql.

mais je ne sais pas comment lire une table mysql ? Je n'ai pas trouver d'exemple simple de d'ouverture, lecture de table.

Pourriez vous m'aidez car là  je ne sais pas quoi faire.

Bien cordialement

enzyme

ps: je ne sais pas si j'ai poster au bonne endroit, dans le cas contraire, veuillez m'excuser.

Réponses

  • NseaProtectorNseaProtector Membre
    21:32 modifié #2
    Bonjour,
    Je ne penses pas que tu ai poster au bonne endroit.
    Ensuite je ne sais pas si tu as regardé la licence de mysql ?
    Sinon, tu as postgres ou si ton application est monoposte et bien coreData fait très bien l'affaire.
    Un petit peu plus de détail sur ce que tu veux faire et se sera plus simple de t'aider.
  • muqaddarmuqaddar Administrateur
    21:32 modifié #3
    Si tu veux associer MySql à  un site web tu as posté au bon endroit.
    Si c'est pour l'associer à  une application Mac ou iPhone, tu n'es pas dans la bonne section. ;)

    Après, MySql c'est un langage avec des tas de choses à  apprendre dessus. Il y a des milliers d'exemples sur le Web.

    Donc, il faut savoir ce que tu veux faire.
  • enzyme2006enzyme2006 Membre
    21:32 modifié #4
    bonjour,

    Je voudrais lire une table à  partir de l'iphone sur un serveur php + mysql

    merci
  • sekaijinsekaijin Membre
    21:32 modifié #5
    tu peux utiliser coreData d'Apple mais ce n'est pas le plus direct

    pour ouvrir en objective-C une connexion sur un serveur MySQL tu peux utiliser
    http://mysql-cocoa.sourceforge.net/

    sinon dans MySQL tu as livré avec le code source une librairie C qui permet d'établir la connexion au serveur.
    http://dev.mysql.com/doc/refman/5.0/en/c.html

    enfin j'ai l'impression qu'il y a une petite confusion (du moins ton post me laisse cette impression)
    Une table ne peux pas être lue directement ce n'est pas l'application Cocoa qui peut lire la table c'est le serveur MySQL

    ce que peut faire ton application c'est ce connecter au serveur MySQL et interroger la base.


    maintenant en php
    il te faut un serveur MySQl un serveur Httpd et un moteur php
    Xampp par exemple est un package complet pour MacOS Windows Unix


    tu crée un site php qui contient des scripts utilisant l'API MySQL
    http://php.net/manual/en/book.mysql.php

    ces script faisant le travail dont ton application à  besoin
    il te faut les sécuriser pour éviter que quelqu'un ne vienne te polluer ta base.

    dans ton application IPhone tu appelle les URL de tes scripts


    si tu veux pas trop te casser la tête avec le php tu peux télécharger
    http://sqlmanager.net/fr/products/mysql/manager (attention App pour windows)
    dans le package te va trouver un script php (emsproxy.php)

    ce script placé sur ton serveur php sert de proxy tu n'as donc rien à  développer de ce côté là .
    mais par contre il n'est pas documenté
    en gros tu n'as qu'une url tu lui passe les commande SQL à  exécuter et il les exécute sur le serveur
    de plus il est multi serveur (il fonctionne avec MsSql, MySql PostgreSQL et oracle)


    personnellement je déconseille de déporter les accès à  la base via des scripts php ou autre
    Je fais un serveur de webservices en java ou php ou autre qui assurent le traitement métier ainsi que la persistance
    les application faisant appel a ces services.
    suivant le niveau de confidentialité et la largeur de la bande passante j'utilise SOAP REST ou JSON
    SOAP est le mode de Webservices le plus formel mais aussi gourmand en bande passante
    REST est plus simple
    JSON est le moins formel e le plus léger

    je n'hésite pas non plus à  utiliser la compression lorsque cela est possible

    cette façon de faire permet de multiplier les client sans avoir à  réécrire les traitements
    ainsi une application IPhone fera appel au même code que l'appli Cocoa ou que l'appil web

    A+JYT



  • yoannyoann Membre
    21:32 modifié #6
    dans 1261917114:

    tu peux utiliser coreData d'Apple mais ce n'est pas le plus direct


    A ma connaissance CoreData ne gère absolument pas le MySQL (au grand regret de beaucoup de développeur). Peut tu préciser ce que tu entend par "ce n'est pas le plus direct" ? As-tu une méthode pour gérer une connexion MySQL depuis CoreData ou c'est juste un mal entendu ?
  • sekaijinsekaijin Membre
    21:32 modifié #7
    Bonjour
    il existe plusieurs solution mais jamais très simple

    la première qui reviens dans les mailling list est de se taper soit même le backend
    CoreData fournit en standard le support du stockage SQLite, XML ou Binary il faut écrire les même classe pour MySQL (à  partir de SQLite c'est plus proche) pour que CoreData utilise MySQL à  la place de SQLite c'est "juste" une question d'API
    Mais ce n'est pas rien à  faire

    Je n'ai pas pour le moment connaissance de version bien avancées

    peut-être quelque chose du côté de GDB2 le package Database de GunStep

    A+JYT

  • yoannyoann Membre
    21:32 modifié #8
    Je suis curieux de savoir si un projet a réellement réussit à  faire ce qui est dit sur certaines listes de diffusion, beaucoup de monde en parle de cette solution, mais je n'ai pas vu beaucoup de projet qui essaye de les appliquer.

    A ma connaissance, le moyen le plus simple pour relié Cocoa a une BDD en réseau est de passé via un serveur d'application Java, entre autre le projet d'Andrew Lindesay : http://homepage.mac.com/andrewlindesay/le/

    En soit il est très difficile de dire "On refait le backend pour mettre du MySQL à  la place du SQLite" car contrairement à  un événement sur le file system, les BDD ne peuvent pas prévenir les clients des modifications alors même que c'est l'intérêt de CoreData et des bindings (et donc avoir une interface a jour facilement et en temps réel)
  • sekaijinsekaijin Membre
    21:32 modifié #9
    oui je ne sais si un projet est suffisamment avancé dans ce sens. j'ai mis le "juste" entre " pour cela.

    la doc d'apple prévois bien de dériver les atomicStorage mais pas les support de type SQLite
    l'api n'est donc pas documenté en ce sens
    pour ce qui est des modifs d'attribut d'objet vers le serveur je ne vois pas comment Apple à  pu faire pour l'implémenter sur SQLite autrement que soit gérer un cache et ne faire les mise à  jour que de façon groupés soit en faisant les modifs au fil de l'eau.
    dans un cas comme dans l'autre en SQLite il s'agit d'un Update
    de plus SQLite ne gère pas l'accès simultané à  une base les événements filesystem ne servent donc pas dans cette affaire

    Je pense que quelque soit l'objet à  partir du moment ou plusieurs client doivent accéder aux mêmes fonctionnalité sur les mêmes données il vaux mieux en faire des webservices ainsi tous client à  un accès unifié à  la ressources quelque soit la téchno du client

    A+JYT
  • yoannyoann Membre
    21:32 modifié #10
    On est d'accord, pour l'accès multiple via le réseau c'est mieux par web service

    Pour ce qui est de l'accès multiple à  une fichier CoreData ça marche, c'est pas explicite mais l'API a les fonctionnalité pour, en gros via un partage AFP tu partage l'accès au fichier et c'est la que rentre en jeux le file system, tu observe les modif sur ton dossier pour faire un refresh de CoreData. En soit l'API a tout ce qu'il faut pour gérer ce genre d'utilisation même si c'est pas trop utilisé.
  • CeetixCeetix Membre
    21:32 modifié #11
    Je vais participé au post mais de manière moins poussée. Moi pour une app iPhone j'ai besoin de retirer des données sur une base MySQL sur le web. J'ai donc créé un fichier XML avec php qui contient toute les données que je veux et ensuite je le parse avec iPhone. Il doit y avoir une meilleur solution non? Le soucis c'est que je trouve la doc pas super pour ce genre de communication...
  • yoannyoann Membre
    21:32 modifié #12
    dans 1263043525:

    Je vais participé au post mais de manière moins poussée. Moi pour une app iPhone j'ai besoin de retirer des données sur une base MySQL sur le web. J'ai donc créé un fichier XML avec php qui contient toute les données que je veux et ensuite je le parse avec iPhone. Il doit y avoir une meilleur solution non? Le soucis c'est que je trouve la doc pas super pour ce genre de communication...


    C'est la bonne manière de faire, si tu veux en savoir plus ça s'appel du SOAP, tu passe par du http pour contacter un serveur, tu lui passe des arguments en post éventuellement et tu récupère le résultat en XML
  • CeetixCeetix Membre
    21:32 modifié #13
    Ok merci Yoann je vais voir ça le SOAP .
  • JekarJekar Membre
    21:32 modifié #14
    Ou y a le JSON :)
    Voir mes tutos  ;)
  • AliGatorAliGator Membre, Modérateur
    21:32 modifié #15
    Je plussoie le JSON, à  privilégier quand on travaille sur iPhone, d'une part car il est moins consommateur en bande passante que le XML, d'autre part parce qu'il est plus simple à  parser en Objective-C (pour le XML on a qu'un parseur SAX, pas toujours évident d'exploiter la réponse dans ce genre de cas où l'on a plutôt tendance à  raisonner en DOM et à  vouloir avoir une structure complète représentant notre objet retourné plutôt que le parser au fur et à  mesure)
Connectez-vous ou Inscrivez-vous pour répondre.