Class SQLiteConnectionManager

Connection manager for an SQLite connection based on ADO.NET.

Inheritance
System.Object
DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>
SQLiteConnectionManager
Implements
IConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction>
System.IDisposable
Inherited Members
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.SQLite.dll
Syntax
    public class SQLiteConnectionManager : DbConnectionManager<SQLiteConnection, SQLiteTransaction, SQLiteParameter>, IConnectionManager<SQLiteConnection, SQLiteTransaction>, IConnectionManager, IDisposable
Examples
ControlFlow.DefaultDbConnection =
  new.SQLiteConnectionManager(new SQLiteConnectionString(
    "Data Source=.\db\SQLite.db;Version=3;"));

Constructors

SQLiteConnectionManager()

Declaration
    public SQLiteConnectionManager()

SQLiteConnectionManager(SQLiteConnectionString)

Declaration
    public SQLiteConnectionManager(SQLiteConnectionString connectionString)
Parameters
TypeNameDescription
SQLiteConnectionStringconnectionString

SQLiteConnectionManager(String)

Declaration
    public SQLiteConnectionManager(string connectionString)
Parameters
TypeNameDescription
System.StringconnectionString

Properties

BulkInserts

Instead of using single values inserts (with a INSERT INTO .. VALUES () statement), data is inserted in batches using a INSERT INTO .. VALUES (), (), () syntax. All other connectors already use the batch variant, but SQLite is optimized for single inserts and sometimes has issues with a bigger amount of parameters passed into a sql statement. Using bulk inserts is not compatible with older version (SQLite < 3.15.0)

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

ConnectionManagerType

The database type for the connection manager.

Declaration
    public override ConnectionManagerType ConnectionManagerType { get; protected set; }
Property Value
TypeDescription
ConnectionManagerType
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.ConnectionManagerType

ModifyDBSettings

Will set the PRAGMA synchronous = OFF and PRAGMA journal_mode = MEMORY settings before the bulk insert. The changes will be reverted after the bulk insert operation.

Declaration
    public bool ModifyDBSettings { get; set; }
Property Value
TypeDescription
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; protected set; }
Property Value
TypeDescription
System.String
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.QB

QE

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

Declaration
    public override string QE { get; protected set; }
Property Value
TypeDescription
System.String
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.QE

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
TypeDescription
System.Boolean
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.SupportDatabases

SupportProcedures

Indicates if the database supports procedures

Declaration
    public override bool SupportProcedures { get; }
Property Value
TypeDescription
System.Boolean
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.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
TypeDescription
System.Boolean
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.SupportSchemas

Methods

BulkDelete(ITableData)

Performs a bulk delete

Declaration
    public override void BulkDelete(ITableData data)
Parameters
TypeNameDescription
ITableDatadata

Batch of data

Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.BulkDelete(ETLBox.ControlFlow.ITableData)

BulkInsert(ITableData)

Performs a bulk insert

Declaration
    public override void BulkInsert(ITableData data)
Parameters
TypeNameDescription
ITableDatadata

Batch of data

Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.BulkInsert(ETLBox.ControlFlow.ITableData)

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

Declaration
    public override void BulkSelect(ITableData data, ICollection<string> selectColumnNames, Action beforeRowReadAction, Action afterRowReadAction, params Action<object>[] rowActions)
Parameters
TypeNameDescription
ITableDatadata
System.Collections.Generic.ICollection<System.String>selectColumnNames
System.ActionbeforeRowReadAction
System.ActionafterRowReadAction
System.Action<System.Object>[]rowActions
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.BulkSelect(ETLBox.ControlFlow.ITableData, System.Collections.Generic.ICollection<System.String>, System.Action, System.Action, System.Action<System.Object>[])

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

Performs a bulk update

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

Batch of data

System.Collections.Generic.ICollection<System.String>setColumnNames
System.Collections.Generic.ICollection<System.String>joinColumnNames
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.BulkUpdate(ETLBox.ControlFlow.ITableData, System.Collections.Generic.ICollection<System.String>, System.Collections.Generic.ICollection<System.String>)

CleanUpBulkInsert(String)

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

Declaration
    public override void CleanUpBulkInsert(string tablename)
Parameters
TypeNameDescription
System.Stringtablename
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.CleanUpBulkInsert(System.String)

Clone()

Cretes a clone of the current connection manager

Declaration
    public override IConnectionManager Clone()
Returns
TypeDescription
IConnectionManager

A instance copy of the current connection manager

Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.Clone()

PrepareBulkInsert(String)

Performs preparations needed to improved performance of a bulk insert operation

Declaration
    public override void PrepareBulkInsert(string tablename)
Parameters
TypeNameDescription
System.Stringtablename
Overrides
ETLBox.Connection.DbConnectionManager<System.Data.SQLite.SQLiteConnection, System.Data.SQLite.SQLiteTransaction, System.Data.SQLite.SQLiteParameter>.PrepareBulkInsert(System.String)

Implements

System.IDisposable