static function get($table, $order, $limit, $start)
 {
     $return = new DataObjectSet();
     $result = DB::query(DBP_SQLDialect::select('*', $table, null, $order, $limit, $start));
     foreach ($result as $r) {
         $rec = new DBP_Record();
         $rec->id = $r['ID'];
         $rec->table = $table;
         $rec->data = $r;
         $return->push($rec);
     }
     return $return;
 }
 function Pagination()
 {
     $start = (int) $this->requestVar('start');
     $total = DB::query(DBP_SQLDialect::select('COUNT(*)', $this->Name))->value();
     $end = $start + DatabaseBrowser::$records_per_page - 1 > $total - 1 ? $total - 1 : $start + DatabaseBrowser::$records_per_page - 1;
     $pagination = array('total' => $total, 'start' => $start, 'length' => DatabaseBrowser::$records_per_page, 'end' => $end, 'orderby' => $this->requestVar('orderby'), 'orderdir' => $this->requestVar('orderdir'));
     if ($start > 0) {
         $pagination['firstlink'] = 'start=0';
         $pagination['prevlink'] = 'start=' . ($start - DatabaseBrowser::$records_per_page);
     }
     if (isset($pagination['prevlink']) && $pagination['prevlink'] < 0) {
         $pagination['prevlink'] = 'start=0';
     }
     if ($start + DatabaseBrowser::$records_per_page < $pagination['total']) {
         $pagination['nextlink'] = 'start=' . ($start + DatabaseBrowser::$records_per_page);
         $pagination['lastlink'] = 'start=' . floor(($pagination['total'] - 1) / DatabaseBrowser::$records_per_page) * DatabaseBrowser::$records_per_page;
     }
     return new ArrayData($pagination);
 }