executeQueryParamBuffer method

Future<Uint8List?> executeQueryParamBuffer(
  1. int connectionId,
  2. String sql,
  3. Uint8List? paramBuffer, {
  4. int? maxBufferBytes,
  5. Duration? timeout,
  6. ResultEncoding resultEncoding = ResultEncoding.rowMajor,
})

Executes a parameterised query with a pre-serialised buffer (legacy v0 or DRT1 directed parameters).

Implementation

Future<Uint8List?> executeQueryParamBuffer(
  int connectionId,
  String sql,
  Uint8List? paramBuffer, {
  int? maxBufferBytes,
  Duration? timeout,
  ResultEncoding resultEncoding = ResultEncoding.rowMajor,
}) async {
  final bytes =
      paramBuffer == null || paramBuffer.isEmpty ? Uint8List(0) : paramBuffer;
  if (resultEncoding == ResultEncoding.rowMajor) {
    final asyncRequestId = await executeAsyncStartParams(
      connectionId,
      sql,
      bytes,
    );
    if (asyncRequestId > 0) {
      return _waitForAsyncResult(
        asyncRequestId,
        maxBufferBytes: maxBufferBytes,
        timeout: timeout,
      );
    }
  }

  _recordFallbackToBlocking(connectionId);
  return _executeQueryParamsBlocking(
    connectionId,
    sql,
    bytes,
    maxBufferBytes: maxBufferBytes,
    resultEncoding: resultEncoding,
  );
}