retour page d'accueil    
    La cartographie intuitive et intelligente

 Prestations
    Produits
Galerie
Réalisations
Projet type
Services

 À vous de jouer
    France découverte
Collez vos données
Conservez vos projets
Echangez : TJS/WMS
 
 Caractéristiques
    Géoclip, c'est quoi ?
Fluidité de l'interface
Richesse du contenu
Variété des thèmes
 Le dessous
 des cartes
    Du SIG vers le web
Zooms, sélections...
Accès bases de données
Modes de représentation
Flash, SVG et les autres

 Ressources
    Sites et forums
Référents

 Qui sommes-nous ?
    Équipe
Partenaires
Clients
 


Le dessous des cartes >Accès aux bases de données

Comment gérer l'envoi de requêtes vers une base de données ?
 

Flash et SVG savent gérer de façon souple et transparente leurs besoins de communication avec une base de données. Les éléments qui suivent concernent plus spécifiquement Flash, qui dispose d'objets dédiés de gestion des données distantes très puissants.

On appelle dans tous les cas une page de script écrite dans un langage que le serveur comprend (ASP, PHP, JSP...), en lui passant des paramètres. Exemple de page appelée : data.php?dept=12&var1=pop2099&var2=poptot99

Cette page comprend typiquement des instructions de connection à la base de données et construit une requête SQL à partir des paramètres qu'elle reçoit.

exemple en PHP :
$connection = mysql_connect(SERVEUR,NOM,PASSE) or die("connection impossible à la base.");
$data =mysql_select_db(BASE) ;
$sql="select code_com, $HTTP_GET_VARS["var1"], $HTTP_GET_VARS["var2"] from result_rp99 where dept='$HTTP_GET_VARS["dept"]' ";
$rs =mysql_query($sql) ;

Une fois la requête exécutée, il s'agit de mettre en forme le résultat et de le renvoyer vers le lecteur Flash (vers la carte). On distinguera deux cas de figure :
 le résultat est transmis sous forme de fichier texte : il se présente au format url-encoded (d1=12&d2=45&d3=67...) ou xml. L'idéal consiste à pouvoir le compresser automatiquement avec ZLIB et les fonctions PHP
ob_start("ob_gzhandler") et ob_end_flush() ; il est ainsi, si le navigateur client prend en charge la décompression, compressé par le serveur avant transmission au poste client ;
 le résultat est transmis sous forme de fichier SWF, c'est à dire en binaire, idéalement de surcroît compressé avec la ZLIB : c'est le format de loin le plus compact parmi les technologies existantes. Il faut alors utiliser, avant compression, des fonctions d'écriture au format swf (fonctions perso à partir des spécifications du format SWF, ou fonctions de la librairie PHP Ming) ;

Flash gère la réception des données au format texte via les fonctions loadVars() ou loadXml(), au format SWF via la fonction loadMovie(). Les données sont chargées dans un objet indépendant. Mieux encore, la progression du chargement est suivie en temps réel par la fonction getBytesLoaded(). Outre que cette info aide l'utilisateur à patienter, elle permet au programme d'attendre que le chargement soit terminé pour passer à l'étape suivante et d'éviter le déclenchement de messages d'erreur avec le lecteur SVG d'Adobe, qui se produit quand des fonctions javascript sont appelées alors que les objets ne sont pas tous chargés.

 

 

contact version française english version russian intro