count method

Future<int> count()

Implementation

Future<int> count() async {
  _ensureNotConsumed();
  final sb = StringBuffer('SELECT COUNT(*) FROM ${_quoteId(_table)}');
  if (_whereClauses.isNotEmpty) sb.write(' WHERE ${_joinConditions()}');
  final raw = await AppAmbitSdkFlutterPlatform.instance
      .dbExecute(sb.toString(), _whereParams.isEmpty ? null : List.of(_whereParams));
  final result = DbResult.fromMap(raw);
  if (result.hasError) throw StateError(result.error!);
  if (result.rows.isEmpty) return 0;
  final val = result.rows.first.firstOrNull;
  if (val == null) return 0;
  if (val is int) return val;
  return int.tryParse(val.toString()) ?? 0;
}