Software and Services, Portable Libraries  2019.Mar.01
A library for managing digital certificates
SoftwareAndServices::Library::Database::SQLENUM Class Reference

An object that represents a enum. More...

#include <SaS/Sql/SQLENUM.hpp>

+ Inheritance diagram for SoftwareAndServices::Library::Database::SQLENUM:
+ Collaboration diagram for SoftwareAndServices::Library::Database::SQLENUM:

Public Member Functions

 SQLENUM ()
 SQLENUM - Default Constructor. More...
 
 SQLENUM (const char *Val)
 SQLENUM - Constructor. More...
 
 SQLENUM (const SQLENUM &CopyFrom)
 SQLENUM - Copy Constructor. More...
 
virtual ~SQLENUM ()
 SQLENUM - Destructor. More...
 
void Add (const char *ValToAdd)
 Add a new value to this ENUM. More...
 
void Add (const String &ValToAdd)
 Add a new value to this ENUM. More...
 
void Add (const std::string &ValToAdd)
 Add a new value to this ENUM. More...
 
std::vector< int32_t > * Array () const
 Get the array information. More...
 
const char * ArraySpecs (const char *Format=NULL) const
 Print the array specifications, or NONE when they do not exist. More...
 
void Attributes (SqlColumnAttributes *Attrs)
 Set the column attributes. More...
 
virtual const char * BaseType () const
 Get the C++ base type name. More...
 
bool Check (const char *ToCheck) const
 Check to see if a value is valid. More...
 
bool Check (const String &ToCheck) const
 Check to see if a value is valid. More...
 
bool Check (const std::string &ToCheck) const
 Check to see if a value is valid. More...
 
virtual DataTypeBaseCopy () const
 Copy this object. More...
 
virtual InstanceCount_t decInstance () const
 Decrement the instance. More...
 
bool Default (const char *&DefVal) const
 Get its default value as a (char*). More...
 
bool Default (long double &DefVal) const
 Get its default value as a (long double). More...
 
bool Default (bool &DefVal) const
 Get its default value as a (bool). More...
 
void Dim (uint32_t Dim, int32_t DimSize)
 Set the maximum dimension (may grow). More...
 
SqlColumnForeignKeyForeignKey () const
 
void ForeignKey (SqlColumnForeignKey *Fk)
 Set any ForeignKey data for this column. More...
 
virtual bool fromString (const char *TheValue)
 Convert the object value from a string. More...
 
bool fromString (const String &TheValue)
 Convert the object value from a string. More...
 
bool fromString (const std::string &TheValue)
 Convert the object value from a string. More...
 
virtual InstanceCount_t getInstance () const
 
bool HasDefault () const
 Determine if this column has any default value. More...
 
bool HasForeignKey () const
 
bool HasSequence () const
 
virtual InstanceCount_t incInstance () const
 Increment the instance. More...
 
bool IsNull () const
 
bool IsPrimary () const
 
void IsPrimary (bool SetPrimary)
 Set if this column is the primary key for the table. More...
 
void IsSequence (bool SetSeq, const char *SeqName)
 Set if this column is an auto-increment value. More...
 
bool IsSequence (const char *&SeqName) const
 
bool IsUnique () const
 
void IsUnique (bool SetUnique)
 Set if this column data is unique in the table. More...
 
void Length (uint64_t Len)
 Set the length of the data. More...
 
uint64_t Length () const
 
bool MayBeNull () const
 
void MayBeNull (bool SetNullOk)
 Set if this column may be set to null. More...
 
void Name (const char *TheName)
 Set the name of this ENUM. More...
 
const char * Name () const
 
void operator delete (void *ToFree)
 
bool operator!= (const SqlColumn &Other)
 Compare Operator. More...
 
bool operator== (const SqlColumn &Other)
 Compare Operator. More...
 
virtual const char * toString () const
 Convert the object value to a string. More...
 
SQL::SqlDataType_e Type () const
 
void Type (SQL::SqlDataType_e Dt)
 Set the SqlDataType_e for this object. More...
 
const char * TypeName () const
 Get the type name. More...
 
std::vector< const char * > * Values () const
 Get the list of values. More...
 

Static Public Member Functions

static const std::map< const char *, SQLENUM * > * AllEnums ()
 Get a list of all enums. More...
 
static void CreateCpp ()
 Create the C++ code for all SQL FUNCTION objects. More...
 
static SQLENUMFindEnum (const char *ToFind)
 Find the named ENUM. More...
 
