Un'origine dati è un servizio web che supporta il protocollo Origine dati degli strumenti del grafico. Puoi inviare una query SQL a un'origine dati e in risposta riceverai una tabella di dati compilata con le informazioni appropriate. Alcuni esempi di origini dati includono Fogli di lavoro Google e SalesForce.
Inviare una richiesta
Per inviare una richiesta:
Crea un'istanza di un oggetto Query con l'URL dell'origine dati. L'URL deve indicare i dati richiesti con una sintassi comprensibile da quell'origine dati.
Facoltativamente, puoi specificare opzioni di richiesta come il metodo di invio come secondo parametro facoltativo nel
costruttore dell'oggetto Query (per i dettagli, consulta il parametro
opt_options del costruttore di query):
Facoltativamente, aggiungi una stringa in linguaggio di query per ordinare o filtrare i risultati e quindi inviare la richiesta. Le origini dati non sono necessarie per supportare il linguaggio di query dell'origine dati di Strumenti grafici. Se l'origine dati non supporta il linguaggio di query, la stringa di query SQL verrà ignorata, ma restituirà un DataTable. Il linguaggio di query è una variante del linguaggio SQL; leggi la sintassi completa del linguaggio di query qui.
Invia la query, specificando un gestore di callback che verrà chiamato quando verrà ricevuta la risposta: vedi la sezione successiva per maggiori dettagli.
Ecco un esempio di invio di una richiesta per i dati in un intervallo di celle di un foglio di lavoro Google. Per scoprire come ottenere l'URL di un foglio di lavoro Google, visita
questa pagina:
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.
...
}
Se invii la query da Apps Script, assicurati di utilizzare la modalità IFRAME.
Elaborazione della risposta
La funzione di gestore delle risposte verrà chiamata al ritorno della richiesta. Il parametro passato alla funzione di gestore delle risposte è di tipo google.visualization.QueryResponse.
Se la richiesta ha avuto esito positivo, la risposta conterrà una tabella di dati
(classe google.visualization.DataTable). Se la richiesta non è andata a buon fine, la risposta conterrà
informazioni sull'errore e nessun elemento DataTable.
Il gestore delle risposte deve:
Controlla se la richiesta è riuscita o meno chiamando response.isError().
Non dovrebbe essere necessario mostrare all'utente messaggi di errore; la libreria di visualizzazione mostrerà un messaggio di errore nel tuo contenitore <div>. Tuttavia, se vuoi gestire manualmente gli errori, puoi utilizzare la classe goog.visualization.errors per visualizzare messaggi personalizzati (vedi Esempio di wrapper query per un esempio di gestione personalizzata degli errori).
Se la richiesta ha esito positivo, la risposta includerà un elemento DataTable che potrai
recuperare chiamando getDataTable(). Passalo al grafico.
Il codice seguente mostra la gestione della richiesta precedente di disegnare un grafico a torta:
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});
}
Leggere i file CSV
Per creare un grafico a partire da dati CSV (valori separati da virgole), hai due opzioni: Converti manualmente i dati CSV nel
formato tabella dati di Google
Charts oppure posiziona il file CSV sul server web
per la pubblicazione del grafico ed esegui una query utilizzando la tecnica descritta in questa pagina.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-07-10 UTC."],[[["\u003cp\u003eThis page explains how to send a SQL query to a Datasource, a web service supporting the Chart Tools Datasource protocol, to receive a DataTable with the requested data.\u003c/p\u003e\n"],["\u003cp\u003eYou can use a Query object to send a request with optional parameters for sending method and a query language string for filtering data, receiving a response handled by a callback function.\u003c/p\u003e\n"],["\u003cp\u003eThe response handler checks for errors and, if successful, retrieves the DataTable from the QueryResponse for use in visualizations like charts.\u003c/p\u003e\n"],["\u003cp\u003eCSV data can be either manually converted to Google Charts datatable format or placed on a web server and queried using the techniques described on the page.\u003c/p\u003e\n"],["\u003cp\u003eMore detailed information on query language syntax, the Query class, and the QueryResponse class can be found via provided links.\u003c/p\u003e\n"]]],[],null,["# Data Queries\n\nThis page describes how to send a query to a data source that supports the Chart Tools Datasource\nprotocol.\n\nContents\n--------\n\n1. [Overview](#overview)\n2. [Sending a request](#Sending_a_Query)\n3. [Processing the response](#Processing_the_Query_Response)\n4. [Reading CSV files](#csv)\n5. [More information](#moreinfo)\n\nOverview\n--------\n\n\nA Datasource is a web service that supports the Chart Tools Datasource protocol. You can send a\nSQL query to a Datasource, and in response you will receive a DataTable populated with the\nappropriate information. Some examples of Datasources include\n[Google Spreadsheets](/chart/interactive/docs/spreadsheets) and SalesForce.\n\nSending a request\n-----------------\n\n**To send a request:**\n\n1. Instantiate a [Query](/chart/interactive/docs/reference#Query) object with the URL of your Datasource. The URL should indicate what data is being requested, in a syntax understood by that data source.\n2. Optionally specify request options such as sending method as an optional second parameter in the `Query` object constructor (see the Query constructor's [`opt_options`](/chart/interactive/docs/reference#Query) parameter for details):\n3. Optionally add a [query language string](/chart/interactive/docs/querylanguage) to sort or filter the results, and then send the request. Datasources are not required to support the Chart Tools Datasource query language. If the Datasource does not support the query language, it will ignore the SQL query string, but still return a `DataTable`. The query language is a SQL language variant; read the full [query language syntax here](/chart/interactive/docs/querylanguage).\n4. Send the query, specifying a callback handler that will be called when the response is received: see next section for details.\n\n\nHere's an example of sending a request for data in a Google Spreadsheet cell range; to learn how\nto get the URL for a Google Spreadsheet, see\n[here](/chart/interactive/docs/spreadsheets#Google_Spreadsheets_as_a_Data_Source): \n\n```gdscript\nfunction initialize() {\n var opts = {sendMethod: 'auto'};\n // Replace the data source URL on next line with your data source URL.\n var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);\n\n // Optional request to return only column C and the sum of column B, grouped by C members.\n query.setQuery('select C, sum(B) group by C');\n\n // Send the query with a callback function.\n query.send(handleQueryResponse);\n}\n\nfunction handleQueryResponse(response) {\n // Called when the query response is returned.\n ...\n}\n```\n\nIf you are sending your query from within Apps Script, be sure to use [`IFRAME` mode](/apps-script/reference/html/sandbox-mode).\n\nProcessing the response\n-----------------------\n\n\nYour response handler function will be called when the request returns. The parameter passed in\nto your response handler function is of type\n[google.visualization.QueryResponse](/chart/interactive/docs/reference#QueryResponse).\nIf the request was successful, the response contains a data table\n(class `google.visualization.DataTable`). If the request failed, the response contains\ninformation about the error, and no `DataTable`.\n\n**Your response handler should do the following:**\n\n1. Check whether the request succeeded or failed by calling `response.isError()`. You shouldn't need to display any error messages to the user; the Visualization library will display an error message for you in your container `\u003cdiv\u003e`. However, if you do want to handle errors manually, you can use the [`goog.visualization.errors`](/chart/interactive/docs/reference#errordisplay) class to display custom messages (see the [Query Wrapper Example](/chart/interactive/docs/examples#querywrapper) for an example of custom error handling).\n2. If the request succeeded, the response will include a `DataTable` that you can retrieve by calling `getDataTable()`. Pass it to your chart.\n\nThe following code demonstrates handling the previous request to draw a pie chart: \n\n```gdscript\nfunction handleQueryResponse(response) {\n\n if (response.isError()) {\n alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());\n return;\n }\n\n var data = response.getDataTable();\n var chart = new google.visualization.PieChart(document.getElementById('chart_div'));\n chart.draw(data, {width: 400, height: 240, is3D: true});\n}\n```\n\nReading CSV files\n-----------------\n\nIf you want to build a chart out of CSV (comma-separated values)\ndata, you have two choices. Either manually convert the CSV data into\nthe [Google\nCharts datatable format](/chart/interactive/docs/datatables_dataviews#creatingpopulating), or place the CSV file on the web server\nserving the chart, and query it using the technique on this page.\n\nMore information\n----------------\n\n- [Query Language Syntax](/chart/interactive/docs/querylanguage) - Describes the syntax of the language used to make data queries.\n- [Query Class](/chart/interactive/docs/reference#Query) - Reference page for the class that wraps a query.\n- [QueryResponse Class](/chart/interactive/docs/reference#QueryResponse) - Reference page for the class that wraps the response to a query."]]