Class AdbMySqlConnectorTableInformationService
An optional service that uses the MySqlConnector ADO.NET provider 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, AdbMySqlConnectorTableCommandService, AdbMySqlConnectorDataSourceInformationService, 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.MySqlConnectorExternal
Assembly: actionETL.dll
Syntax
public class AdbMySqlConnectorTableInformationService : 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.
The MySqlConnector provider
puts the database/schema (or an empty string if not specified) in the SchemaName
properties. CatalogName properties will contain null.
Declaration
public override IAdbTableIdentifier CreateTableIdentifier(string compositeTableName)
Parameters
| Type | Name | Description |
|---|---|---|
| String | compositeTableName | Name of the table, potentially including database or catalog name, and schema or owner 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 AdbMySqlConnectorTableInformationService on each invocation, which is used when instantiating a new AdbProvider for accessing a MySqlConnector MySQL™ or MariaDB™ 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.
With a MySqlConnector MySQL™ or MariaDB™ data source, this method and workers using this method supports regular tables and views (specifically all object types included in the GetSchema(String) "COLUMNS" collection). Note that temporary tables are currently not supported by this method.
Note that it does not include objects that do not themselves have columns, e.g. stored procedures.
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
Note that for the few database types that report more than
MaxValue (e.g. MySql
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.
With a MySqlConnector MySQL™ or MariaDB™ data source, this method and workers using this method supports regular tables and views. Note that temporary tables are currently not supported by this method.
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 |
|