Na tej stronie dowiesz się, jak wysłać zapytanie do źródła danych, które obsługuje protokół źródła danych narzędzia Chart.
Przegląd
Źródło danych to usługa internetowa, która obsługuje protokół źródła danych Chart Tools. Możesz wysłać zapytanie SQL do źródła danych, a w odpowiedzi otrzymasz tabelę DataTable wypełnioną odpowiednimi informacjami. Przykłady źródeł danych to arkusze kalkulacyjne Google i Salesforce.
Wysyłanie prośby
Aby wysłać prośbę:
- Utwórz instancję obiektu Query z adresem URL źródła danych. Adres URL powinien wskazywać żądane dane w składni obsługiwanej przez to źródło danych.
 - Opcjonalnie określ opcje żądania, takie jak metoda wysyłania, jako opcjonalny drugi parametr w konstruktorze obiektów 
Query(szczegóły znajdziesz w parametrzeopt_optionskonstruktora zapytań): - Opcjonalnie dodaj ciąg języka zapytania, aby posortować lub przefiltrować wyniki, a następnie wysłać żądanie.
    Źródła danych nie są wymagane do obsługi języka zapytań w narzędziach do tworzenia wykresów źródła danych. Jeśli źródło danych nie obsługuje języka zapytania, zignoruje ciąg zapytania SQL, ale nadal zwróci wartość 
DataTable. Język zapytań to wariant języka SQL. Pełną składnię języka zapytań znajdziesz tutaj. - Wyślij zapytanie, określając moduł obsługi wywołania zwrotnego, który zostanie wywołany po otrzymaniu odpowiedzi. Szczegółowe informacje znajdziesz w następnej sekcji.
 
Oto przykład wysyłania żądania danych z zakresu komórek arkusza kalkulacyjnego Google. Aby dowiedzieć się, jak uzyskać adres URL arkusza kalkulacyjnego Google, kliknij tutaj:
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.
  ...
}
Przetwarzanie odpowiedzi
Funkcja obsługi odpowiedzi zostanie wywołana po zwróceniu żądania.
Parametr przekazywany do funkcji obsługi odpowiedzi ma typ google.visualization.QueryResponse.
Jeśli żądanie zostało zrealizowane, odpowiedź zawiera tabelę danych (klasa google.visualization.DataTable). Jeśli żądanie nie zostało zrealizowane, odpowiedź zawiera informacje o błędzie, a DataTable nie zawiera informacji o błędzie.
Moduł obsługi odpowiedzi powinien:
- Sprawdź, czy żądanie zostało wykonane poprawnie, czy nie, wywołując funkcję 
response.isError(). Nie musisz wyświetlać użytkownikowi żadnych komunikatów o błędach. Biblioteka wizualizacji wyświetli komunikat o błędzie w kontenerze<div>. Jeśli jednak chcesz naprawiać błędy ręcznie, możesz użyć klasygoog.visualization.errorsdo wyświetlania komunikatów niestandardowych (przykład niestandardowej obsługi błędów znajdziesz w przykładzie kodu zapytania). - Jeśli żądanie zostało zrealizowane, odpowiedź będzie zawierać obiekt 
DataTable, który można pobrać, wywołując funkcjęgetDataTable(). Umieść to na wykresie. 
Następujący kod ilustruje obsługę poprzedniego żądania utworzenia wykresu kołowego:
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});
}
Odczytywanie plików CSV
Jeśli chcesz utworzyć wykres na podstawie danych w formacie CSV (wartości rozdzielane przecinkami), masz 2 możliwości:
- Przekonwertuj dane na format tabeli danych z Wykresów Google
 - Umieść plik CSV na serwerze WWW, który wyświetla wykres, i wyślij do niego zapytanie, korzystając z metody podanej na tej stronie.
 
Więcej informacji
- Składnia języka zapytań – opisuje składnię języka używanego do tworzenia zapytań o dane.
 - Klasa zapytania – strona referencyjna klasy, która zawija zapytanie.
 - Klasa QueryResponse – strona referencyjna klasy, która zawija odpowiedź na zapytanie.