User: obo Date: 06/01/16 07:29:42 Modified: /dba/dbaccess/source/ui/misc/ UITools.cxx
Log: INTEGRATION: CWS dba202b (1.58.46); FILE MERGED 2005/11/28 11:53:50 oj 1.58.46.1: #127608# convert type if it doesn't exist on dest db File Changes: Directory: /dba/dbaccess/source/ui/misc/ ======================================== File [changed]: UITools.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/UITools.cxx?r1=1.58&r2=1.59 Delta lines: +62 -2 -------------------- --- UITools.cxx 23 Sep 2005 12:38:33 -0000 1.58 +++ UITools.cxx 16 Jan 2006 15:29:39 -0000 1.59 @@ -1580,8 +1580,68 @@ OTypeInfoMap::const_iterator aIter = _rTypeInfo.find(_nDataType); if(aIter != _rTypeInfo.end()) return aIter->second; - OSL_ENSURE(0,"Wrong DataType supplied!"); - return TOTypeInfoSP(); + // fall back if the type is unknown + TOTypeInfoSP pTypeInfo; + switch(_nDataType) + { + case DataType::TINYINT: + if( pTypeInfo = queryTypeInfoByType(DataType::SMALLINT,_rTypeInfo)) + break; + // run through + case DataType::SMALLINT: + if( pTypeInfo = queryTypeInfoByType(DataType::INTEGER,_rTypeInfo)) + break; + // run through + case DataType::INTEGER: + if( pTypeInfo = queryTypeInfoByType(DataType::FLOAT,_rTypeInfo)) + break; + // run through + case DataType::FLOAT: + if( pTypeInfo = queryTypeInfoByType(DataType::REAL,_rTypeInfo)) + break; + // run through + case DataType::DATE: + case DataType::TIME: + if( DataType::DATE == _nDataType || DataType::TIME == _nDataType ) + { + if( pTypeInfo = queryTypeInfoByType(DataType::TIMESTAMP,_rTypeInfo)) + break; + } + // run through + case DataType::TIMESTAMP: + case DataType::REAL: + case DataType::BIGINT: + if ( pTypeInfo = queryTypeInfoByType(DataType::DOUBLE,_rTypeInfo) ) + break; + // run through + case DataType::DOUBLE: + if ( pTypeInfo = queryTypeInfoByType(DataType::NUMERIC,_rTypeInfo) ) + break; + // run through + case DataType::NUMERIC: + pTypeInfo = queryTypeInfoByType(DataType::DECIMAL,_rTypeInfo); + break; + case DataType::DECIMAL: + if ( pTypeInfo = queryTypeInfoByType(DataType::NUMERIC,_rTypeInfo) ) + break; + if ( pTypeInfo = queryTypeInfoByType(DataType::DOUBLE,_rTypeInfo) ) + break; + break; + case DataType::VARCHAR: + if ( pTypeInfo = queryTypeInfoByType(DataType::LONGVARCHAR,_rTypeInfo) ) + break; + break; + default: + ; + } // switch(_nDataType) + if ( !pTypeInfo ) + { + ::rtl::OUString sCreate(RTL_CONSTASCII_USTRINGPARAM("x")),sTypeName; + sal_Bool bForce = sal_True; + pTypeInfo = ::dbaui::getTypeInfoFromType(_rTypeInfo,DataType::VARCHAR,sTypeName,sCreate,50,0,sal_False,bForce); + } // if ( !pTypeInfo ) + OSL_ENSURE(pTypeInfo,"Wrong DataType supplied!"); + return pTypeInfo; } // ----------------------------------------------------------------------------- ::rtl::OUString getUserDefinedDriverNodeName() --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
