executeAsyncStartParams method
int?
executeAsyncStartParams(
- int connectionId,
- String sql,
- Uint8List? params, {
- ResultEncoding resultEncoding = ResultEncoding.rowMajor,
Starts non-blocking parameterized query execution.
Returns null when API is unavailable. Returns 0 on native failure.
Implementation
int? executeAsyncStartParams(
int connectionId,
String sql,
Uint8List? params, {
ResultEncoding resultEncoding = ResultEncoding.rowMajor,
}) {
if (!_bindings.supportsAsyncExecuteParamsApi) {
return null;
}
return _withSql(
sql,
(sqlPtr) {
if (_bindings.supportsAsyncExecuteParamsOptionsApi) {
final wire = resultEncoding.wireCode;
if (params == null || params.isEmpty) {
return _bindings.odbc_execute_async_params_options(
connectionId,
sqlPtr,
ffi.nullptr.cast<ffi.Uint8>(),
0,
wire,
);
}
return _withParamsBuffer(
params,
(paramsPtr) => _bindings.odbc_execute_async_params_options(
connectionId,
sqlPtr,
paramsPtr,
params.length,
wire,
),
);
}
if (resultEncoding != ResultEncoding.rowMajor) {
return null;
}
if (params == null || params.isEmpty) {
return _bindings.odbc_execute_async_params(
connectionId,
sqlPtr,
ffi.nullptr.cast<ffi.Uint8>(),
0,
);
}
return _withParamsBuffer(
params,
(paramsPtr) => _bindings.odbc_execute_async_params(
connectionId,
sqlPtr,
paramsPtr,
params.length,
),
);
},
);
}