Interface IConnectionManager

Common properties and methods for all database connection managers

Inherited Members
System.IDisposable.Dispose()
Namespace: ETLBox.Connection
Assembly: ETLBox.dll
Syntax
    public interface IConnectionManager : IDisposable

Properties

CommandTimeout

The timeout used when executing sql commands with this connection manager. Default is 0 (no timeout)

Declaration
    int CommandTimeout { get; set; }
Property Value
TypeDescription
System.Int32

Compatibility

Information about compatibility of the current connector

Declaration
    string Compatibility { get; }
Property Value
TypeDescription
System.String

ConnectionManagerType

The database type for the connection manager.

Declaration
    ConnectionManagerType ConnectionManagerType { get; }
Property Value
TypeDescription
ConnectionManagerType

ConnectionString

The connection string used to establish the connection with the database

Declaration
    IDbConnectionString ConnectionString { get; set; }
Property Value
TypeDescription
IDbConnectionString

IsInBulkInsert

Indicates if the current connection is currently used in a bulk insert operation (e.g. performed by a DbDestination)

Declaration
    bool IsInBulkInsert { get; set; }
Property Value
TypeDescription
System.Boolean

IsOdbcOrOleDbConnection

Indicates if the current connection manager is used as a OleDb or Odbc Connection.

Declaration
    bool IsOdbcOrOleDbConnection { get; }
Property Value
TypeDescription
System.Boolean

LeaveOpen

By default, after every sql operation the underlying ADO.NET connection is closed and retured to the ADO.NET connection pool. (This is the recommended behavior) To keep the connection open and avoid having the connection returned to the pool, set this to true. A connnection will be left open when a bulk insert operation is executed or a transaction hase been openend and not yet commited or rolled back.

Declaration
    bool LeaveOpen { get; set; }
Property Value
TypeDescription
System.Boolean

MaxLoginAttempts

Number of attempts that the connection managers tries to connect before it decides that the database is not reachable.

Declaration
    int MaxLoginAttempts { get; set; }
Property Value
TypeDescription
System.Int32

MaxParameterAmount

returns the maximum amount of parameters that ca be passed into a sql query.

Declaration
    int MaxParameterAmount { get; }
Property Value
TypeDescription
System.Int32

PP

The character that is used in front of parameter names in query to identify the parameter. All databases use the '@' character, except Oracle which uses ':'

Declaration
    string PP { get; }
Property Value
TypeDescription
System.String

QB

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

Declaration
    string QB { get; }
Property Value
TypeDescription
System.String

QE

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

Declaration
    string QE { get; }
Property Value
TypeDescription
System.String

State

The state of the underlying ADO.NET connection

Declaration
    ConnectionState? State { get; }
Property Value
TypeDescription
System.Nullable<System.Data.ConnectionState>

SupportDatabases

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

Declaration
    bool SupportDatabases { get; }
Property Value
TypeDescription
System.Boolean

SupportProcedures

Indicates if the database supports procedures

Declaration
    bool SupportProcedures { get; }
Property Value
TypeDescription
System.Boolean

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
    bool SupportSchemas { get; }
Property Value
TypeDescription
System.Boolean

Methods

BeginTransaction()

Will start a transaction with the default isolation level. This will leave the underlying ADO.NET connection open until the transaction is committed or rolled back.

Declaration
    void BeginTransaction()

BeginTransaction(IsolationLevel)

Will start a transaction with the given isolation level (if supported by the target database) This will leave the underlying ADO.NET connection open until the transaction is committed or rolled back.

Declaration
    void BeginTransaction(IsolationLevel isolationLevel)
Parameters
TypeNameDescription
System.Data.IsolationLevelisolationLevel

The isolation level for the transaction

BulkDelete(ITableData)

Performs a bulk delete

Declaration
    void BulkDelete(ITableData data)
Parameters
TypeNameDescription
ITableDatadata

Batch of data

BulkInsert(ITableData)

Performs a bulk insert

Declaration
    void BulkInsert(ITableData data)
Parameters
TypeNameDescription
ITableDatadata

