• Getting started
  • API Documentation
  • Pricing
  • Contact
Show / Hide Table of Contents
  • ETLBox.Connection
    • AccessOdbcConnectionManager
    • AdomdConnectionManager
    • ConnectionManagerType
    • Db2ConnectionManager
    • Db2ConnectionString
    • DbConnectionManager<Connection>
    • DbConnectionString<T, TBuilder>
    • IConnectionManager
    • IDbConnectionString
    • MariaDbConnectionManager
    • MariaDbConnectionString
    • MySqlConnectionManager
    • MySqlConnectionString
    • MySqlOdbcConnectionManager
    • OdbcConnectionManager
    • OdbcConnectionString
    • OleDbConnectionManager
    • OleDbConnectionString
    • OracleConnectionManager
    • OracleConnectionString
    • OracleOdbcConnectionManager
    • PostgresConnectionManager
    • PostgresConnectionString
    • PostgresOdbcConnectionManager
    • SqlConnectionManager
    • SqlConnectionString
    • SQLiteConnectionManager
    • SQLiteConnectionString
    • SqlOdbcConnectionManager
    • SqlOleDbConnectionManager
  • ETLBox.ControlFlow
    • ControlFlow
    • ControlFlowTask
    • DbTask
    • DropTask<T>
    • IfExistsTask
    • ILoggableTask
    • ITableData
    • LoggableTask
    • ProcedureDefinition
    • ProcedureParameter
    • QueryParameter
    • TableColumn
    • TableData
    • TableData<T>
    • TableDefinition
  • ETLBox.ControlFlow.Tasks
    • CalculateDatabaseHashTask
    • CleanUpSchemaTask
    • CreateDatabaseTask
    • CreateIndexTask
    • CreateProcedureTask
    • CreateSchemaTask
    • CreateTableTask
    • CreateViewTask
    • DropDatabaseTask
    • DropIndexTask
    • DropProcedureTask
    • DropSchemaTask
    • DropTableTask
    • DropViewTask
    • GetDatabaseListTask
    • IfDatabaseExistsTask
    • IfIndexExistsTask
    • IfProcedureExistsTask
    • IfSchemaExistsTask
    • IfTableOrViewExistsTask
    • RecoveryModel
    • RowCountOptions
    • RowCountTask
    • SqlTask
    • TruncateTableTask
    • XmlaTask
  • ETLBox.DataFlow
    • AggregateColumn
    • ChangeAction
    • ColumnMap
    • CompareColumn
    • DataFlow
    • DataFlowBatchDestination<TInput>
    • DataFlowComponent
    • DataFlowDestination<TInput>
    • DataFlowExecutableSource<TOutput>
    • DataFlowJoinTarget<TInput>
    • DataFlowSource<TOutput>
    • DataFlowStreamDestination<TInput>
    • DataFlowStreamSource<TOutput>
    • DataFlowTransformation<TInput, TOutput>
    • DeleteColumn
    • DistinctColumn
    • ErrorSource
    • ETLBoxError
    • ExcelColumn
    • ExcelRange
    • GroupColumn
    • ICacheManager<TInput, TCache>
    • IDataFlowBatchDestination
    • IDataFlowBatchDestination<TInput>
    • IDataFlowComponent
    • IDataFlowDestination
    • IDataFlowDestination<TInput>
    • IDataFlowExecutableSource
    • IDataFlowExecutableSource<TOutput>
    • IDataFlowLogging
    • IDataFlowSource
    • IDataFlowSource<TOutput>
    • IDataFlowStreamDestination
    • IDataFlowStreamDestination<TInput>
    • IDataFlowStreamSource
    • IDataFlowStreamSource<TOutput>
    • IDataFlowTransformation<TInput, TOutput>
    • IDataFlowTransformation<TOutput>
    • IdColumn
    • IMergeableRow
    • JoinTarget<TInput>
    • MatchColumn
    • MemoryCache<TInput, TCache>
    • MergeableRow
    • MergeMode
    • MergeProperties
    • Network
    • ResourceType
    • RetrieveColumn
    • StreamMetaData
    • TypeInfo
    • UpdateColumn
  • ETLBox.DataFlow.Connectors
    • ConcurrentMemoryDestination
    • ConcurrentMemoryDestination<TInput>
    • CsvDestination
    • CsvDestination<TInput>
    • CsvSource
    • CsvSource<TOutput>
    • CustomBatchDestination
    • CustomBatchDestination<TInput>
    • CustomBatchSource
    • CustomBatchSource<TOutput>
    • CustomDestination
    • CustomDestination<TInput>
    • CustomSource
    • CustomSource<TOutput>
    • DbDestination
    • DbDestination<TInput>
    • DbMerge
    • DbMerge<TInput>
    • DbSource
    • DbSource<TOutput>
    • ExcelSource
    • ExcelSource<TOutput>
    • JsonDestination
    • JsonDestination<TInput>
    • JsonSource
    • JsonSource<TOutput>
    • MemoryDestination
    • MemoryDestination<TInput>
    • MemorySource
    • MemorySource<TOutput>
    • TextDestination
    • TextDestination<TInput>
    • TextSource
    • TextSource<TOutput>
    • VoidDestination
    • VoidDestination<TInput>
    • XmlDestination
    • XmlDestination<TInput>
    • XmlSource
    • XmlSource<TOutput>
  • ETLBox.DataFlow.Transformations
    • Aggregation
    • Aggregation<TInput, TOutput>
    • AggregationMethod
    • BatchTransformation
    • BatchTransformation<TInput, TOutput>
    • BatchTransformation<TInput>
    • BlockTransformation
    • BlockTransformation<TInput, TOutput>
    • BlockTransformation<TInput>
    • CachedBatchTransformation
    • CachedBatchTransformation<TInput, TOutput, TCache>
    • CachedBatchTransformation<TInput, TOutput>
    • CachedBatchTransformation<TInput>
    • CachedRowTransformation
    • CachedRowTransformation<TInput, TOutput, TCache>
    • CachedRowTransformation<TInput, TOutput>
    • CachedRowTransformation<TInput>
    • CacheMode
    • ColumnRename
    • ColumnRename<TInput>
    • CrossJoin
    • CrossJoin<TInput>
    • CrossJoin<TInput1, TInput2, TOutput>
    • CrossJoin<TInput1, TInput2, TOutput>.InMemoryDestination<TInput>
    • Distinct<TInput>
    • LookupTransformation
    • LookupTransformation<TInput, TSource>
    • LookupTransformation<TInput, TSource>.PartialDbCacheSettings
    • MergeJoin
    • MergeJoin<TInput>
    • MergeJoin<TInput1, TInput2, TOutput>
    • Multicast
    • Multicast<TInput>
    • RowDuplication
    • RowDuplication<TInput>
    • RowMultiplication
    • RowMultiplication<TInput, TOutput>
    • RowMultiplication<TInput>
    • RowTransformation
    • RowTransformation<TInput, TOutput>
    • RowTransformation<TInput>
    • Sort
    • Sort<TInput>
    • XmlSchemaValidation
    • XmlSchemaValidation<TInput>
  • ETLBox.Exceptions
    • ETLBoxException
    • ETLBoxFaultedBufferException
    • ETLBoxNotSupportedException
  • ETLBox.Helper
    • BatchLinq
    • BulkSqlGenerator<T>
    • DataTypeConverter
    • ExpandoJsonPathConverter
    • HashHelper
    • IDataTypeConverter
    • JsonPathConverter
    • JsonProperty2JsonPath
    • JsonProperty2JsonPath.MultipleResultsInPath
    • ObjectNameDescriptor
    • PropertyInfoExtension
    • SqlParser
    • StringExtension
  • ETLBox.Logging
    • AbortLoadProcessTask
    • CreateErrorTableTask
    • CreateLoadProcessTableTask
    • CreateLogTableTask
    • CustomTask
    • EndLoadProcessTask
    • ETLLogLayoutRenderer
    • GetLoadProcessAsJSONTask
    • GetLogAsJSONTask
    • LoadProcess
    • LogEntry
    • Logging
    • LogHierarchyEntry
    • LogTask
    • Package
    • ReadLoadProcessTableTask
    • ReadLogTableTask
    • ReadOptions
    • Sequence
    • Sequence<T>
    • StartLoadProcessTask

