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:
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user