callProcedure method

  1. @override
Future<MssqlExecutionResult> callProcedure(
  1. String procedure, {
  2. Object parameters = const <String, Object?>{},
  3. Set<String> outputParameters = const <String>{},
  4. MssqlQueryOptions options = MssqlQueryOptions.defaults,
  5. Duration? timeout,
  6. MssqlCancellationToken? cancellationToken,
  7. int? batchRows,
  8. int? maximumRows,
  9. int? maximumBytes,
  10. MssqlProcedureMetadata? declared,
  11. MssqlMetadataDriftPolicy driftPolicy = MssqlMetadataDriftPolicy.preferDeclared,
})

Calls a stored procedure, binding parameters from its declared metadata.

Never retried: a procedure's body is opaque to the driver.

declared is generator-supplied parameter metadata. When it is present and driftPolicy is MssqlMetadataDriftPolicy.preferDeclared, the catalog is not queried. MssqlMetadataDriftPolicy.verifyDeclared still describes (through the cache) and refuses when the two disagree.

Implementation

@override
Future<MssqlExecutionResult> callProcedure(
  String procedure, {
  Object parameters = const <String, Object?>{},
  Set<String> outputParameters = const <String>{},
  MssqlQueryOptions options = MssqlQueryOptions.defaults,
  Duration? timeout,
  MssqlCancellationToken? cancellationToken,
  int? batchRows,
  int? maximumRows,
  int? maximumBytes,
  MssqlProcedureMetadata? declared,
  MssqlMetadataDriftPolicy driftPolicy =
      MssqlMetadataDriftPolicy.preferDeclared,
}) => _watch(
  procedure,
  parameters,
  MssqlOrmQueryKind.procedure,
  () => inner.callProcedure(
    procedure,
    parameters: parameters,
    outputParameters: outputParameters,
    options: options,
    timeout: timeout,
    cancellationToken: cancellationToken,
    batchRows: batchRows,
    maximumRows: maximumRows,
    maximumBytes: maximumBytes,
    declared: declared,
    driftPolicy: driftPolicy,
  ),
  rows: _rowsOf,
  affected: (result) => result.affectedRows,
  batchRows: batchRows ?? options.batchRows,
  queryName: options.queryName,
);