استعلامات البيانات

تصف هذه الصفحة كيفية إرسال طلب بحث إلى مصدر بيانات يتوافق مع بروتوكول مصدر بيانات "أدوات الرسم البياني".

المحتويات

نظرة عامة

مصدر البيانات هو خدمة ويب تدعم بروتوكول مصدر بيانات أدوات الرسم البياني. يمكنك إرسال طلب بحث SQL إلى مصدر بيانات، وستتلقّى في جدول البيانات جدول بيانات يتضمّن المعلومات المناسبة. من بين أمثلة مصادر البيانات جداول بيانات Google وSalesForce.

إرسال طلب

لإرسال طلب:

  1. إنشاء مثيل لكائن طلب البحث باستخدام عنوان URL لمصدر البيانات. يجب أن يشير عنوان URL إلى البيانات المطلوبة في بنية يفهمها مصدر البيانات هذا.
  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.
  ...
}

إذا كنت ترسل طلبك من داخل "برمجة التطبيقات"، تأكَّد من استخدام وضع IFRAME.

معالجة الرد

سيتم استدعاء دالة معالج الاستجابة عند عودة الطلب. المعلمة التي تم تمريرها إلى دالة معالج الاستجابة من النوع google.visibleization.QueryResponse. إذا كان الطلب ناجحًا، تحتوي الاستجابة على جدول بيانات (الفئة google.visualization.DataTable). إذا تعذّر الطلب، ستحتوي الاستجابة على معلومات حول الخطأ، ولا تحتوي على DataTable.

يجب أن يُجري معالج الاستجابة ما يلي:

  1. تحقَّق مما إذا كان الطلب ناجحًا أم لا من خلال الاتصال بالرقم response.isError(). ولن تحتاج إلى عرض أي رسائل خطأ للمستخدم، وستعرض مكتبة التمثيل البصري رسالة خطأ في الحاوية <div>. ولكن إذا كنت تريد معالجة الأخطاء يدويًا، يمكنك استخدام الفئة goog.visualization.errors لعرض رسائل مخصّصة (راجع مثال التفاف طلب البحث كمثال على معالجة الأخطاء المخصّصة).
  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 (قيم مفصولة بفواصل)، أمامك خياران. يمكنك إما تحويل بيانات CSV يدويًا إلى تنسيق جدول بيانات مخططات Google، أو وضع ملف CSV على خادم الويب الذي يعرض الرسم البياني، وإجراء طلب بحث عنه باستخدام الأسلوب الموجود في هذه الصفحة.

المزيد من المعلومات