IOdbcService class abstract

Interface for ODBC service operations.

Allows decorators and alternative implementations to be used interchangeably via dependency injection.

Aggregates four narrower sub-interfaces:

New consumers are encouraged to depend on the narrowest sub-interface they need (Interface Segregation Principle). Existing code that types against IOdbcService keeps working unchanged because every member stays declared at the aggregate level.

Implemented types
Implementers
Available extensions

Constructors

IOdbcService()

Properties

events Stream<OdbcEvent>
Broadcast stream of connection-lifecycle events emitted by the runtime (connection lost, worker recovered, pool resized, etc.).
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

asyncCancel(int requestId) Future<Result<void>>
asyncFree(int requestId) Future<Result<void>>
asyncGetResult(int requestId, {int? maxBufferBytes}) Future<Result<QueryResult>>
asyncPoll(int requestId) Future<Result<int>>
beginTransaction(String connectionId, {IsolationLevel? isolationLevel, SavepointDialect? savepointDialect, TransactionAccessMode? accessMode, Duration? lockTimeout}) Future<Result<int>>
override
beginTransactionFor(Connection conn, {IsolationLevel? isolationLevel, SavepointDialect? savepointDialect, TransactionAccessMode? accessMode, Duration? lockTimeout}) Future<Result<int>>

Available on ITransactionService, provided by the ITransactionServiceConnectionOverloads extension

beginTransaction overload that accepts a Connection.
bulkInsert(String connectionId, String table, List<String> columns, List<int> dataBuffer, int rowCount) Future<Result<int>>
bulkInsertParallel(int poolId, String table, List<String> columns, List<int> dataBuffer, int rowCount, {int parallelism = 0}) Future<Result<int>>
cancelStatement(String connectionId, int stmtId) Future<Result<void>>
cancelStream(int streamId) Future<Result<void>>
catalogColumns(String connectionId, String table) Future<Result<QueryResult>>
catalogForeignKeys(String connectionId, String table) Future<Result<QueryResult>>
catalogIndexes(String connectionId, String table) Future<Result<QueryResult>>
catalogPrimaryKeys(String connectionId, String table) Future<Result<QueryResult>>
catalogTables({required String connectionId, String catalog = '', String schema = ''}) Future<Result<QueryResult>>
catalogTypeInfo(String connectionId) Future<Result<QueryResult>>
clearAllStatements() Future<Result<void>>
clearAuditEvents() Future<Result<void>>
clearMetadataCache() Future<Result<void>>
clearStatementCache() Future<Result<void>>
closeStatement(String connectionId, int stmtId) Future<Result<void>>
commitTransaction(String connectionId, int txnId) Future<Result<void>>
override
connect(String connectionString, {ConnectionOptions? options}) Future<Result<Connection>>
override
createSavepoint(String connectionId, int txnId, String name) Future<Result<void>>
detectDriver(String connectionString) Future<String?>
disconnect(String connectionId) Future<Result<void>>
override
dispose() → void
executeAsyncStart(String connectionId, String sql) Future<Result<int>>
executePrepared(String connectionId, int stmtId, List? params, StatementOptions? options) Future<Result<QueryResult>>
executePreparedNamed(String connectionId, int stmtId, Map<String, Object?> namedParams, StatementOptions? options) Future<Result<QueryResult>>
executeQuery(String sql, {List? params, String? connectionId}) Future<Result<QueryResult>>
override
executeQueryColumnar(String connectionId, String sql, {List? params}) Future<Result<TypedColumnarResult>>
Column-major opt-in variant of executeQueryParams.
override
executeQueryColumnarFor(Connection conn, String sql, {List? params}) Future<Result<TypedColumnarResult>>

Available on IQueryService, provided by the IQueryServiceConnectionOverloads extension

executeQueryColumnar overload that accepts a Connection.
executeQueryDirectedParams(String connectionId, String sql, List<DirectedParam> params) Future<Result<QueryResult>>
Like executeQueryParams for OUT / INOUT (DRT1 on the wire).
override
executeQueryFor(Connection conn, String sql, {List? params}) Future<Result<QueryResult>>

Available on IQueryService, provided by the IQueryServiceConnectionOverloads extension

executeQuery overload that accepts a Connection.
executeQueryMulti(String connectionId, String sql) Future<Result<QueryResult>>
executeQueryMultiFull(String connectionId, String sql) Future<Result<QueryResultMulti>>
executeQueryMultiParams(String connectionId, String sql, List params) Future<Result<QueryResultMulti>>
Executes a parameterised batch SQL and returns all multi-result items.
executeQueryNamed(String connectionId, String sql, Map<String, Object?> namedParams) Future<Result<QueryResult>>
override
executeQueryNamedFor(Connection conn, String sql, Map<String, Object?> namedParams) Future<Result<QueryResult>>

Available on IQueryService, provided by the IQueryServiceConnectionOverloads extension

executeQueryNamed overload that accepts a Connection.
executeQueryParams(String connectionId, String sql, List params, {ResultEncoding resultEncoding = ResultEncoding.rowMajor}) Future<Result<QueryResult>>
override
executeQueryParamsFor(Connection conn, String sql, List params, {ResultEncoding resultEncoding = ResultEncoding.rowMajor}) Future<Result<QueryResult>>

