Forums Développement Multimédia

Aller au contenu

[résolu] :  Xtra pour MySQL ✔

Director

16 réponses à ce sujet

#1 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 07 November 2011 - 01:27 AM

Bonjour!

Est-ce que quelqu'un connait un bon Xtra qui permet de contrôler une base de donnée MySQL? J'aimerais utiliser, avec mon appli director, la même BD que j'utilise présentement sur mon site web. J'ai fait quelque recherches sur le net et je ne trouve que des liens morts.

Merci beaucoup!

#2 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 07 November 2011 - 17:23 PM

Bonjour,

Je cherche toujours un Xtra (Disponible) pour intégrer MySQL à director. Voici une petite liste de ceux que j'ai trouvés mais qui ne fonctionne pas.:

- UltimateDBIO (La version complète n'est plus disponible et il n'y a pas de démo)
- DataGrip (Déjà essayé et je ne suis VRAIMENT pas satisfait. Intregation New Media (INM) n'offre plus de support)
- INM Vizion DB (INM on oubli ça...)
- XmySQL (http://www.xtra-ucd.com/ n'est plus en ligne)

J'ai trouvé DmmADO qui a l'air pas mal. Est-ce que quelqu'un a déjà travaillé avec?? J'essaie ça tout de suite.

Je prend tous les suggestion. Merci

#3 bubarnet

  • Members
  • PipPipPipPipPipPipPipPip
  • 615 messages

Posté 07 November 2011 - 17:37 PM

Où se trouve la base mySQL ? Sur un serveur distant, en local mais en passant par apache/autre ou alors en direct ?

#4 glurp

    Modérateur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 1260 messages

Posté 07 November 2011 - 20:09 PM

Salut Psykoo,

J'avais bossé avec Xmysql dans le temps, il fonctionnait super bien et était 10 fois plus rapide qu'une méthode passant par le PHP...

Si tu ne le retrouve pas, je pourrais fouiller dans mes vieux fichiers pour le retrouver.

A noter que dans mon souvenir il ne fonctionnait que sous PC

#5 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 08 November 2011 - 01:43 AM

Bonsoir! (Au Québec)

@bubarnet: La BD se trouve sur un serveur distant. Mon serveur en l'occurrence. Je crois qu'il fonctionne sous Apache. J'utilise PhpMyAdmin 3.1.4 pour mon site web et je voudrais utiliser la même BD pour que les modif soit prise en compte sur mon appli en temps réel (Web-based).

@glurp: J'aimerais bien essayer XmySQL, il y a plusieurs commentaires positifs sur le net. Pourrais-tu me l'envoyer d'une manière quelconque? Ai-je besoin d'un code d'activation ou il est gratuit? Et finalement as-tu la documentation des fonctions? L'application est dédié PC uniquement donc pas de prob côté compatibilité.

Merci beaucoup de vos réponses. J'attends le retour de Glurp.

#6 bubarnet

  • Members
  • PipPipPipPipPipPipPipPip
  • 615 messages

Posté 08 November 2011 - 13:16 PM

Si le serveur est sur une plateforme distante, pourquoi ne passes-tu pas par du php/asp/... ? Pour l'avoir déjà fait, ça marche sans problème. Bien entendu, cela implique de connaître php/asp/..., mais si c'est juste pour interroger une bdd, ça reste très simple.

#7 glurp

    Modérateur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 1260 messages

Posté 08 November 2011 - 20:29 PM

Voilà, j'ai retrouvé une copie !
[attachment=1261:XmySQL.rar]

Bon, sur Mediamacros il est sensé avoir un prix de 89$ mais en effet le site est fermé, donc à voir...
http://www.mediamacr...tem-1006687232/

Pour répondre à bubarnet, moi aussi j'utilise encore souvent des connections PHP pour communiquer avec la DB, mais la réponse prend entre 200 et 400 milliseconds alors qu'avec l'Xtra on est plutôt entre 20 et 40 !
Donc pour une appli qui a besoin d'accès fréquents, c'est super intéressant ;)


Edit :
Lien également mort sur xtrasy.com : http://www.xtrasy.co...il&xtra_id=1091

#8 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 09 November 2011 - 01:56 AM

Bonsoir!

Merci pour vos réponses.

@bubarnet: En effet c'est seulement pour interroger une BD. Le site web, construit essentiellement en php, sert à effectuer les modif uniquement. J'avais pensé passer par du php mais j'ignorais que Director le supportait... Avec un Xtra? Directement en php au travers du langage lingo? :?: C'est d’ailleurs pourquoi je cherchais un Xtra qui intègre directement MySQL, autrement j'aurais d'abord essayé les connections php.

@glurp: Merci pour le lien. Donc si je comprends bien, il préférable de sauter l'étape des connection php et de s'orienter vers l'Xtra Xmysql puisque celui-ci est plus rapide?

Merci!

#9 glurp

    Modérateur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 1260 messages

Posté 09 November 2011 - 09:27 AM

Pour le PHP, non, Director ne le reconnait pas. Il faut se programmer une petite interface en PHP qui récupère les données et les affiche, ensuite tu utilises getNetText() en Lingo pour récupérer le contenu de cette page, puis tu parse le tout ;)