static SQLENUMFindEnum (const String &ToFind)
 Find the named ENUM. More...
 
static SQLENUMFindEnum (const std::string &ToFind)
 Find the named ENUM. More...
 
static void FromVector (std::vector< SQLENUM *> &Vector, String &Results)
 Convert an array of values, into a form suitable for an insert. More...
 
static bool GenExtractUtcTime_t (const char *ColName, String &Results)
 Generate an SQL statement that will extract a TIMESTAMP to UTC, as a time_t value as a (char*). More...
 
static bool ToSqlTime (time_t TheTimeT, String &Results)
 Convert a time_t in UTC, to a value acceptable to SQL as a timestamp. More...
 
static void ToVector (const char *OneString, std::vector< SQLENUM *> &Results)
 Convert an SQL array result to an array of SqlColumn values. More...
 

Protected Member Functions

void CopyColumnData (const SqlColumn &Other)
 Copy just the SqlColumn Data only. More...
 

Protected Attributes

std::vector< int32_t > * _ArrayInfo
 When an array, this pointer will be NON-NULL. More...
 
SQL::SqlDataType_e _Dt
 The data type. More...
 
char * _ToStringCache
 When non-NULL, the object value as a (char*). More...
 

Detailed Description

An object that represents a enum.

Definition at line 47 of file SQLENUM.hpp.

Constructor & Destructor Documentation

◆ SQLENUM() [1/3]

SoftwareAndServices::Library::Database::SQLENUM::SQLENUM ( )

SQLENUM - Default Constructor.

◆ SQLENUM() [2/3]

SoftwareAndServices::Library::Database::SQLENUM::SQLENUM ( const char *  Val)

SQLENUM - Constructor.

Parameters
ValueThe value to inititalize it from.

◆ SQLENUM() [3/3]

SoftwareAndServices::Library::Database::SQLENUM::SQLENUM ( const SQLENUM CopyFrom)

SQLENUM - Copy Constructor.

Parameters
CopyFromThe SQLENUM to copy from.

◆ ~SQLENUM()

virtual SoftwareAndServices::Library::Database::SQLENUM::~SQLENUM ( )
virtual

SQLENUM - Destructor.

Member Function Documentation

◆ Add() [1/3]

void SoftwareAndServices::Library::Database::SQLENUM::Add ( const char *  ValToAdd)

Add a new value to this ENUM.

Parameters
ValToAddThe value to add.

◆ Add() [2/3]

void SoftwareAndServices::Library::Database::SQLENUM::Add ( const String &  ValToAdd)

Add a new value to this ENUM.

Parameters
ValToAddThe value to add.

◆ Add() [3/3]

void SoftwareAndServices::Library::Database::SQLENUM::Add ( const std::string &  ValToAdd)

Add a new value to this ENUM.

Parameters
ValToAddThe value to add.

◆ AllEnums()

static const std::map<const char*, SQLENUM*>* SoftwareAndServices::Library::Database::SQLENUM::AllEnums ( )
static

Get a list of all enums.

Returns
The map of SQLENUM TYPEs.

◆ Array()

std::vector<int32_t>* SoftwareAndServices::Library::Database::DataTypeBase::Array ( ) const
inherited

Get the array information.

Returns
The array information, or NULL when NOT an array.

◆ ArraySpecs()

const char* SoftwareAndServices::Library::Database::DataTypeBase::ArraySpecs ( const char *  Format = NULL) const
inherited

Print the array specifications, or NONE when they do not exist.

([][], [3][10], ...)

Parameters
FormatWhen non-NULL, format using snprintf. When non-NULL a single 's' will be replaced with the results.

Example, Called with "SQLBIGINTs' could return with: SQLBIGINT[][], SQLBIGINT[3][10], or when there are no dimensions SQLBIGINT.

Note
The results are overwritten on each call.
Returns
The array specification optionally formatted with Format.

◆ Attributes()

void SoftwareAndServices::Library::Database::SqlColumn::Attributes ( SqlColumnAttributes Attrs)
inherited

Set the column attributes.

Used by YACC to set what it found.

Parameters
AttrsThe attributes.

◆ BaseType()

virtual const char* SoftwareAndServices::Library::Database::SQLENUM::BaseType ( ) const
virtual

Get the C++ base type name.

(int32_t, SQLTIMESTAMP, double, (char*), ...)

Implements SoftwareAndServices::Library::Database::DataTypeBase.

