Requêtes de données

Cette page explique comment envoyer une requête à une source de données compatible avec le protocole de source de données Chart Tools.

Contenus

Présentation

Une source de données est un service Web compatible avec le protocole de source de données Chart Tools. Vous pouvez envoyer une requête SQL à une source de données. Vous recevrez en réponse une table de données contenant les informations appropriées. Google Sheets et SalesForce sont des exemples de sources de données.

Envoyer une requête

Pour envoyer une requête :

  1. Instanciez un objet Query avec l'URL de votre source de données. L'URL doit indiquer les données demandées, dans une syntaxe comprise par cette source de données.
  2. Vous pouvez également spécifier des options de requête telles que l'envoi de la méthode en tant que deuxième paramètre facultatif dans le constructeur d'objets Query. Pour en savoir plus, consultez le paramètre opt_options du constructeur de requête :
  3. Vous pouvez également ajouter une chaîne de langage de requête pour trier ou filtrer les résultats, puis envoyer la requête. Les sources de données ne sont pas compatibles avec le langage de requête de la source de données Chart Tools. Si la source de données n'est pas compatible avec le langage de requête, la chaîne de requête SQL est ignorée, mais elle renvoie un DataTable. Le langage de requête est une variante du langage SQL. Consultez la syntaxe complète du langage de requête ici.
  4. Envoyez la requête en spécifiant un gestionnaire de rappel qui sera appelé lorsque la réponse sera reçue. Pour en savoir plus, consultez la section suivante.

Voici un exemple d'envoi d'une demande de données dans une plage de cellules Google Sheets : pour savoir comment obtenir l'URL d'une feuille de calcul Google, cliquez ici :

function initialize() {
  var opts = {sendMethod: 'auto'};
  // Replace the data source URL on next line with your data source URL.
  var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);

  // Optional request to return only column C and the sum of column B, grouped by C members.
  query.setQuery('select C, sum(B) group by C');

  // Send the query with a callback function.
  query.send(handleQueryResponse);
}

function handleQueryResponse(response) {
  // Called when the query response is returned.
  ...
}

Si vous envoyez votre requête à partir d'Apps Script, veillez à utiliser le mode IFRAME.

Traitement de la réponse...

Votre fonction de gestionnaire de réponses sera appelée lorsque la requête sera renvoyée. Le paramètre transmis à votre fonction de gestionnaire de réponses est de type google.visualization.QueryResponse. Si la requête a abouti, la réponse contient une table de données (classe google.visualization.DataTable). Si la requête a échoué, la réponse contient des informations sur l'erreur, mais pas de DataTable.

Votre gestionnaire de réponses doit effectuer les opérations suivantes :

  1. Vérifiez si la requête a abouti ou échoué en appelant response.isError(). Vous ne devriez pas avoir à afficher de message d'erreur à l'utilisateur. La bibliothèque de visualisations affichera un message d'erreur pour vous dans votre conteneur <div>. Toutefois, si vous souhaitez gérer les erreurs manuellement, vous pouvez utiliser la classe goog.visualization.errors pour afficher des messages personnalisés. Pour consulter un exemple de gestion personnalisée des erreurs, reportez-vous à la section Exemple de wrapper de requête.
  2. Si la requête aboutit, la réponse inclut un DataTable que vous pouvez récupérer en appelant getDataTable(). Transmettez-le à votre graphique.

Le code suivant montre comment traiter la requête précédente pour dessiner un graphique à secteurs:

function handleQueryResponse(response) {

  if (response.isError()) {
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
    return;
  }

  var data = response.getDataTable();
  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, {width: 400, height: 240, is3D: true});
}

Lire des fichiers CSV

Si vous souhaitez créer un graphique à partir de données CSV (valeurs séparées par des virgules), deux options s'offrent à vous. Convertissez manuellement les données CSV au format de table des graphiques Google ou placez le fichier CSV sur le serveur Web qui diffuse le graphique, puis interrogez-le à l'aide de la technique décrite sur cette page.

En savoir plus

  • Syntaxe du langage de requête : décrit la syntaxe du langage utilisé pour effectuer des requêtes de données.
  • Query Query (Classe de requête) : page de référence de la classe qui encapsule une requête.
  • Classe QueryResponse : page de référence de la classe qui encapsule la réponse à une requête.