Files
Leviathan/Library/Internal/source/rdu/ColumnSchema.cpp
T
2026-06-01 12:46:52 +02:00

93 lines
1.8 KiB
C++

#include "../../include/rdu/ColumnSchema.h"
bool COLUMN_SCHEMA::IsSupportedColumnType( const int nXUserType )
{
switch( nXUserType )
{
case USERTYPE_TINYINT:
case USERTYPE_SMALLINT:
case USERTYPE_INT:
case USERTYPE_SMALLDATETIME:
case USERTYPE_REAL:
case USERTYPE_DATETIME:
case USERTYPE_FLOAT:
case USERTYPE_BIT:
case USERTYPE_DECIMAL:
case USERTYPE_BIGINT:
case USERTYPE_VARCHAR:
case USERTYPE_CHAR:
case USERTYPE_TIMESTAMP:
case USERTYPE_NVARCHAR:
case USERTYPE_NCHAR:
return true;
}
return false;
}
COLUMN_SCHEMA::COLUMN_SCHEMA()
: eXUserType( USERTYPE_UNKNOWN )
, nLength( 0 )
, nXPrec( 0 )
, nXScale( 0 )
{
}
COLUMN_SCHEMA::COLUMN_SCHEMA( const char* _pszName,
_USERTYPE _eXUserType,
unsigned short _nLength,
unsigned char _nXPrec,
unsigned char _nXScale,
bool _bIsNullable,
const char* _pszDefaultValue,
const char* _pszCollation )
: eXUserType( _eXUserType )
, nLength( _nLength )
, nXPrec( _nXPrec )
, nXScale( _nXScale )
{
if( _pszName != NULL )
{
strName = _pszName;
}
if( _bIsNullable == true )
{
StatusFlag.Set( STATUS_FLAG_NULLABLE );
}
SetDefaultValue( _pszDefaultValue );
if( _pszCollation != NULL )
{
strCollation = _pszCollation;
}
}
const char* COLUMN_SCHEMA::GetDefaultValue() const
{
return StatusFlag.IsOn( STATUS_FLAG_HAS_DEFAULT_VALUE ) ? strDefaultValue.c_str() : NULL;
}
void COLUMN_SCHEMA::SetDefaultValue( const char* pszDefaultValue )
{
if( pszDefaultValue != NULL )
{
strDefaultValue = pszDefaultValue;
StatusFlag.Set( STATUS_FLAG_HAS_DEFAULT_VALUE );
}
else
{
strDefaultValue.clear();
StatusFlag.Set( STATUS_FLAG_HAS_DEFAULT_VALUE, false );
}
}
bool COLUMN_SCHEMA::IsNullable() const
{
return StatusFlag.IsOn( COLUMN_SCHEMA::STATUS_FLAG_NULLABLE );
}