executePreparedNamed method
Executes a prepared statement stmtId using named parameters.
The stmtId must come from prepareNamed. Throws AsyncError with
AsyncErrorCode.invalidParameter when named parameter metadata is
missing or required parameters are not provided.
Implementation
Future<Uint8List?> executePreparedNamed(
int stmtId,
Map<String, Object?> namedParams,
int timeoutOverrideMs,
int fetchSize, {
int? maxBufferBytes,
}) async {
final paramOrder = _namedParamOrderByStmtId[stmtId];
if (paramOrder == null) {
throw const AsyncError(
code: AsyncErrorCode.invalidParameter,
message: 'Statement was not prepared with prepareNamed',
);
}
try {
final positional = NamedParameterParser.toPositionalParams(
namedParams: namedParams,
paramNames: paramOrder,
);
final paramValues = paramValuesFromObjects(positional);
return executePrepared(
stmtId,
paramValues,
timeoutOverrideMs,
fetchSize,
maxBufferBytes: maxBufferBytes,
);
} on ParameterMissingException catch (e) {
throw AsyncError(
code: AsyncErrorCode.invalidParameter,
message: e.message,
);
}
}