constructRefreshSQL method

String constructRefreshSQL(
  1. TCustomSQLQuery query,
  2. TUpdateKind updateKind
)

Implementation

String constructRefreshSQL(TCustomSQLQuery query, TUpdateKind updateKind) {
  var result = query.refreshSQL.text.trim();
  if (result == '') {
    var where = '';
    final pf = _refreshFlags(updateKind);
    for (var i = 0; i < query.fields.count; i++) {
      final f = query.fields[i];
      if (f.providerFlags.contains(pf)) {
        if (result != '') {
          result = '$result, ';
        }
        if (f.origin != '' && f.origin != f.fieldName) {
          result = '$result${f.origin} AS ${f.fieldName}';
        } else {
          result =
              '$result${fieldNameQuoteChars[0]}${f.fieldName}${fieldNameQuoteChars[1]}';
        }
      }
      if (f.providerFlags.contains(TProviderFlag.pfInKey)) {
        if (where != '') {
          where = '$where AND ';
        }
        where =
            '$where(${fieldNameQuoteChars[0]}${f.fieldName}${fieldNameQuoteChars[1]} = :${f.fieldName})';
      }
    }
    if (where == '') {
      databaseError(SErrNoKeyFieldForRefreshClause, query);
    }
    result = 'SELECT $result FROM ${query._tableName} WHERE $where';
  }
  return result;
}