Data Pump Interfaces

DTS Programming

DTS Programming

Data Pump Interfaces

The Microsoft® SQL Server™ 2000 Data Transformation Services (DTS) data pump is an OLE DB provider that provides the interfaces and methods to import, export, and transform data from an OLE DB data source to an OLE DB destination. The DTS data pump is the engine of the Transform Data task, Data Driven Query task, and Parallel Data Pump task, which is accessed through the ParallelDataPumpTask object.

These tasks create rowsets on the source and destination connections, then create an instance of the data pump to move rows between the source and destination rowsets. They also add instances of transformations to the data pump instance, transforming individual row data as it is moved from source to destination.

The data pump provides an extensible COM-based architecture that allows custom applications to perform complex data validations and transformations as data moves from source to destination. Third-party applications can also extend the data pump by creating custom COM objects that implement the IDTSDataPumpTransform interface to make use of the full power of Microsoft Win32® and COM. This allows an application to avoid the overhead of converting native data types to OLE DB variant data types and then converting them back again.

Data pump interfaces are implemented using Microsoft Visual C++® applications that include Dtspump.h.

Using the Data Pump Interfaces

An application must call IDTSDataPump interface methods in order. For example, these methods must be called in the following order:

  1. SetRowsets
  2. AddTransform

  3. Execute

Other methods on the interface may be called in any order prior to a call to the Execute method. Because the data pump represents a single execute operation, the data pump is not reentrant within calls. It returns an error if it is called as though it were reentrant.

Calls to IDTSDataPump result in calls to the IDTSDataPumpTransform interfaces in the following sequence:

  1. Create an instance of the transformation server object and associated properties, if necessary.

  2. Call IDTSDataPump::AddTransform.

  3. Call IPersistPropertyBag::Load, if IPropertyBag is specified.

  4. Call IDTSDataPumpTransform::Initialize.

  5. Call IDTSDataPumpTransform::AddVariable ("DTSErrorRecords").

  6. Call IDTSDataPumpTransform::ValidateSchema.

  7. Call IDTSDataPump::Execute.

  8. Call IDTSDataPumpTransform::AddVariable, including any object except DTSErrorRecords.

  9. Call IDTSDataPumpTransform::Execute.