การค้นหาข้อมูล

หน้านี้จะอธิบายวิธีส่งคําค้นหาไปยังแหล่งข้อมูลที่รองรับโปรโตคอลแหล่งข้อมูลของแผนภูมิ

ภาพรวม

โดยแหล่งข้อมูลคือบริการบนเว็บที่รองรับโปรโตคอลแหล่งข้อมูลของแผนภูมิ คุณส่งคําค้นหา SQL ไปยังแหล่งข้อมูลได้ และคุณจะได้รับตารางข้อมูลพร้อมข้อมูลที่เหมาะสมในการตอบกลับ ตัวอย่างของแหล่งข้อมูล ได้แก่ Google สเปรดชีตและ SalesForce

การส่งคําขอ

หากต้องการส่งคําขอ ให้ทําดังนี้

  1. สร้างอินสแตนซ์ออบเจ็กต์ Query ด้วย URL ของแหล่งข้อมูล URL ควรระบุว่าข้อมูลใดที่ขอไว้ในไวยากรณ์ที่แหล่งข้อมูลนั้นเข้าใจ
  2. (ไม่บังคับ) ระบุตัวเลือกคําขอ เช่น วิธีการส่งเป็นพารามิเตอร์ที่ 2 ที่ไม่บังคับในเครื่องมือสร้างออบเจ็กต์ Query (ดูรายละเอียดจากพารามิเตอร์ opt_options ของเครื่องมือสร้างคําค้นหา)
  3. (ไม่บังคับ) เพิ่มสตริงภาษาการค้นหาเพื่อจัดเรียงหรือกรองผลการค้นหา แล้วส่งคําขอ แหล่งข้อมูลไม่จําเป็นต้องรองรับภาษาการค้นหาของเครื่องมือแผนภูมิ หากแหล่งข้อมูลไม่รองรับภาษาการค้นหา ก็จะไม่สนใจสตริงการค้นหา SQL แต่ยังคงส่ง DataTable กลับมา ภาษาของคําค้นหาคือตัวแปรภาษา SQL อ่านไวยากรณ์ของภาษาคําค้นหาที่นี่
  4. ส่งคําถามโดยระบุตัวแฮนเดิลเรียกกลับที่ระบบจะเรียกใช้เมื่อได้รับคําตอบแล้ว โปรดดูรายละเอียดในส่วนถัดไป

นี่คือตัวอย่างการส่งคําขอข้อมูลในช่วงเซลล์สเปรดชีตของ 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.
  ...
}

การประมวลผลการตอบกลับ

ระบบจะเรียกใช้ฟังก์ชันเครื่องจัดการการตอบกลับเมื่อคําขอกลับมา พารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชันเครื่องจัดการการตอบกลับเป็นประเภท google.visualization.QueryResponse หากคําขอประสบความสําเร็จ การตอบกลับจะมีตารางข้อมูล (คลาส google.visualization.DataTable) หากคําขอล้มเหลว การตอบกลับจะมีข้อมูลเกี่ยวกับข้อผิดพลาด และจะไม่มี DataTable

ตัวแฮนเดิลการตอบกลับควรทําดังนี้

  1. ตรวจสอบว่าคําขอสําเร็จหรือล้มเหลวโดยโทรหา response.isError() คุณอาจไม่จําเป็นต้องแสดงข้อความแสดงข้อผิดพลาดให้แก่ผู้ใช้ ไลบรารีการแสดงภาพจะแสดงข้อความแสดงข้อผิดพลาดสําหรับคุณในคอนเทนเนอร์ <div> แต่หากต้องการจัดการข้อผิดพลาดด้วยตนเอง ให้ใช้คลาส goog.visualization.errors เพื่อแสดงข้อความที่กําหนดเอง (ดูตัวอย่าง Wrapper การค้นหาเพื่อดูตัวอย่างการจัดการข้อผิดพลาดที่กําหนดเอง)
  2. หากคําขอประสบความสําเร็จ การตอบกลับจะมี 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 ตัวเลือกดังนี้

  • แปลงข้อมูลให้อยู่ในรูปแบบตารางข้อมูล Google Charts
  • วางไฟล์ CSV บนเว็บเซิร์ฟเวอร์ที่ให้บริการแผนภูมินี้ และค้นหาโดยใช้เทคนิคในหน้านี้

ข้อมูลเพิ่มเติม