Datenabfragen

Auf dieser Seite wird beschrieben, wie Sie eine Abfrage an eine Datenquelle senden, die das Datenquellenprotokoll von Chart Tools unterstützt.

Inhalt

Überblick

Eine Datenquelle ist ein Webdienst, der das Datenquellenprotokoll von Chart Tools unterstützt. Wenn Sie eine SQL-Abfrage an eine Datenquelle senden, erhalten Sie eine DataTable mit den entsprechenden Informationen. Einige Beispiele für Datenquellen sind Google Tabellen und SalesForce.

Anfrage senden

So senden Sie eine Anfrage:

  1. Instanziieren Sie ein Query-Objekt mit der URL Ihrer Datenquelle. Die URL sollte in einer Syntax angeben, die von dieser Datenquelle verstanden wird, welche Daten angefordert werden.
  2. Optional können Sie Anfrageoptionen wie das Senden einer Methode als optionalen zweiten Parameter im Query-Objektkonstruktor angeben. Weitere Informationen finden Sie im opt_options-Parameter des Abfragekonstruktors:
  3. Fügen Sie optional einen Abfragesprachenstring hinzu, um die Ergebnisse zu sortieren oder zu filtern, und senden Sie dann die Anfrage. Datenquellen sind nicht erforderlich, um die Abfragesprache für Chart Tools-Datenquellen zu unterstützen. Wenn die Datenquelle die Abfragesprache nicht unterstützt, wird der SQL-Abfragestring ignoriert, aber dennoch ein DataTable zurückgegeben. Die Abfragesprache ist eine Variante der SQL-Sprache. Die vollständige Syntax der Abfragesprache finden Sie hier.
  4. Senden Sie die Abfrage und geben Sie dabei einen Callback-Handler an, der beim Empfang der Antwort aufgerufen wird. Einzelheiten finden Sie im nächsten Abschnitt.

Hier ist ein Beispiel für das Senden einer Anfrage nach Daten in einem Zellenbereich einer Google-Tabelle. Wie Sie die URL für eine Google-Tabelle abrufen, erfahren Sie hier:

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.
  ...
}

Wenn Sie Ihre Anfrage über Apps Script senden, verwenden Sie den IFRAME-Modus.

Antwort verarbeiten

Die Antwort-Handler-Funktion wird aufgerufen, wenn die Anfrage zurückgegeben wird. Der Parameter, der an die Antwort-Handler-Funktion übergeben wird, hat den Typ google.visualization.QueryResponse. Wenn die Anfrage erfolgreich war, enthält die Antwort eine Datentabelle (Klasse google.visualization.DataTable). Wenn die Anfrage fehlgeschlagen ist, enthält die Antwort Informationen zum Fehler und kein DataTable.

Der Antwort-Handler sollte Folgendes tun:

  1. Prüfen Sie, ob die Anfrage erfolgreich war oder fehlgeschlagen ist. Rufen Sie dazu response.isError() auf. Sie müssen dem Nutzer keine Fehlermeldungen anzeigen. Die Visualisierungsbibliothek zeigt eine Fehlermeldung in Ihrem Container <div> an. Wenn Sie Fehler jedoch manuell verarbeiten möchten, können Sie die Klasse goog.visualization.errors verwenden, um benutzerdefinierte Nachrichten anzuzeigen. Ein Beispiel für eine benutzerdefinierte Fehlerbehandlung finden Sie im Beispiel für Abfrage-Wrapper.
  2. Wenn die Anfrage erfolgreich war, enthält die Antwort ein DataTable-Objekt, das Sie durch Aufrufen von getDataTable() abrufen können. Übergeben Sie sie an Ihr Diagramm.

Der folgende Code zeigt, wie die vorherige Anfrage zum Zeichnen eines Kreisdiagramms verarbeitet wird:

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});
}

CSV-Dateien lesen

Wenn Sie ein Diagramm aus CSV-Daten (kommagetrennte Werte) erstellen möchten, haben Sie zwei Möglichkeiten. Konvertieren Sie die CSV-Daten entweder manuell in das Google Charts-Datentabellenformat oder speichern Sie die CSV-Datei auf dem Webserver, auf dem das Diagramm bereitgestellt wird, und fragen Sie sie mit der Technik auf dieser Seite ab.

Weitere Informationen