Tout dépend de ce que tu veux faire, si tu n'as pas besoin d'aller vite (ex: mise à jour silencieuse en arrière plan) ou que tu préfères que le serveur se charge d'une partie du travail, utilise PHP.
Si par contre tu veux aller vite (ex: un chat ou autre), l'Xtra peut être utile.

#10 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 09 November 2011 - 21:14 PM

Bonjour,

C'est plus facile de comprendre quand on sait de quoi on parle! En faite il s'agit d'une borne interactive dédié au grand public. J'ai une base de donnée qui doit être web-based, donc éditable à partir de mon site.

Au lieu d'avoir une BD local qui s'update à tous les jours par exemple, j'aimerais mieux que l'appli interroge directement la BD mais sur le web. En utilisant MySQL, ça m'évite de passer par MS Access ou un autre gestionnaire de BD et je peux également faire les modif à partir du web sur mon site.

Donc je présume que l'Xtra sera de mise puisqu'il s'agit d'interroger la BD, une opération qui peut être faite au moins 20 fois par minute dans le cas de mon appli.

Merci beaucoup! :Hola:

Au travail!

#11 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 09 November 2011 - 21:28 PM

Rebonjour,

Petit problème il n'y a pas de documentation sur l'Xtra? :shock: Je vien de faire une petite recherche sur google et je n'ai trouvé que ça :

interface(xtra "XtraName")
-- "xtra xmysql -- version 8.5.2.r1
new object me
forget object me
-- XmySQL Xtra --
Xm_Connect object me, string Host, string User, string Password, string DefaultDB, integer Port -->integer Success
Xm_Close object me
Xm_GetError object me --> string ErrMsg
Xm_SelectDB object me, string DBName --> integer Success
Xm_Query object me, string SQL --> integer ResultSetId
Xm_FreeResult object me, integer ResultSetId --> integer Success
Xm_ExecSQL object me, string SQL --> integer Success
Xm_RowCount object me, integer ResultSetId --> integer RowsInResultSet
Xm_FetchRow object me, integer ResultSetId --> propList FieldsValue
Xm_Seek object me, integer ResultSetId, integer index --> integer Success
Xm_InsertId object me
Xm_FieldCount object me, integer ResultSetId--> integer FieldsInResult
Xm_AffectedRows object me --> integer AffectedRows

J'ai une idée comment utiliser ces fonctions mais sans exemple je risque d'en arracher!

#12 bubarnet

  • Members
  • PipPipPipPipPipPipPipPip
  • 615 messages

Posté 09 November 2011 - 21:45 PM

Je n'ai jamais utilisé d'xtras spécifiques pour ça, donc je ne peux parler que de la version php. A mon avis, fais un test sans xtra, c'est très simple à mettre en place. Comme ça, tu pourras juger sur pièce.

