Class AdbSqlClientTableInformationService
An optional service for a SQL Server® Microsoft.Data.SqlClient 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, AdbSqlClientTableCommandService,
AdbSqlClientDataSourceInformationService, 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.SqlClientExternal
Assembly: actionETL.dll
Syntax
public class AdbSqlClientTableInformationService : AdbGenericTableInformationService, IAdbTableInformationService
Methods
Get()
Gets a function that returns a new instance of AdbSqlClientTableInformationService on each invocation, which is used when instantiating a new AdbProvider for accessing a SQL Server® 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 SQL Server, this method and workers using this method support tables (including temporary), views, and table-valued functions from sys.all_columns.
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 async 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 SQL Server, this method and workers using this method support tables (including temporary), views, and table-valued functions.
Note that this method does not log errors. Instead the caller should normally log any returned failure status.
Declaration
public override async 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 database 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 |
|