public static function getInstance()
 {
     if (null === self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 function __construct($profile, $use_sqlsrv = false)
 {
     parent::__construct($this->use_sqlsrv);
     $this->profile = $profile;
     $this->use_sqlsrv = $use_sqlsrv;
     if (!$this->use_sqlsrv) {
         $db = DBMysql::getInstance();
         $db->setQuery('SET NAMES "utf8"');
     } else {
         $db = DBSqlsrv::getInstance();
         $db->setQuery('SET NAMES "utf8"');
     }
     $db->query();
 }
 public function loadDataSqlsrv()
 {
     $db = DBSqlsrv::getInstance();
     $select_fields = array();
     foreach ($this->table_fields as $table_field) {
         $select_fields[] = "`{$table_field['table']}`.`{$table_field['name']}`";
     }
     if (isset($this->join_table['name'])) {
         $select_fields[] = "`{$this->join_table['name']}`.`{$this->join_table['key_field']}`";
     }
     $query = "\n\t\t\t\tSELECT    TOP 10000 *  \n\t\t\t\tFROM  {$this->table} \n\t\t\t";
     // if(isset($this->join_table['name'])) {
     // 	$query .= "
     // 		INNER JOIN `{$this->join_table['name']}` ON
     // 			`{$this->join_table['name']}`.`{$this->join_table['join_field']}`
     // 				= `{$this->table}`.`{$this->key_field}`
     // 	";
     // }
     // if ($this->where_conditions) {
     // 	$query .= ' WHERE '.$this->getWhereStr();
     // }
     // if ($this->ordering_fields) {
     // 	$order_by_params = array();
     // 	foreach($this->ordering_fields as $field_info) {
     // 		$param = "`{$field_info['field']}`";
     // 		if(isset($field_info['is_asc']) && !$field_info['is_asc']) {
     // 			$param .= ' DESC ';
     // 		}
     // 		$order_by_params[] = $param;
     // 	}
     // 	$query .= " ORDER BY  ".implode(', ', $order_by_params);
     // }
     // if ($this->limit) {
     // 	$query .= " LIMIT {$this->limit_start}, {$this->limit} ";
     // }
     $db->setQuery($query);
     $result = $db->getArrays();
     if ($result === false) {
         $this->errors[] = $db->getError();
         return false;
     }
     $this->data = $result;
     return true;
 }