◆ Check() [1/3]

bool SoftwareAndServices::Library::Database::SQLENUM::Check ( const char *  ToCheck) const

Check to see if a value is valid.

Parameters
ToCheckThe Value to check.
Returns
true when ToCheck is a valid value for this ENUM.

◆ Check() [2/3]

bool SoftwareAndServices::Library::Database::SQLENUM::Check ( const String &  ToCheck) const

Check to see if a value is valid.

Parameters
ToCheckThe Value to check.
Returns
true when ToCheck is a valid value for this ENUM.

◆ Check() [3/3]

bool SoftwareAndServices::Library::Database::SQLENUM::Check ( const std::string &  ToCheck) const

Check to see if a value is valid.

Parameters
ToCheckThe Value to check.
Returns
true when ToCheck is a valid value for this ENUM.

◆ Copy()

virtual DataTypeBase* SoftwareAndServices::Library::Database::SQLENUM::Copy ( ) const
virtual

Copy this object.

Returns
A new copy of this object.

Implements SoftwareAndServices::Library::Database::DataTypeBase.

◆ CopyColumnData()

void SoftwareAndServices::Library::Database::SqlColumn::CopyColumnData ( const SqlColumn Other)
protectedinherited

Copy just the SqlColumn Data only.

Used by the derived clases Copy() method.

Parameters
OtherThe other SqlColumn to copy from.

◆ CreateCpp()

static void SoftwareAndServices::Library::Database::SqlColumn::CreateCpp ( )
staticinherited

Create the C++ code for all SQL FUNCTION objects.

◆ decInstance()

virtual InstanceCount_t SoftwareAndServices::Library::Common::instance< DataTypeBase >::decInstance ( ) const
inlinevirtualinherited

Decrement the instance.

Returns
The instance count, after decrementing it.

Definition at line 129 of file instance.hpp.

◆ Default() [1/3]

bool SoftwareAndServices::Library::Database::SqlColumn::Default ( const char *&  DefVal) const
inherited

Get its default value as a (char*).

Parameters
[out]DefValThe default value as a (char*).
Returns
true when this column has a string default value.

◆ Default() [2/3]

bool SoftwareAndServices::Library::Database::SqlColumn::Default ( long double &  DefVal) const
inherited

Get its default value as a (long double).

Parameters
[out]DefValThe default value as a double.
Returns
true when this column has a double default value.

◆ Default() [3/3]

bool SoftwareAndServices::Library::Database::SqlColumn::Default ( bool &  DefVal) const
inherited

Get its default value as a (bool).

Parameters
[out]DefValThe default value as a bool.
Returns
true when this column has a boolean default value.

◆ Dim()

void SoftwareAndServices::Library::Database::DataTypeBase::Dim ( uint32_t  Dim,
int32_t  DimSize 
)
inherited

Set the maximum dimension (may grow).

Parameters
DimNumberThe number of dimensions. When DimNumber is greater than the current number of dimensions, it is incremented. When less, only the size is set.
DimSizeThe size of dimension DimNumber.

◆ FindEnum() [1/3]

static SQLENUM* SoftwareAndServices::Library::Database::SQLENUM::FindEnum ( const char *  ToFind)
static

Find the named ENUM.

Parameters
ToFindThe name of the SQLENUM to find.
Returns
The SQLENUM found, or NULL when it does not exist.

◆ FindEnum() [2/3]

static SQLENUM* SoftwareAndServices::Library::Database::SQLENUM::FindEnum ( const String &  ToFind)
static

Find the named ENUM.

Parameters
ToFindThe name of the SQLENUM to find.
Returns
The SQLENUM found, or NULL when it does not exist.

◆ FindEnum() [3/3]

static SQLENUM* SoftwareAndServices::Library::Database::SQLENUM::FindEnum ( const std::string &  ToFind)
static

Find the named ENUM.

Parameters
ToFindThe name of the SQLENUM to find.
Returns
The SQLENUM found, or NULL when it does not exist.

◆ ForeignKey() [1/2]

SqlColumnForeignKey* SoftwareAndServices::Library::Database::SqlColumn::ForeignKey ( ) const
inherited
Returns
any ForeignKey data, or NULL when none.

◆ ForeignKey() [2/2]

void SoftwareAndServices::Library::Database::SqlColumn::ForeignKey ( SqlColumnForeignKey Fk)
inherited

Set any ForeignKey data for this column.

