query method

  1. @override
Future<List<Map<String, dynamic>>> query(
  1. String sql, {
  2. Map<String, dynamic>? parameters,
})
override

Execute a query within transaction

Implementation

@override
Future<List<Map<String, dynamic>>> query(
  String sql, {
  Map<String, dynamic>? parameters,
}) async {
  _ensureActive();

  // Convert named parameters (@param) to positional (?)
  final paramList = <dynamic>[];
  var convertedSql = sql;

  if (parameters != null && parameters.isNotEmpty) {
    for (var key in parameters.keys) {
      convertedSql = convertedSql.replaceAll('@$key', '?');
      paramList.add(parameters[key]);
    }
  }

  final resultSet = _database.select(convertedSql, paramList);
  return resultSet.map((row) => Map<String, dynamic>.from(row)).toList();
}