connect method
Establishes a new database connection.
The connectionString must be a non-empty ODBC connection string
(e.g., 'DSN=MyDatabase' or 'Driver={SQL Server};Server=...').
options can specify connection/login timeout.
Automatically initializes the ODBC environment if not already initialized. Returns a Connection on success or a ValidationError if the connection string is empty, or a ConnectionError if connection fails.
Implementation
Future<Result<Connection>> connect(
String connectionString, {
ConnectionOptions? options,
}) async {
if (connectionString.trim().isEmpty) {
return const Failure<Connection, OdbcError>(
ValidationError(message: 'Connection string cannot be empty'),
);
}
if (!_repository.isInitialized()) {
final initResult = await _repository.initialize();
final initError = initResult.exceptionOrNull();
if (initError != null) {
if (initError is OdbcError) {
return Failure<Connection, OdbcError>(initError);
}
return Failure<Connection, OdbcError>(
ConnectionError(message: initError.toString()),
);
}
}
return _repository.connect(connectionString, options: options);
}