createQuery method

void createQuery()

Implementation

void createQuery() {
  if (isEditedQuery) {
    _selectQuery = _customSqlQuery;
    return;
  }
  final sb = StringBuffer('SELECT');
  if (areAllColumnsSelected) {
    sb.write(' *');
  } else {
    final list = <String>[];
    for (var i = 0; i < _selectColumns.keys.length; ++i) {
      if (_selectColumns.values.toList()[i]) {
        list.add(_selectColumns.keys.toList()[i]);
      }
    }
    for (var i = 0; i < list.length; ++i) {
      sb.write(' ${list[i]}');
      if (i < list.length - 1) {
        sb.write(',');
      }
    }
  }

  sb.write(' FROM $tableName');

  final sqlWhereClauses = whereClauses
      .map((item) => item.getSqlWhereClause())
      .where((item) => item.isNotEmpty)
      .toList();

  if (sqlWhereClauses.isNotEmpty) {
    sb.write(' WHERE');

    for (var i = 0; i < sqlWhereClauses.length; ++i) {
      final clause = sqlWhereClauses[i];
      sb.write(clause);
      if (i != sqlWhereClauses.length - 1) {
        sb.write(' AND');
      }
    }
  }

  if (_orderingColumn != null && _orderingColumn!.isNotEmpty) {
    sb.write(' ORDER BY $_orderingColumn');
    if (_asc) {
      sb.write(' ASC');
    } else {
      sb.write(' DESC');
    }
  }
  sb.write(' LIMIT $_limit');
  _selectQuery = sb.toString();
}