Parameters
FkThe foreign key data.

◆ fromString() [1/3]

virtual bool SoftwareAndServices::Library::Database::SQLENUM::fromString ( const char *  TheValue)
virtual

Convert the object value from a string.

Parameters
TheValueThe value to convert to the data type.

Implements SoftwareAndServices::Library::Database::DataTypeBase.

◆ fromString() [2/3]

bool SoftwareAndServices::Library::Database::DataTypeBase::fromString ( const String TheValue)
inherited

Convert the object value from a string.

Parameters
TheValueThe value to convert to the data type.

◆ fromString() [3/3]

bool SoftwareAndServices::Library::Database::DataTypeBase::fromString ( const std::string &  TheValue)
inherited

Convert the object value from a string.

Parameters
TheValueThe value to convert to the data type.

◆ FromVector()

static void SoftwareAndServices::Library::Database::SQLENUM::FromVector ( std::vector< SQLENUM *> &  Vector,
String &  Results 
)
static

Convert an array of values, into a form suitable for an insert.

Parameters
VectorThe array of values to convert to a SQL INSERT string.
[out]ResultsWhere the results are stored.

◆ GenExtractUtcTime_t()

static bool SoftwareAndServices::Library::Database::DataTypeBase::GenExtractUtcTime_t ( const char *  ColName,
String Results 
)
staticinherited

Generate an SQL statement that will extract a TIMESTAMP to UTC, as a time_t value as a (char*).

This does not fetch the column value, it generates the SQL SELECT string.

Called with ColName set to created, it will produce the string:

extract(epoch from created at time zone utc)

The results can be used in place of a column name in a SQL SELECT command.

Parameters
ColNameThe SQL table column name.
[out]ResultsWhere the results will be stored. The results will be appended to any existing value in Results.
Returns
true on success.

◆ getInstance()

virtual InstanceCount_t SoftwareAndServices::Library::Common::instance< DataTypeBase >::getInstance ( ) const
inlinevirtualinherited
Returns
The current instance count.

Definition at line 118 of file instance.hpp.

◆ HasDefault()

bool SoftwareAndServices::Library::Database::SqlColumn::HasDefault ( ) const
inherited

Determine if this column has any default value.

◆ HasForeignKey()

bool SoftwareAndServices::Library::Database::SqlColumn::HasForeignKey ( ) const
inherited
Returns
true when this object has a foreign key.

◆ HasSequence()

bool SoftwareAndServices::Library::Database::SqlColumn::HasSequence ( ) const
inherited
Returns
true when this column is a auto increment type.

◆ incInstance()

virtual InstanceCount_t SoftwareAndServices::Library::Common::instance< DataTypeBase >::incInstance ( ) const
inlinevirtualinherited

Increment the instance.

Returns
The instance value, after incrementing it.

Definition at line 109 of file instance.hpp.

◆ IsNull()

bool SoftwareAndServices::Library::Database::SqlColumn::IsNull ( ) const
inherited
Returns
true when this columns value is null.

◆ IsPrimary() [1/2]

bool SoftwareAndServices::Library::Database::SqlColumn::IsPrimary ( ) const
inherited
Returns
true when this columb is the primary key for the table.

◆ IsPrimary() [2/2]

void SoftwareAndServices::Library::Database::SqlColumn::IsPrimary ( bool  SetPrimary)
inherited

Set if this column is the primary key for the table.

Parameters
SetPrimaryWhen true, this columb is the primary key for the table.

◆ IsSequence() [1/2]

void SoftwareAndServices::Library::Database::SqlColumn::IsSequence ( bool  SetSeq,
const char *  SeqName 
)
inherited

Set if this column is an auto-increment value.

Parameters
SetSeqWhen true, this column value is an auto increment value.
SeqNameOptional, some SQL databases name the sequence.

◆ IsSequence() [2/2]

bool SoftwareAndServices::Library::Database::SqlColumn::IsSequence ( const char *&  SeqName) const
inherited
Parameters
[out]SeqNameA (char*) that will be updated when the sequence has a name.
Returns
true when this column's value is auto increment. Will be set to NULL when the sequence does not have a name.

◆ IsUnique() [1/2]

bool SoftwareAndServices::Library::Database::SqlColumn::IsUnique ( ) const
inherited
Returns
true if this column value is unique in the table.

◆ IsUnique() [2/2]

void SoftwareAndServices::Library::Database::SqlColumn::IsUnique ( bool  SetUnique)
inherited

