The OnRowComplete method is called after every successful fetch operation, allowing the transformation server to free per-row allocations and client-owned data in both source and destination rows.
HRESULT OnRowComplete (
LPBYTE pvTransformServerData,
LPDTSTransformColumnInfo pSrcColumnInfo,
LPDTSTransformColumnInfo pDestColumnInfo,
IDTSDataConvert *pIDTSDataConvert,
DTSTransformStatus eTransformStatus,
HRESULT hrInsert );
Argument | Description |
---|---|
pvTransformServerData [in] | Transform server state data. |
pSrcColumnInfo [in/out] | Source column and row data |
pDestColumnInfo [in/out] | Destination column and row data |
pIDTSDataConvert [in] | Pointer to the data conversion interface |
eTransformStatus [in] | Result of Execute |
hrInsert [in] | Result of IRowsetChange::InsertRow |
After a successful fetch operation, the data pump calls Execute and attempts to insert the row into the destination using IRowsetChange::InsertRow, if specified. OnRowComplete is called for every successful fetch operation, regardless of whether Execute or InsertRow succeeded or failed. If OnRowComplete returns FAILED, the data pump terminates.
hrInsert indicates whether IRowsetChange::InsertRow succeeded.
eTransformStatus indicates whether errors occurred that resulted in no call to InsertRow. OLE DB requires that IRowsetChange::InsertRow release any storage objects contained in the row; therefore, the transformation server must be careful not to call pIDTSDataConvert->ClearBindingData on a storage object that has already been released.