Nesta página, descrevemos como enviar uma consulta para uma fonte de dados compatível com o protocolo da fonte de dados das ferramentas de gráficos.
Visão geral
A fonte de dados é um serviço da Web com suporte para o protocolo da fonte de dados das ferramentas de gráfico. Você pode enviar uma consulta SQL a uma fonte de dados e, em resposta, receberá uma DataTable preenchida com as informações apropriadas. Alguns exemplos de fontes de dados incluem Planilhas do Google e SalesForce.
Como enviar uma solicitação
Para enviar uma solicitação:
- Instancie um objeto Query com o URL da sua fonte de dados. O URL precisa indicar quais dados estão sendo solicitados, em uma sintaxe compreendida pela fonte de dados.
 - Também é possível especificar opções de solicitação, como o método de envio como um segundo parâmetro opcional no construtor do objeto 
Query. Consulte o parâmetroopt_optionsdo construtor de consulta para mais detalhes: - Se quiser, adicione uma string de idioma da consulta para classificar ou filtrar os resultados e enviar a solicitação.
    As fontes de dados não são necessárias para o suporte ao idioma de consulta da fonte de dados das Ferramentas de gráfico. Se a fonte de dados não for compatível com a linguagem de consulta, ela ignorará a string de consulta SQL, mas ainda retornará
    um 
DataTable. A linguagem de consulta é uma variante da linguagem SQL. Leia a sintaxe completa da linguagem de consulta aqui. - Envie a consulta especificando um gerenciador de callback que será chamado quando a resposta for recebida. Consulte a próxima seção para mais detalhes.
 
Veja um exemplo de envio de uma solicitação de dados em um intervalo de células da Planilha Google. Para saber como conseguir o URL de uma planilha do Google, clique aqui:
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.
  ...
}
Como processar a resposta
Sua função de gerenciador de respostas será chamada quando a solicitação retornar.
O parâmetro transmitido para a função do gerenciador de respostas é do tipo google.visualization.QueryResponse.
Se a solicitação for bem-sucedida, a resposta conterá uma tabela de dados (classe google.visualization.DataTable). Se a solicitação falhar, a resposta conterá informações sobre o erro e não DataTable.
Seu gerenciador de respostas precisa fazer o seguinte:
- Verifique se a solicitação foi bem-sucedida ou falhou chamando 
response.isError(). Não é necessário mostrar mensagens de erro para o usuário. A biblioteca de visualização exibe uma mensagem de erro para você no contêiner<div>. No entanto, se você quiser lidar com erros manualmente, use a classegoog.visualization.errorspara exibir mensagens personalizadas. Consulte o Exemplo de wrapper de consulta para ver um exemplo de tratamento de erros personalizado. - Se a solicitação for bem-sucedida, a resposta vai incluir um 
DataTable, que pode ser recuperado chamandogetDataTable(). Transmita-o para seu gráfico. 
O código a seguir demonstra o processamento da solicitação anterior para desenhar um gráfico de pizza:
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});
}
Como ler arquivos CSV
Se quiser criar um gráfico a partir de dados CSV (valores separados por vírgula), você tem duas opções:
- Converter os dados para o formato de tabela de dados do Google Charts
 - Coloque o arquivo CSV no servidor da Web que veicula o gráfico e consulte-o usando a técnica apresentada nesta página.
 
Mais informações
- Sintaxe da linguagem de consulta: descreve a sintaxe da linguagem usada para fazer consultas de dados.
 - Classe de consulta: página de referência da classe que encapsula uma consulta.
 - Classe QueryResponse: página de referência para a classe que une a resposta a uma consulta.