Batch of data

BulkSelect(ITableData, ICollection<String>, Action, Action, Action<Object>[])

Performs a bulk select

Declaration
    void BulkSelect(ITableData data, ICollection<string> selectColumnNames, Action beforeRowReadAction, Action afterRowReadAction, params Action<object>[] actions)
Parameters
TypeNameDescription
ITableDatadata

Batch of data needed for the where condition

System.Collections.Generic.ICollection<System.String>selectColumnNames

Column names included in the select

System.ActionbeforeRowReadAction

Action invoked before any data is read

System.ActionafterRowReadAction

Action invoked after all data is read

System.Action<System.Object>[]actions

Pass an action for each column

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

Performs a bulk update

Declaration
    void BulkUpdate(ITableData data, ICollection<string> setColumnNames, ICollection<string> joinColumnNames)
Parameters
TypeNameDescription
ITableDatadata

Batch of data

System.Collections.Generic.ICollection<System.String>setColumnNames

The column names used in the set part of the update statement

System.Collections.Generic.ICollection<System.String>joinColumnNames

The column names to join for the update

CleanUpBulkInsert(String)

Called after the whole bulk insert operation to change back settings made to improve bulk insert performance

Declaration
    void CleanUpBulkInsert(string tableName)
Parameters
TypeNameDescription
System.StringtableName

Destination table name

Clone()

Cretes a clone of the current connection manager

Declaration
    IConnectionManager Clone()
Returns
TypeDescription
IConnectionManager

A instance copy of the current connection manager

CloneIfAllowed()

Try to create a clone of the current connection - only possible if LeaveOpen is false.

Declaration
    IConnectionManager CloneIfAllowed()
Returns
TypeDescription
IConnectionManager

The connection that was either cloned or the current connection

Close()

Closes the connection - this will not automatically disconnect from the database server, it will only return the connection to the ADO.NET connection pool for further reuse.

Declaration
    void Close()

CloseIfAllowed()

Closes the connection only if leave open is set to false and no transaction or bulk insert is in progress.

Declaration
    void CloseIfAllowed()

CommitTransaction()

Commits the current tranasction.

Declaration
    void CommitTransaction()

ExecuteNonQuery(String, IEnumerable<QueryParameter>)

Executes a query against the database that doesn't return any data.

Declaration
    int ExecuteNonQuery(string command, IEnumerable<QueryParameter> parameterList = null)
Parameters
TypeNameDescription
System.Stringcommand

The sql command

System.Collections.Generic.IEnumerable<QueryParameter>parameterList

The optional list of parameters

Returns
TypeDescription
System.Int32

Number of affected rows.

ExecuteReader(String, IEnumerable<QueryParameter>)

Executes a query against the database that does return multiple rows in multiple columns

Declaration
    IDataReader ExecuteReader(string command, IEnumerable<QueryParameter> parameterList = null)
Parameters
TypeNameDescription
System.Stringcommand

The sql command

System.Collections.Generic.IEnumerable<QueryParameter>parameterList

The optional list of parameters

Returns
TypeDescription
System.Data.IDataReader

A data reader to iterate through the result set

ExecuteScalar(String, IEnumerable<QueryParameter>)

Executes a query against the database that does return only one row in one column.

Declaration
    object ExecuteScalar(string command, IEnumerable<QueryParameter> parameterList = null)
Parameters
TypeNameDescription
System.Stringcommand

The sql command

System.Collections.Generic.IEnumerable<QueryParameter>parameterList

The optional list of parameters

Returns
TypeDescription
System.Object

The result

Open()

Opens the connection to the database. Normally you don't have to do this on your own, as all tasks and components will call this method implictly if the connection is closed. If the connection is already open, nothing is done.

Declaration
    void Open()

PrepareBulkInsert(String)

Performs preparations needed to improved performance of a bulk insert operation

Declaration
    void PrepareBulkInsert(string tableName)
Parameters
TypeNameDescription
System.StringtableName

Destination table name

RollbackTransaction()

Rolls the current transaction back.

Declaration
    void RollbackTransaction()