Class AdbTableNonQueryWorker
A worker that executes a query on a table-like object (e.g. table, view, or table-valued function) in an SQL database, e.g. truncate, drop, check if exists, delete all rows, etc.
Requires the Adb provider to support IAdbTableCommandService when performing a DeleteRows, DropTable, DropView, IfExistsDropTable, IfExistsDropView, or TruncateTable command.
Requires the Adb provider to support IAdbTableInformationService when performing an IfExistsError or IfNotExistsError command.
Note that universal (e.g. ODBC) providers generally don't support at least IAdbTableCommandService out of box, see SQL Database Access for details, as well as HasTableCommandService and HasTableInformationService.
Also see AdbExecuteNonQueryWorker and AdbExecuteScalarWorker<TResult>.
Note: For DeleteRows this worker does participate in any transaction currently active on the connection.
Inheritance
Implements
Inherited Members
Namespace: actionETL.Adb
Assembly: actionETL.dll
Syntax
public class AdbTableNonQueryWorker : WorkerBase<AdbTableNonQueryWorker>, IDisposeOnFinished
Constructors
AdbTableNonQueryWorker(WorkerParent, IAdbConnectionBuilder, AdbTableNonQueryOperation, String)
Initializes a new instance of the AdbTableNonQueryWorker worker. It executes a query on a table-like object (i.e. table or view) in an SQL database, e.g. truncate, drop, check if exists, delete all rows etc.
The worker name is generated automatically from the operation, table name, and an increasing number starting at 1.
Declaration
public AdbTableNonQueryWorker(WorkerParent workerParent, IAdbConnectionBuilder connectionBuilder, AdbTableNonQueryOperation tableNonQueryOperation, string compositeTableName)
Parameters
Type | Name | Description |
---|---|---|
WorkerParent | workerParent | The parent worker or worker system that the new child worker will be added to. Cannot be |
IAdbConnectionBuilder | connectionBuilder | The connection builder, must not be |
AdbTableNonQueryOperation | tableNonQueryOperation | Which operation to perform: truncate table, drop table, check if table exists, delete all rows in table etc. |
String | compositeTableName | Table to operate on. Can be a composite name. Must not be |
Exceptions
Type | Condition |
---|---|
ArgumentException |
|
ArgumentException |
|
ArgumentNullException |
|
ArgumentNullException |
|
InvalidOperationException |
|
AdbTableNonQueryWorker(WorkerParent, Func<Boolean>, IAdbConnectionBuilder, AdbTableNonQueryOperation, String)
Initializes a new instance of the AdbTableNonQueryWorker worker. It executes a query on a table-like object (i.e. table or view) in an SQL database, e.g. truncate, drop, check if exists, delete all rows etc.
The worker name is generated automatically from the operation, table name, and an increasing number starting at 1.
Declaration
public AdbTableNonQueryWorker(WorkerParent workerParent, Func<bool> isStartableFunc, IAdbConnectionBuilder connectionBuilder, AdbTableNonQueryOperation tableNonQueryOperation, string compositeTableName)
Parameters
Type | Name | Description |
---|---|---|
WorkerParent | workerParent | The parent worker or worker system that the new child worker will be added to. Cannot be |
Func<Boolean> | isStartableFunc | Function to calculate the worker start constraint; it should return |
IAdbConnectionBuilder | connectionBuilder | The connection builder, must not be |
AdbTableNonQueryOperation | tableNonQueryOperation | Which operation to perform: truncate table, drop table, check if table exists, delete all rows in table etc. |
String | compositeTableName | Table to operate on. Can be a composite name. Must not be |
Exceptions
Type | Condition |
---|---|
ArgumentException |
|
ArgumentException |
|
ArgumentNullException |
|
ArgumentNullException |
|
InvalidOperationException |
|
AdbTableNonQueryWorker(WorkerParent, String, IAdbConnectionBuilder, AdbTableNonQueryOperation, String)
Initializes a new instance of the AdbTableNonQueryWorker worker. It executes a query on a table-like object (i.e. table or view) in an SQL database, e.g. truncate, drop, check if exists, delete all rows etc.
Declaration
public AdbTableNonQueryWorker(WorkerParent workerParent, string workerName, IAdbConnectionBuilder connectionBuilder, AdbTableNonQueryOperation tableNonQueryOperation, string compositeTableName)
Parameters
Type | Name | Description |
---|---|---|
WorkerParent | workerParent | The parent worker or worker system that the new child worker will be added to. Cannot be |
String | workerName | Name of the worker.
Set to a prefix plus a trailing
While less useful, set to
The name cannot otherwise contain |
IAdbConnectionBuilder | connectionBuilder | The connection builder, must not be |
AdbTableNonQueryOperation | tableNonQueryOperation | Which operation to perform: truncate table, drop table, check if table exists, delete all rows in table etc. |
String | compositeTableName | Table to operate on. Can be a composite name. Must not be |
Exceptions
Type | Condition |
---|---|
ArgumentException |
|
ArgumentException |
|
ArgumentNullException |
|
ArgumentNullException |
|
InvalidOperationException |
|
AdbTableNonQueryWorker(WorkerParent, String, Func<Boolean>, IAdbConnectionBuilder, AdbTableNonQueryOperation, String)
Initializes a new instance of the AdbTableNonQueryWorker worker. It executes a query on a table-like object (i.e. table or view) in an SQL database, e.g. truncate, drop, check if exists, delete all rows etc.
Declaration
public AdbTableNonQueryWorker(WorkerParent workerParent, string workerName, Func<bool> isStartableFunc, IAdbConnectionBuilder connectionBuilder, AdbTableNonQueryOperation tableNonQueryOperation, string compositeTableName)
Parameters
Type | Name | Description |
---|---|---|
WorkerParent | workerParent | The parent worker or worker system that the new child worker will be added to. Cannot be |
String | workerName | Name of the worker.
Set to a prefix plus a trailing
While less useful, set to
The name cannot otherwise contain |
Func<Boolean> | isStartableFunc | Function to calculate the worker start constraint; it should return |
IAdbConnectionBuilder | connectionBuilder | The connection builder, must not be |
AdbTableNonQueryOperation | tableNonQueryOperation | Which operation to perform: truncate table, drop table, check if table exists, delete all rows in table etc. |
String | compositeTableName | Table to operate on. Can be a composite name. Must not be |
Exceptions
Type | Condition |
---|---|
ArgumentException |
|
ArgumentException |
|
ArgumentNullException |
|
ArgumentNullException |
|
InvalidOperationException |
|
Properties
RecordsAffected
Gets the number of records affected by the query when deleting records. For all other types of statements (truncate etc.), the return value is -1. Only available after the worker has completed successfully.
Note: This property is thread-safe.
Declaration
public int RecordsAffected { get; }
Property Value
Type | Description |
---|---|
Int32 |
Exceptions
Type | Condition |
---|---|
InvalidOperationException |
|
Methods
RunAsync()
This method can be overridden to add custom functionality to the derived worker that runs before
and after the row processing. In this case, the base class base.RunAsync()
must
be called for the worker to function correctly.
Typically, this worker is used without overriding this method.
Declaration
protected override async Task<OutcomeStatus> RunAsync()
Returns
Type | Description |
---|---|
Task<OutcomeStatus> | A |