execQueryParams method
Uint8List?
execQueryParams(
- int connectionId,
- String sql,
- Uint8List? params, {
- int? maxBufferBytes,
- ResultEncoding resultEncoding = ResultEncoding.rowMajor,
Executes a SQL query with binary parameters.
The connectionId must be a valid active connection.
The sql should be a parameterized SQL statement.
The params should be a binary buffer containing serialized parameters.
When maxBufferBytes is set, caps the result buffer size; otherwise
uses the package default.
Returns binary result data on success, null on failure.
Implementation
Uint8List? execQueryParams(
int connectionId,
String sql,
Uint8List? params, {
int? maxBufferBytes,
ResultEncoding resultEncoding = ResultEncoding.rowMajor,
}) {
final paramsOrEmpty =
(params == null || params.isEmpty) ? Uint8List(0) : params;
final useOptions = resultEncoding != ResultEncoding.rowMajor &&
_bindings.supportsExecQueryParamsOptions;
return _withSql(
sql,
(sqlPtr) {
return _withParamsBuffer(
paramsOrEmpty,
(paramsPtr) => callWithBuffer(
(buf, bufLen, outWritten) => useOptions
? _bindings.odbc_exec_query_params_options(
connectionId,
sqlPtr,
paramsPtr,
paramsOrEmpty.length,
resultEncoding.wireCode,
buf,
bufLen,
outWritten,
)
: _bindings.odbc_exec_query_params(
connectionId,
sqlPtr,
paramsPtr,
paramsOrEmpty.length,
buf,
bufLen,
outWritten,
),
maxSize: maxBufferBytes,
),
);
},
);
}