Le fonctionnement :
- director : faire un appel par NetID=getnettext(url.php,[#param1:valeur1,#param2:valeur2]). NetID permet d'identifier l'appel.
- serveur : il doit appeler la page url.php. Cette page reçoit les valeurs de la proplist en valeur php ($param1=valeur1; $param2=valeur2; si mes souvenirs sont bons). A partir de là, le php fait son boulot. Il faut bien comprendre que la page php doit renvoyer du texte, mais pas forcément du html. Donc une page php peut retourner un texte comme le suivant :
[#nom:"un nom tiré de la bdd",#prenom:"un prénom", ...]
Et je suppose que tu dois déjà avoir des pages php qui font tout le boulot, mais en html. Si c'est déjà le cas, il est assez facile de les adapter pour quelles renvoient du html ou du director selon un paramètre fourni à la page.
- dans director : il faut boucler sur une frame pour intercepter le message de retour. Attention, il s'agit bien de boucler sur une frame, et surtout pas dans un repeat ... end repeat, ça tournerai à l'infini. La réponse est reçu comme ça :
if netDone(NetID) then
stringResultat=netTextResult(NetID)
end if

stringResultat contient le texte "[#nom:"un nom tiré de la bdd",#prenom:"un prénom", ...]". Si le texte est correctement écrit, stringResultat peut être transformé en proplist directement utilisable, par la fonction
proplistResultat=value(stringResultat). Il faut juste faire attention aux " et ' entre director et php, comme d'habitude.

Pour ce que tu veux faire, je pense que cette méthode devrait largement suffire. Il ne faut pas oublier que internet reste lent : le plus long c'est la création et la transmission de la page résultat.

#13 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 10 November 2011 - 19:29 PM

Bonjour,

Merci pour les pistes Bubar, j'essaie ça cette après-midi. Cependant je trouve dommage qu'il y ai si peu de façon "direct" d'accéder à une bd MySQL depuis Director. Ça me chicotte un peu d'avoir besoin de faire 2 affichages, d'abord en php, ensuite en lingo. Les bd MySQL sont choses TRÈS courantes dans le secteur du web et ce depuis longtemps. Je me demande pourquoi il est si facile de trouver un Xtra de gestion de BD autre que MySQL alors qu'il est tant utilisé.

J'imagine que les milliseconde l'on sauve avec l'Xtra se retrouve justement dans le fait de ne pas utiliser php c'est exact? Logiquement, selon moi, le php n'est qu'une passerelle ici non?

Je test quand même avec GetNetText et vous redonne des nouvelles.

Merci beaucoup!

#14 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 10 November 2011 - 21:37 PM

Bonjour,

Je viens de tester le getNetText et j'ai un petit problème.

en Director(sous forme Query):

on exitFrame me
  NetID=getNetText("http://www.mondomain.com/recherche.php?value1=Bill")
  if netDone(NetID) then
    stringResultat=netTextResult(NetID)
    trace(stringResultat)
  end if
  go to 1
end
 

recherche.php:

<?php
    echo $_GET['value1'];
?>
 

en Director(Sous forme proplist):

on exitFrame me
  NetID=getNetText("http://www.mondomain.com/recherche.php", [#value1:"Bill"])
  if netDone(NetID) then
    stringResultat=netTextResult(NetID)
    trace(stringResultat)
  end if
  go to 1
end
 

recherche.php:

<?php
    echo $_REQUEST['value1'];
?>
 

Mon trace ne laisse aucune trace quand je veux passer une valeur de director vers php. Quand j'essaie par exemple :

Director:

on exitFrame me
  NetID=getNetText("http://www.mondomain.com/recherche.php")
  if netDone(NetID) then
    stringResultat=netTextResult(NetID)
    trace(stringResultat)
  end if
  go to 1
end
 

recherche.php:

<?php

    echo "Blah!";
?>
 

Comme ça le trace fonctionne. Est-ce que j'ai sauter une étape?

Merci

#15 glurp

    Modérateur

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 1260 messages

Posté 10 November 2011 - 22:22 PM

Salut Psykoo,

Je vois quand même un truc qui me chiffonne dans ton code ; tu redéfinis un netID à chaque exitframe !
Définis le dans le beginSprite et teste le dans exitframe, ça devrait fonctionner ;)

#16 bubarnet

  • Members
  • PipPipPipPipPipPipPipPip
  • 615 messages

Posté 11 November 2011 - 15:21 PM

Oulà, là faut que je me remémore mon php. De mémoire, j'utilisais REQUEST pour récupérer les valeurs. Il faut bien faire attention aux " et ', ainsi qu'aux accents. Normalement director urlencode les paramètres, mais je me souviens d'avoir quand même eu des soucis avec certains caractères. De plus je ne me préoccupais pas d'utf-8, toutes les valeurs que je passais étaient en ascii simple. Selon la taille des paramètres, tu peux utiliser postnettext à la place de getnettext.

Sinon, comme te l'a fait remarqué Glurp, il ne faut surtout pas mettre le getnettext dans la boucle, sinon tu fais un appel à chaque fois ! Si ça peux passer en local, sur le net, avec une durée de transmission assez élevée, ça va foirer.

#17 Psykoo

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 155 messages

Posté 11 November 2011 - 19:09 PM

Bonjour,

En effet! merci du rappel. Ça va faire 6 mois que j'suis plongé dans le php. Ça marche nickel maintenant. Reste à parser le tout, et voilà!



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)