diff options
Diffstat (limited to 'dbaccess/source/core/api/CacheSet.cxx')
-rw-r--r-- | dbaccess/source/core/api/CacheSet.cxx | 83 |
1 files changed, 1 insertions, 82 deletions
diff --git a/dbaccess/source/core/api/CacheSet.cxx b/dbaccess/source/core/api/CacheSet.cxx index bbb080a52238..f7be322caa1a 100644 --- a/dbaccess/source/core/api/CacheSet.cxx +++ b/dbaccess/source/core/api/CacheSet.cxx @@ -515,88 +515,7 @@ void OCacheSet::setParameter(sal_Int32 nPos { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OCacheSet::setParameter" ); sal_Int32 nType = ( _nType != DataType::OTHER ) ? _nType : _rValue.getTypeKind(); - if(!_rValue.isNull()) - { - - switch(nType) - { - case DataType::DECIMAL: - case DataType::NUMERIC: - _xParameter->setObjectWithInfo(nPos,_rValue.makeAny(),nType,_nScale); - break; - case DataType::CHAR: - case DataType::VARCHAR: - case DataType::LONGVARCHAR: - _xParameter->setString(nPos,_rValue); - break; - case DataType::BIGINT: - if ( _rValue.isSigned() ) - _xParameter->setLong(nPos,_rValue); - else - _xParameter->setString(nPos,_rValue); - break; - case DataType::BIT: - case DataType::BOOLEAN: - _xParameter->setBoolean(nPos,_rValue); - break; - case DataType::TINYINT: - if ( _rValue.isSigned() ) - _xParameter->setByte(nPos,_rValue); - else - _xParameter->setShort(nPos,_rValue); - break; - case DataType::SMALLINT: - if ( _rValue.isSigned() ) - _xParameter->setShort(nPos,_rValue); - else - _xParameter->setInt(nPos,_rValue); - break; - case DataType::INTEGER: - if ( _rValue.isSigned() ) - _xParameter->setInt(nPos,_rValue); - else - _xParameter->setLong(nPos,_rValue); - break; - case DataType::FLOAT: - _xParameter->setFloat(nPos,_rValue); - break; - case DataType::DOUBLE: - case DataType::REAL: - _xParameter->setDouble(nPos,_rValue); - break; - case DataType::DATE: - _xParameter->setDate(nPos,_rValue); - break; - case DataType::TIME: - _xParameter->setTime(nPos,_rValue); - break; - case DataType::TIMESTAMP: - _xParameter->setTimestamp(nPos,_rValue); - break; - case DataType::BINARY: - case DataType::VARBINARY: - case DataType::LONGVARBINARY: - _xParameter->setBytes(nPos,_rValue); - break; - case DataType::CLOB: - { - Reference<XInputStream> xStream(_rValue.getAny(),UNO_QUERY); - _xParameter->setCharacterStream(nPos,xStream,xStream.is() ? xStream->available() : sal_Int32(0)); - } - break; - case DataType::BLOB: - { - Reference<XInputStream> xStream(_rValue.getAny(),UNO_QUERY); - _xParameter->setBinaryStream(nPos,xStream,xStream.is() ? xStream->available() : sal_Int32(0)); - } - break; - case DataType::SQLNULL: - _xParameter->setNull(nPos,nType); - break; - } - } - else - _xParameter->setNull(nPos,nType); + ::dbtools::setObjectWithInfo(_xParameter,nPos,_rValue,nType,_nScale); } // ------------------------------------------------------------------------- void OCacheSet::fillValueRow(ORowSetRow& _rRow,sal_Int32 _nPosition) |