void FdoSmLpGrdDataPropertyDefinition::Update(
    FdoPhysicalPropertyMapping* pPropOverrides
)
{
    FdoSmPhMgrP pPhysical = GetLogicalPhysicalSchema()->GetPhysicalSchema();
    FdoRdbmsOvDataPropertyDefinition* pDataPropOverrides = 
        dynamic_cast<FdoRdbmsOvDataPropertyDefinition*>(pPropOverrides);

    // Error if the overrides are not for a data property
    if ( pPropOverrides && !pDataPropOverrides ) 
        AddWrongOverrideTypeError();

    FdoStringP ovColName;

    if ( pDataPropOverrides ) {
        // Get the column name from the physical overrides, if specified.
        FdoRdbmsOvColumnP columnOverrides = pDataPropOverrides->GetColumn();

        if ( columnOverrides ) {
            SetIsFixedColumn( true );
            if ( wcslen(columnOverrides->GetName()) > 0 )
                ovColName = columnOverrides->GetName();
        }
    }
	
    if ( (ovColName == L"") && (GetElementState() == FdoSchemaElementState_Unchanged) && GetIsFromFdo() ) {
        // Always make column name fixed when this object is from an FDO config document.
        // In this case this property must attach to an existing column so must 
        // prevent the column name from being mangled.
        // Property always attaches to a column in the providers neutral case.
        // An explicit override must be supplied to attach to column whose
        // name is of another case.
        ovColName =GetName();
        SetIsFixedColumn( true );
    }

    if ( (!RefBaseProperty()) && ((GetElementState() == FdoSchemaElementState_Added) || GetIsFromFdo()) ) {
        // Set column name from override when property is not inherited and it is
        // new or from a config doc.
        if ( ovColName.GetLength() > 0 ) {
            // For foreign columns, root column is always the one 
            // specified in the overrides.
            if ( ColumnIsForeign() )
                SetRootColumnName( ovColName );

            SetColumnName( ovColName );
        }
    }
    else if ( GetElementState() == FdoSchemaElementState_Modified ) {			 
        if ( (ovColName.GetLength() > 0) && (ovColName.ICompare(Get_ColumnName()) != 0) ) 
            AddColNameChangeError( ovColName );
	}
}
예제 #2
0
void CText::UpdateTheme( int iIndex )
{
	SElementState * pState = GetElementState( iIndex );

	pString = pState->GetColor( _UI("String") );
}