Set if this column data is unique in the table.

SetUnique When true, the column value is unique in the table.

◆ Length() [1/2]

void SoftwareAndServices::Library::Database::SqlColumn::Length ( uint64_t  Len)
inherited

Set the length of the data.

Parameters
LenThe length, or zero (0) for unspecified.

◆ Length() [2/2]

uint64_t SoftwareAndServices::Library::Database::SqlColumn::Length ( ) const
inherited
Returns
the length of the data, or zero (0) for unspecified.

◆ MayBeNull() [1/2]

bool SoftwareAndServices::Library::Database::SqlColumn::MayBeNull ( ) const
inherited
Returns
true when this column may be set to null.

◆ MayBeNull() [2/2]

void SoftwareAndServices::Library::Database::SqlColumn::MayBeNull ( bool  SetNullOk)
inherited

Set if this column may be set to null.

Parameters
SetNullOkWhen true, this columns value may be set to null.

◆ Name() [1/2]

void SoftwareAndServices::Library::Database::SQLENUM::Name ( const char *  TheName)

Set the name of this ENUM.

Parameters
TheNameThe name of this enum.

◆ Name() [2/2]

const char* SoftwareAndServices::Library::Database::SQLENUM::Name ( ) const
Returns
The name of this ENUM.

◆ operator!=()

bool SoftwareAndServices::Library::Database::SqlColumn::operator!= ( const SqlColumn Other)
inherited

Compare Operator.

Parameters
OtherThe other object to compare to.
Returns
true when they do not have the same values.

◆ operator==()

bool SoftwareAndServices::Library::Database::SqlColumn::operator== ( const SqlColumn Other)
inherited

Compare Operator.

Parameters
OtherThe other object to compare to.
Returns
true when they have the same values.

◆ ToSqlTime()

static bool SoftwareAndServices::Library::Database::DataTypeBase::ToSqlTime ( time_t  TheTimeT,
String Results 
)
staticinherited

Convert a time_t in UTC, to a value acceptable to SQL as a timestamp.

Parameters
TheTimeTThe time_t value.
ResultsWhere the results will be appended.
Returns
true if converted.

◆ toString()

virtual const char* SoftwareAndServices::Library::Database::SQLENUM::toString ( ) const
virtual

Convert the object value to a string.

Implements SoftwareAndServices::Library::Database::DataTypeBase.

◆ ToVector()

static void SoftwareAndServices::Library::Database::SQLENUM::ToVector ( const char *  OneString,
std::vector< SQLENUM *> &  Results 
)
static

Convert an SQL array result to an array of SqlColumn values.

Example: A PostgreSQL table column is an array of integer (measured integer[]). It is returned from a SELECT as: "{1, 5, 7}"

This method converts the SELECT results into separate (SQLINTEGER*) values.

Parameters
OneStringThe string returned from SELECT.
[out]ResultsWere the results will be stored. The contents of Results will be cleared before filling in the results.

◆ Type() [1/2]

SQL::SqlDataType_e SoftwareAndServices::Library::Database::DataTypeBase::Type ( ) const
inherited
Returns
the SqlDataType_e for this object.

◆ Type() [2/2]

void SoftwareAndServices::Library::Database::DataTypeBase::Type ( SQL::SqlDataType_e  Dt)
inherited

Set the SqlDataType_e for this object.

Parameters
DtThe data type.

◆ TypeName()

const char* SoftwareAndServices::Library::Database::SQLENUM::TypeName ( ) const

Get the type name.

Returns
The name of the type (not the name of the column).

◆ Values()

std::vector<const char*>* SoftwareAndServices::Library::Database::SQLENUM::Values ( ) const

Get the list of values.

Member Data Documentation

◆ _ArrayInfo

std::vector<int32_t>* SoftwareAndServices::Library::Database::DataTypeBase::_ArrayInfo
protectedinherited

When an array, this pointer will be NON-NULL.

Definition at line 1968 of file SQL.hpp.

◆ _Dt

SQL::SqlDataType_e SoftwareAndServices::Library::Database::DataTypeBase::_Dt
protectedinherited

The data type.

Definition at line 1963 of file SQL.hpp.

◆ _ToStringCache

char* SoftwareAndServices::Library::Database::DataTypeBase::_ToStringCache
mutableprotectedinherited

When non-NULL, the object value as a (char*).

Definition at line 1973 of file SQL.hpp.


The documentation for this class was generated from the following file: