Class AdbSQLiteTableInformationService
An optional service for a SQLite data source that manipulates table identifiers and provides information about table-like objects, such as which ones exists and what their type is (table, view, etc), and which columns are present. This assists with writing provider-independent database code, and is available as TableInformation. Also see HasTableInformationService, AdbSQLiteDataSourceInformationService, AdbConnection and AdbProvider.
Derive from this class (or from a base or descendant class) to customize the information for either the same .NET provider, or for a different but similar .NET provider.
Implements
Inherited Members
Namespace: actionETL.Adb.SQLiteExternal
Assembly: actionETL.dll
Syntax
public class AdbSQLiteTableInformationService : AdbGenericTableInformationService, IAdbTableInformationService
Methods
CreateTableIdentifier(String)
Creates an identifier for a table-like database object from a composite name, i.e. it splits a potentially delimited table name into its constituent parts, i.e. database or catalog name, schema or owner name, and table name. For the SQLite provider, the identifier can be a regular or temporary table or view.
SQLite doesn't use schemas, so *SchemaName parts will be set to null.
Unused parts will be set to an empty string.
Declaration
public override IAdbTableIdentifier CreateTableIdentifier(string compositeTableName)
Parameters
| Type | Name | Description |
|---|---|---|
| String | compositeTableName | Name of the table, potentially including database or catalog name. The string must be formatted according to the requirements of the data source, i.e. use the appropriate quoting characters and delimiters, in the appropriate order. |
Returns
| Type | Description |
|---|---|
| IAdbTableIdentifier | A table identifier. |
Overrides
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
Get()
Gets a function that returns a new instance of AdbSQLiteTableInformationService on each invocation, which is used when instantiating a new AdbProvider for accessing a SQLite data source.
Declaration
public static Func<IAdbConnection, IAdbTableInformationService> Get()
Returns
| Type | Description |
|---|---|
| Func<IAdbConnection, IAdbTableInformationService> |
GetTableColumnsAsync(IAdbTableIdentifier)
Gets information (name, data type etc.) about all columns in a table-like database object.
For the SQLite provider, this method and workers using this method support tables (including temporary) and views.
Note that this method does not log errors. Instead the caller should normally log any returned failure status.
Declaration
public override Task<OutcomeStatusResult<IList<AdbColumnSchema>>> GetTableColumnsAsync(IAdbTableIdentifier tableIdentifier)
Parameters
| Type | Name | Description |
|---|---|---|
| IAdbTableIdentifier | tableIdentifier | The identifier for a table-like object to check. It must specify table name,
but schema and/or catalog names can be |
Returns
| Type | Description |
|---|---|
| Task<OutcomeStatusResult<IList<AdbColumnSchema>>> | On success, Status will be
On failure, Status will have a
failure status, and Result will be
An incorrect parameter will throw immediately. Any other exceptions or failures
will be caught and contained in the returned See the provider documentation for specific Open() exceptions. Some providers may throw if the connection is associated with a transaction. |
Overrides
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
| ArgumentNullException |
|
GetTableTypeAsync(IAdbTableIdentifier)
Check if a table-like object exists, and what type (table, view, etc.) it is.
For the SQLite provider, this method and workers using this method support tables (including temporary) and views.
Note that this method does not log errors. Instead the caller should normally log any returned failure status.
Declaration
public override Task<OutcomeStatusResult<AdbTableType>> GetTableTypeAsync(IAdbTableIdentifier tableIdentifier)
Parameters
| Type | Name | Description |
|---|---|---|
| IAdbTableIdentifier | tableIdentifier | The identifier for a table-like object to check. It must specify table name,
but schema and/or catalog names can be |
Returns
| Type | Description |
|---|---|
| Task<OutcomeStatusResult<AdbTableType>> | On success, Status will be
On failure, Status will have a failure status, and Result will be undefined.
An incorrect parameter will throw immediately. Any other exceptions or failures
will be caught and contained in the returned See the provider documentation for specific Open() exceptions. Some providers may throw if the connection is associated with a transaction. |
Overrides
Exceptions
| Type | Condition |
|---|---|
| ArgumentException |
|
| ArgumentNullException |
|