หน้านี้จะอธิบายวิธีส่งคำค้นหาไปยังแหล่งข้อมูลที่รองรับโปรโตคอลแหล่งข้อมูลของเครื่องมือแผนภูมิ
เนื้อหา
ภาพรวม
แหล่งข้อมูลคือบริการบนเว็บที่รองรับโปรโตคอลแหล่งข้อมูลของเครื่องมือแผนภูมิ คุณสามารถส่งการค้นหา SQL ไปยังแหล่งข้อมูล แล้วคุณจะได้รับ DataTable พร้อมข้อมูลที่เหมาะสมในการตอบสนอง ตัวอย่างบางส่วนของแหล่งข้อมูล ได้แก่ Google สเปรดชีตและ SalesForce
การส่งคำขอ
วิธีส่งคำขอ
- สร้างอินสแตนซ์ออบเจ็กต์การค้นหาด้วย URL ของแหล่งข้อมูล URL ควรระบุว่ามีการขอข้อมูลใดในรูปแบบไวยากรณ์ที่แหล่งข้อมูลนั้นเข้าใจ
-
(ไม่บังคับ) ระบุตัวเลือกคำขอ เช่น วิธีการส่งเป็นพารามิเตอร์ที่ 2 ที่ไม่บังคับในเครื่องมือสร้างออบเจ็กต์
Query
(ดูรายละเอียดในพารามิเตอร์opt_options
ของตัวสร้างการค้นหา) -
(ไม่บังคับ) เพิ่มสตริงภาษาของการค้นหาเพื่อจัดเรียงหรือกรองผลลัพธ์ แล้วส่งคำขอ ไม่จำเป็นต้องใช้แหล่งข้อมูลเพื่อรองรับภาษาสำหรับคำค้นหาแหล่งข้อมูลของเครื่องมือแผนภูมิ หากแหล่งข้อมูลไม่รองรับภาษาที่ใช้ค้นหา ก็จะไม่สนใจสตริงการค้นหา SQL แต่ยังคงแสดงผล
DataTable
ภาษาที่ใช้ค้นหาเป็นตัวแปรของภาษา SQL โปรดอ่านไวยากรณ์ภาษาของคำค้นหาที่นี่ฉบับเต็ม - ส่งคำขอโดยระบุเครื่องจัดการ Callback ที่จะเรียกใช้เมื่อได้รับการตอบกลับ โปรดดูรายละเอียดที่หัวข้อถัดไป
ต่อไปนี้คือตัวอย่างการส่งคำขอข้อมูลในช่วงเซลล์ของสเปรดชีต Google หากต้องการดูวิธีรับ URL สำหรับสเปรดชีตของ Google โปรดดูที่นี่
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. ... }
หากส่งคำถามจากภายใน Apps Script โปรดใช้โหมด IFRAME
การประมวลผลคำตอบ
ระบบจะเรียกฟังก์ชันตัวแฮนเดิลการตอบกลับของคุณเมื่อคำขอแสดงผล พารามิเตอร์ที่ส่งผ่านในฟังก์ชันเครื่องจัดการการตอบกลับเป็นประเภท google.visualization.QueryResponse
หากคำขอประสบความสำเร็จ การตอบกลับจะมีตารางข้อมูล (คลาส google.visualization.DataTable
) หากคำขอล้มเหลว การตอบกลับจะมีข้อมูลเกี่ยวกับข้อผิดพลาด ไม่ใช่ DataTable
เครื่องจัดการการตอบสนองควรดำเนินการดังนี้
-
ตรวจสอบว่าคำขอดำเนินการสำเร็จหรือล้มเหลวโดยโทรหา
response.isError()
คุณไม่ควรแสดงข้อความแสดงข้อผิดพลาดต่อผู้ใช้ ไลบรารีการแสดงภาพจะแสดงข้อความแสดงข้อผิดพลาดในคอนเทนเนอร์<div>
อย่างไรก็ตาม หากคุณต้องการจัดการข้อผิดพลาดด้วยตนเอง คุณสามารถใช้คลาสgoog.visualization.errors
เพื่อแสดงข้อความที่กำหนดเองได้ (ดูตัวอย่าง Wrapper การค้นหาสำหรับตัวอย่างการจัดการข้อผิดพลาดที่กำหนดเอง) -
หากคำขอประสบความสำเร็จ การตอบกลับจะมี
DataTable
ที่คุณดึงข้อมูลได้โดยการเรียกใช้getDataTable()
ส่งต่อไปที่แผนภูมิของคุณ
โค้ดต่อไปนี้แสดงการจัดการคำขอวาดแผนภูมิวงกลมก่อนหน้านี้:
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
หากต้องการสร้างแผนภูมิจากข้อมูล CSV (ค่าที่คั่นด้วยคอมมา) คุณมี 2 ตัวเลือก แปลงข้อมูล CSV เป็นรูปแบบตารางข้อมูลของ Google Charts ด้วยตนเอง หรือวางไฟล์ CSV ลงในเว็บเซิร์ฟเวอร์ที่แสดงแผนภูมิ แล้วค้นหาโดยใช้เทคนิคในหน้านี้
ข้อมูลเพิ่มเติม
- ไวยากรณ์ภาษาในการค้นหา - อธิบายไวยากรณ์ของภาษาที่ใช้ในการค้นหาข้อมูล
- คลาสการค้นหา - หน้าอ้างอิงสำหรับคลาสที่รวมคำค้นหา
- คลาส QueryResponse - หน้าข้อมูลอ้างอิงสำหรับคลาสที่รวมคำตอบสำหรับการค้นหา