Available on IQueryService, provided by the IQueryServiceConnectionOverloads extension

executeQueryParams overload that accepts a Connection.
getAsyncWorkerPoolStats() Future<Result<AsyncWorkerPoolStats>>
getAuditEvents({int limit = 0}) Future<Result<List<Map<String, Object?>>>>
getAuditStatus() Future<Result<Map<String, Object?>>>
getConnectionDbmsInfo(String connectionId) Future<Result<DbmsInfo>>
getDriverCapabilities(String connectionString) Future<Result<Map<String, Object?>>>
override
getMetrics() Future<Result<OdbcMetrics>>
override
getPreparedStatementsMetrics() Future<Result<PreparedStatementMetrics>>
getVersion() Future<Result<Map<String, String>>>
getWorkerPoolStats() Future<AsyncWorkerPoolStats?>
Returns Dart-side worker-pool statistics when the underlying connection runs in async mode (P95 latency, fallbacks to blocking, queue depth, etc.). Returns null in sync mode where no worker pool exists.
override
initialize() Future<Result<void>>
override
isInitialized() bool
metadataCacheEnable({required int maxEntries, required int ttlSeconds}) Future<Result<void>>
metadataCacheStats() Future<Result<Map<String, Object?>>>
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
poolClose(int poolId) Future<Result<void>>
override
poolCreate(String connectionString, int maxSize, {PoolOptions? options}) Future<Result<int>>
override
poolGetConnection(int poolId) Future<Result<Connection>>
override
poolGetState(int poolId) Future<Result<PoolState>>
poolGetStateDetailed(int poolId) Future<Result<Map<String, Object?>>>
poolHealthCheck(int poolId) Future<Result<bool>>
override
poolReleaseConnection(String connectionId) Future<Result<void>>
override
poolSetSize(int poolId, int newMaxSize) Future<Result<void>>
override
prepare(String connectionId, String sql, {int timeoutMs = 0}) Future<Result<int>>
prepareNamed(String connectionId, String sql, {int timeoutMs = 0}) Future<Result<int>>
releaseSavepoint(String connectionId, int txnId, String name) Future<Result<void>>
rollbackToSavepoint(String connectionId, int txnId, String name) Future<Result<void>>
rollbackTransaction(String connectionId, int txnId) Future<Result<void>>
override
runInTransaction<T extends Object>(String connectionId, Future<Result<T>> action(int txnId), {IsolationLevel? isolationLevel, SavepointDialect? savepointDialect, TransactionAccessMode? accessMode, Duration? lockTimeout}) Future<Result<T>>
Runs action inside a transaction with automatic commit on success and rollback on any failure (returned Failure or thrown exception).
override
runInTransactionFor<T extends Object>(Connection conn, Future<Result<T>> action(int txnId), {IsolationLevel? isolationLevel, SavepointDialect? savepointDialect, TransactionAccessMode? accessMode, Duration? lockTimeout}) Future<Result<T>>

Available on ITransactionService, provided by the ITransactionServiceConnectionOverloads extension

runInTransaction overload that accepts a Connection.
runInXaTransaction<T extends Object>(String connectionId, Xid xid, Future<Result<T>> action(XaTransactionHandle xa), {bool onePhase = false}) Future<Result<T>>
Runs action inside a distributed XA / 2PC branch on connectionId.
setAuditEnabled({required bool enabled}) Future<Result<void>>
setLogLevel(int level) Future<Result<void>>
streamPollAsync(int streamId) Future<Result<int>>
streamQuery(String connectionId, String sql) Stream<Result<QueryResult>>
override
streamQueryColumnar(String connectionId, String sql) Stream<Result<TypedColumnarResult>>
Stream-shaped sibling of executeQueryColumnar. Each emitted item is a complete TypedColumnarResult (a single chunk for the named query API; multiple chunks when the underlying engine streams).
override
streamQueryColumnarFor(Connection conn, String sql) Stream<Result<TypedColumnarResult>>

Available on IQueryService, provided by the IQueryServiceConnectionOverloads extension

streamQueryColumnar overload that accepts a Connection.
streamQueryFor(Connection conn, String sql) Stream<Result<QueryResult>>

Available on IQueryService, provided by the IQueryServiceConnectionOverloads extension

streamQuery overload that accepts a Connection.
streamQueryMulti(String connectionId, String sql) Stream<Result<QueryResultMultiItem>>
Streams a multi-result batch one item at a time. New in v3.3.0 (M8).
override
streamQueryNamed(String connectionId, String sql, Map<String, Object?> namedParams) Stream<Result<QueryResult>>
Executes a named-parameter query and returns results as a stream.
override
streamQueryNamedFor(Connection conn, String sql, Map<String, Object?> namedParams) Stream<Result<QueryResult>>

Available on IQueryService, provided by the IQueryServiceConnectionOverloads extension

streamQueryNamed overload that accepts a Connection.
streamStartAsync(String connectionId, String sql, {int fetchSize = 1000, int chunkSize = 64 * 1024}) Future<Result<int>>
toString() String
A string representation of this object.
inherited
validateConnectionString(String connectionString) Future<Result<void>>
override

Operators

operator ==(Object other) bool
The equality operator.
inherited