<< Click to Display Table of Contents >>

cbRESTRUCTURE

pCbBuf is assumed to be of the type RESTCbDesc. This callback may be issued several times during a call to DbiDoRestructure. Each time it is issued, BDE supplies information about an impending action and requests a response from the caller. The iErrCode in the CBRESTCbDesc structure is used to inform the caller about the different actions. Other fields of CBRESTCbDesc describes, if applicable, the object (for example, field, index, or validity check) to which this callback refers. Any callback may return with a cbrABORT that aborts the restructure. The batch result callback would be issued in the following different situations:

When iErrCode == DBIERR_OBJMAYBETRUNCATED, a YES response forces data trimming. A NO response forces record that would be trimmed to a problems table.

When iErrCode ==DBIERR_TABLELEVELCHANGED, a YES response allows the table level to change. A NO response aborts the restructure operation.

When iErrCode == DBIERR_VALIDATEDATA, a YES force validity checks to be applied to existing data. A NO response applies validity checks to new data only.

When iErrCode == DBIERR_OBJIMPLICITLYMODIFIED, this is a warning that an object was implicitly modified. For example, when a field that is part of a composite secondary index restructure is dropped, that field is implicitly dropped from the index.

When iErrCode == DBIERR_OBJIMPLICITLYDROPPED, this is a warning that an object was dropped.

When iErrCode == DBIERR_VALFIELDMODIFIED, this is a warning that the type or size of a field containing a validity check was modified.

When iErrCode == DBIERR_VCHKMAYNOTBEENFORCED, this is a warning that because of referential integrity constraints on fields in the master table, new validity checks on these fields cannot be enforced on existing data.