execute method

Future<List<Map<String, dynamic>>> execute()

Execute procedure and return results

Implementation

Future<List<Map<String, dynamic>>> execute() async {
  if (_connection == null) {
    throw StateError('Connection not set. Call setConnection() first.');
  }

  final fullName = '$schema.$name';
  final placeholders = List.generate(
    parameters.length,
    (i) => '@param$i',
  ).join(',');

  final sql = 'SELECT * FROM $fullName($placeholders)';
  final params = <String, dynamic>{};
  for (var i = 0; i < parameters.length; i++) {
    params['param$i'] = parameters[i];
  }

  final result = await _connection!.query(
    sql,
    parameters: params,
  );

  return result;
}