some work for SELECT statement

git-svn-id: svn://ttmath.org/publicrep/morm/trunk@1077 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2018-03-30 19:34:45 +00:00
parent d84ca900c3
commit fceec43d07
16 changed files with 605 additions and 105 deletions

View File

@@ -53,10 +53,39 @@ public:
BaseExpression();
virtual ~BaseExpression();
virtual void set_work_mode(int work_mode);
virtual void generate_from_model(PT::TextStream & stream, Model & model);
template<typename FieldValue>
void field(const wchar_t * field_name, const FieldValue & field_value, bool insertable = true, bool updatable = true, bool is_primary_key = false)
{
if( can_field_be_generated(insertable, updatable, is_primary_key) )
{
field_before();
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS )
{
put_field_name(field_name);
}
else
if( work_mode == MORM_WORK_MODE_MODEL_VALUES )
{
put_field_value(field_value);
}
else
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS_VALUES )
{
put_field_name(field_name);
put_name_value_separator();
put_field_value(field_value);
}
field_after();
}
}
protected:
@@ -86,32 +115,6 @@ protected:
virtual void field_before();
virtual void field_after();
template<typename FieldValue>
void field(const wchar_t * field_name, const FieldValue & field_value, bool insertable = true, bool updatable = true, bool is_primary_key = false)
{
if( can_field_be_generated(insertable, updatable, is_primary_key) )
{
field_before();
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS )
{
put_field_name(field_name);
}
else
if( work_mode == MORM_WORK_MODE_MODEL_VALUES )
{
put_field_value(field_value);
}
else
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS_VALUES )
{
print_field_name_value(field_name, field_value);
}
field_after();
}
}
//void field(const wchar_t * field_name, Model & field, bool insertable = true, bool updatable = true);
virtual void put_field_name(const wchar_t * field_name);
@@ -134,6 +137,13 @@ protected:
virtual void before_field_value(const std::string &);
virtual void after_field_value(const std::string &);
virtual void before_field_value(const wchar_t *);
virtual void after_field_value(const wchar_t *);
virtual void before_field_value(const char *);
virtual void after_field_value(const char *);
template<typename FieldValue>
void before_field_value(const FieldValue &)
{
@@ -181,14 +191,6 @@ protected:
*/
template<typename FieldValue>
void print_field_name_value(const wchar_t * field_name, const FieldValue & field_value)
{
put_field_name(field_name);
put_name_value_separator();
put_field_value(field_value);
}
/*
template<typename Container>
@@ -228,6 +230,7 @@ protected:
virtual void esc(const std::wstring & val, PT::TextStream & stream);
virtual void esc(const wchar_t * val, PT::TextStream & stream);
virtual void esc(const std::string & val, PT::TextStream & stream);
virtual void esc(const char * val, PT::TextStream & stream);
@@ -245,7 +248,6 @@ protected:
virtual void esc(long double val, PT::TextStream & stream);
virtual void esc(void* val, PT::TextStream & stream);
friend ModelConnector;
};