Class AccessOdbcConnectionManager

Connection manager for an ODBC connection to Access databases. This connection manager also is based on ADO.NET. ODBC by default does not support a Bulk Insert - and Access does not support the insert into (...) values (...),(...),(...) syntax. So the following syntax is used

insert into (Col1, Col2,...)
select * from (
  select 'Val1' as Col1 from dummytable
  union all
  select 'Val2' as Col2 from dummytable
  ...
) a;

The dummytable is a special helper table containing only one record.

Inheritance
System.Object
DbConnectionManager<System.Data.Odbc.OdbcConnection>
OdbcConnectionManager
AccessOdbcConnectionManager
Implements
IConnectionManager
System.IDisposable
Inherited Members
OdbcConnectionManager.IsOdbcOrOleDbConnection
OdbcConnectionManager.OdbcBulkInsert(BulkSqlGenerator<OdbcParameter>)
OdbcConnectionManager.BulkSelect(ITableData, ICollection<String>, Action, Action, Action<Object>[])
DbConnectionManager<OdbcConnection>.DbConnection
DbConnectionManager<OdbcConnection>.MaxLoginAttempts
DbConnectionManager<OdbcConnection>.LeaveOpen
DbConnectionManager<OdbcConnection>.ConnectionString
DbConnectionManager<OdbcConnection>.State
DbConnectionManager<OdbcConnection>.Transaction
DbConnectionManager<OdbcConnection>.IsInBulkInsert
DbConnectionManager<OdbcConnection>.PP
DbConnectionManager<OdbcConnection>.DoPrepareCommand
DbConnectionManager<OdbcConnection>.MaxParameterAmount
DbConnectionManager<OdbcConnection>.CreateCommand(String, IEnumerable<QueryParameter>)
DbConnectionManager<OdbcConnection>.ExecuteNonQuery(String, IEnumerable<QueryParameter>)
DbConnectionManager<OdbcConnection>.ExecuteScalar(String, IEnumerable<QueryParameter>)
DbConnectionManager<OdbcConnection>.ExecuteReader(String, IEnumerable<QueryParameter>)
DbConnectionManager<OdbcConnection>.BeginTransaction(IsolationLevel)
DbConnectionManager<OdbcConnection>.BeginTransaction()
DbConnectionManager<OdbcConnection>.CommitTransaction()
DbConnectionManager<OdbcConnection>.RollbackTransaction()
DbConnectionManager<OdbcConnection>.CloneIfAllowed()
DbConnectionManager<OdbcConnection>.Open()
DbConnectionManager<OdbcConnection>.CreateDbConnection()
DbConnectionManager<OdbcConnection>.Close()
DbConnectionManager<OdbcConnection>.CloseIfAllowed()
DbConnectionManager<OdbcConnection>.Dispose(Boolean)
DbConnectionManager<OdbcConnection>.Dispose()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: ETLBox.Connection
Assembly: ETLBox.Odbc.dll
Syntax
public class AccessOdbcConnectionManager : OdbcConnectionManager, IConnectionManager, IDisposable
Examples
ControlFlow.DefaultDbConnection =
  new AccessOdbcConnectionManager(new OdbcConnectionString(
     "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\DB\Test.mdb"));

Constructors

AccessOdbcConnectionManager()

Declaration
public AccessOdbcConnectionManager()

AccessOdbcConnectionManager(OdbcConnectionString)

Declaration
public AccessOdbcConnectionManager(OdbcConnectionString connectionString)
Parameters
Type Name Description
OdbcConnectionString connectionString

AccessOdbcConnectionManager(String)

Declaration
public AccessOdbcConnectionManager(string connectionString)
Parameters
Type Name Description
System.String connectionString

Properties

ConnectionManagerType

The database type for the connection manager.

Declaration
public override ConnectionManagerType ConnectionManagerType { get; }
Property Value
Type Description
ConnectionManagerType
Overrides
OdbcConnectionManager.ConnectionManagerType

DummyTableName

Helper table that needs to be created in order to simulate bulk inserts. Contains only 1 record and is only temporarily created.

Declaration
public string DummyTableName { get; set; }
Property Value
Type Description
System.String

PreparationDone

Declaration
protected bool PreparationDone { get; set; }
Property Value
Type Description
System.Boolean

QB

The quotation begin character that is used in the database. E.g. SqlServer uses: '[' and Postgres: '"'

Declaration
public override string QB { get; }
Property Value
Type Description
System.String
Overrides
OdbcConnectionManager.QB

QE

The quotation end character that is used in the database. E.g. SqlServer uses: ']' and Postgres: '"'

Declaration
public override string QE { get; }
Property Value
Type Description
System.String
Overrides
OdbcConnectionManager.QE

SupportComputedColumns

Indicates if the database supports computed columns

Declaration
public override bool SupportComputedColumns { get; }
Property Value
Type Description
System.Boolean
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.Odbc.OdbcConnection>.SupportComputedColumns

SupportDatabases

Indicates if database server does support multiple databases. A database in ETLBox means a schema in MySql.

Declaration
public override bool SupportDatabases { get; }
Property Value
Type Description
System.Boolean
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.Odbc.OdbcConnection>.SupportDatabases

SupportProcedures

Indicates if the database supports procedures

Declaration
public override bool SupportProcedures { get; }
Property Value
Type Description
System.Boolean
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.Odbc.OdbcConnection>.SupportProcedures

SupportSchemas

Indicates if the database supports schemas In MySql, this is false because the schema here is a database in ETLBox. Use SupportDatabases instead

Declaration
public override bool SupportSchemas { get; }
Property Value
Type Description
System.Boolean
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.Odbc.OdbcConnection>.SupportSchemas

Methods

AfterBulkInsert(String)

Called after every bulk insert of a batch

Declaration
public override void AfterBulkInsert(string tableName)
Parameters
Type Name Description
System.String tableName

Destination table name

Overrides
OdbcConnectionManager.AfterBulkInsert(String)

BeforeBulkInsert(String)

Called before every bulk insert of a batch

Declaration
public override void BeforeBulkInsert(string tableName)
Parameters
Type Name Description
System.String tableName

Destination table name

Overrides
OdbcConnectionManager.BeforeBulkInsert(String)

BulkDelete(ITableData)

Performs a bulk delete

Declaration
public override void BulkDelete(ITableData data)
Parameters
Type Name Description
ITableData data

Batch of data

Overrides
OdbcConnectionManager.BulkDelete(ITableData)

BulkInsert(ITableData)

Performs a bulk insert

Declaration
public override void BulkInsert(ITableData data)
Parameters
Type Name Description
ITableData data

Batch of data

Overrides
OdbcConnectionManager.BulkInsert(ITableData)

BulkUpdate(ITableData, ICollection<String>, ICollection<String>)

Performs a bulk update

Declaration
public override void BulkUpdate(ITableData data, ICollection<string> setColumnNames, ICollection<string> joinColumnNames)
Parameters
Type Name Description
ITableData data

Batch of data

System.Collections.Generic.ICollection<System.String> setColumnNames
System.Collections.Generic.ICollection<System.String> joinColumnNames
Overrides
OdbcConnectionManager.BulkUpdate(ITableData, ICollection<String>, ICollection<String>)

CheckIfTableOrViewExists(String)

Describes how the connection manager can check if a table or view exists

Declaration
public override bool CheckIfTableOrViewExists(string unquotatedFullName)
Parameters
Type Name Description
System.String unquotatedFullName
Returns
Type Description
System.Boolean

True if the table or view exists

Overrides
ETLBox.Connection.DbConnectionManager<System.Data.Odbc.OdbcConnection>.CheckIfTableOrViewExists(System.String)

CleanUpBulkInsert(String)

Called after the whole bulk insert operation (all batches)

Declaration
public override void CleanUpBulkInsert(string tablename)
Parameters
Type Name Description
System.String tablename
Overrides
OdbcConnectionManager.CleanUpBulkInsert(String)

Clone()

Cretes a clone of the current connection manager

Declaration
public override IConnectionManager Clone()
Returns
Type Description
IConnectionManager

A instance copy of the current connection manager

Overrides
OdbcConnectionManager.Clone()

PrepareBulkInsert(String)

Called before the whole bulk insert operation (all batches)

Declaration
public override void PrepareBulkInsert(string tablename)
Parameters
Type Name Description
System.String tablename
Overrides
OdbcConnectionManager.PrepareBulkInsert(String)

ReadTableDefinition(ObjectNameDescriptor)

Describe how the table meta data can be read from the database

Declaration
public override TableDefinition ReadTableDefinition(ObjectNameDescriptor TN)
Parameters
Type Name Description
ObjectNameDescriptor TN

The formatted table name

Returns
Type Description
TableDefinition

The definition of the table, containing column names, types, etc.

Overrides
ETLBox.Connection.DbConnectionManager<System.Data.Odbc.OdbcConnection>.ReadTableDefinition(ETLBox.Helper.ObjectNameDescriptor)

Implements

IConnectionManager
System.IDisposable
Back to top Crafted with <3 in Berlin
Contact & legal notice