added BaseExpression::is_long_field_name()
added BaseExpression::need_to_add_field_prefix() now the fields() methods don't take add_column_prefix parameter but the field_name (wchar_t*) is tested whether is it a long (with a period) or short name added BaseExpression::save_foreign_key() (code moved from field()) removed some default method arguments from BaseExpression added neq() method for Finder added DbExpression::prepare_short_table_name(const PT::TextStream & table_name, PT::TextStream & short_table_name) git-svn-id: svn://ttmath.org/publicrep/morm/branches/join_models@1194 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
49
src/model.h
49
src/model.h
@@ -95,7 +95,6 @@ public:
|
||||
*
|
||||
*/
|
||||
virtual void table_name(PT::TextStream & stream);
|
||||
virtual void table_name_for_join_as(PT::TextStream & stream);
|
||||
|
||||
virtual void to_text(PT::TextStream & stream, ModelData * model_data, bool clear_stream = true);
|
||||
virtual void to_text(PT::TextStream & stream, ModelData & model_data, bool clear_stream = true);
|
||||
@@ -131,8 +130,6 @@ public:
|
||||
// set object to default values
|
||||
virtual void clear();
|
||||
|
||||
// we need a pointer to ModelData here?
|
||||
virtual void prepare_to_select();
|
||||
|
||||
|
||||
protected:
|
||||
@@ -649,7 +646,7 @@ protected:
|
||||
if( flat_expression && !is_empty_field(flat_field_name) )
|
||||
{
|
||||
// insertable, updatable and is_primary_key are ignored here
|
||||
flat_expression->field(flat_field_name, field_value, insertable, updatable, is_primary_key, true, model_env);
|
||||
flat_expression->field(flat_field_name, field_value, insertable, updatable, is_primary_key, model_env);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -664,7 +661,7 @@ protected:
|
||||
|
||||
if( db_expression && !is_empty_field(db_field_name) )
|
||||
{
|
||||
db_expression->field(db_field_name, field_value, insertable, updatable, is_primary_key, true, model_env);
|
||||
db_expression->field(db_field_name, field_value, insertable, updatable, is_primary_key, model_env);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -712,7 +709,7 @@ protected:
|
||||
if( doc_expression && !is_empty_field(flat_field_name) )
|
||||
{
|
||||
// insertable, updatable and is_primary_key are ignored here
|
||||
doc_expression->field_doc(*this, flat_field_name, field_value, insertable, updatable, is_primary_key);
|
||||
doc_expression->field_doc(*this, flat_field_name, field_value, insertable, updatable, is_primary_key, model_env);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -724,14 +721,14 @@ protected:
|
||||
{
|
||||
if( model_env && field_model.model_env && model_env->finder_helper )
|
||||
{
|
||||
model_env->finder_helper->morm_foreign_keys.clear();
|
||||
field_model.model_env->table_index = model_env->finder_helper->add_join_table(field_model.model_env->table_name_simple);
|
||||
model_env->finder_helper->foreign_keys.clear();
|
||||
field_model.model_env->table_index = model_env->finder_helper->add_join_table(field_model.model_env->table_name_short);
|
||||
|
||||
model_env->finder_helper->morm_finder_join_tables << "LEFT JOIN " << field_model.model_env->table_name
|
||||
<< " AS " << field_model.model_env->table_name_simple;
|
||||
model_env->finder_helper->join_tables_str << "LEFT JOIN " << field_model.model_env->table_name
|
||||
<< " AS " << field_model.model_env->table_name_short;
|
||||
|
||||
if( field_model.model_env->table_index > 1 )
|
||||
model_env->finder_helper->morm_finder_join_tables << field_model.model_env->table_index;
|
||||
model_env->finder_helper->join_tables_str << field_model.model_env->table_index;
|
||||
|
||||
int expr_work_mode = db_expression->get_work_mode();
|
||||
int expr_output_type = db_expression->get_output_type();
|
||||
@@ -745,29 +742,29 @@ protected:
|
||||
{
|
||||
field_model.map_fields();
|
||||
|
||||
model_env->finder_helper->morm_finder_join_tables << " ON " << model_env->table_name_simple << '.'
|
||||
<< db_field_name << " = " << field_model.model_env->table_name_simple << '.';
|
||||
model_env->finder_helper->join_tables_str << " ON " << model_env->table_name_short << '.'
|
||||
<< db_field_name << " = " << field_model.model_env->table_name_short << '.';
|
||||
|
||||
if( model_env->finder_helper->morm_foreign_keys.size() == 1 )
|
||||
if( model_env->finder_helper->foreign_keys.size() == 1 )
|
||||
{
|
||||
model_env->finder_helper->morm_finder_join_tables << model_env->finder_helper->morm_foreign_keys.front();
|
||||
model_env->finder_helper->join_tables_str << model_env->finder_helper->foreign_keys.front();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
map_fields();
|
||||
|
||||
model_env->finder_helper->morm_finder_join_tables << " ON " << model_env->table_name_simple << '.';
|
||||
model_env->finder_helper->join_tables_str << " ON " << model_env->table_name_short << '.';
|
||||
|
||||
if( model_env->finder_helper->morm_foreign_keys.size() == 1 )
|
||||
if( model_env->finder_helper->foreign_keys.size() == 1 )
|
||||
{
|
||||
model_env->finder_helper->morm_finder_join_tables << model_env->finder_helper->morm_foreign_keys.front();
|
||||
model_env->finder_helper->join_tables_str << model_env->finder_helper->foreign_keys.front();
|
||||
}
|
||||
|
||||
model_env->finder_helper->morm_finder_join_tables << " = " << field_model.model_env->table_name_simple << '.' << db_field_name;
|
||||
model_env->finder_helper->join_tables_str << " = " << field_model.model_env->table_name_short << '.' << db_field_name;
|
||||
}
|
||||
|
||||
model_env->finder_helper->morm_finder_join_tables << ' ';
|
||||
model_env->finder_helper->join_tables_str << ' ';
|
||||
|
||||
db_expression->set_work_mode(expr_work_mode);
|
||||
db_expression->set_output_type(expr_output_type);
|
||||
@@ -777,7 +774,7 @@ protected:
|
||||
|
||||
|
||||
|
||||
void field_model_generate_flat_string(const wchar_t * db_field_name, const wchar_t * flat_field_name, Model & field_model, bool insertable, bool updatable, bool has_foreign_key)
|
||||
void field_model_generate_flat_string(const wchar_t * db_field_name, const wchar_t * flat_field_name, Model & field_model, bool insertable, bool updatable)
|
||||
{
|
||||
FlatConnector * flat_connector = model_connector->get_flat_connector();
|
||||
|
||||
@@ -788,7 +785,7 @@ protected:
|
||||
if( flat_expression && !is_empty_field(flat_field_name) )
|
||||
{
|
||||
field_model.model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_GENERATING_FLAT_STRING;
|
||||
flat_expression->field_model(flat_field_name, field_model, insertable, updatable, false);
|
||||
flat_expression->field_model(flat_field_name, field_model, insertable, updatable, false, model_env);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -807,7 +804,7 @@ protected:
|
||||
field_model.model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_GENERATING_DB_SQL;
|
||||
|
||||
field_model.table_name(field_model.model_env->table_name);
|
||||
field_model.table_name_for_join_as(field_model.model_env->table_name_simple);
|
||||
db_expression->prepare_short_table_name(field_model.model_env->table_name, field_model.model_env->table_name_short);
|
||||
|
||||
if( db_expression->get_output_type() == MORM_OUTPUT_TYPE_SELECT_COLUMNS )
|
||||
{
|
||||
@@ -848,7 +845,7 @@ protected:
|
||||
if( doc_expression && !is_empty_field(flat_field_name) )
|
||||
{
|
||||
// insertable, updatable and is_primary_key are ignored here
|
||||
doc_expression->field_doc(*this, flat_field_name, field_model, insertable, updatable, false);
|
||||
doc_expression->field_doc(*this, flat_field_name, field_model, insertable, updatable, false, model_env);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -885,7 +882,7 @@ protected:
|
||||
|
||||
if( model_env->model_connector_mode == MORM_MODEL_CONNECTOR_MODE_GENERATING_FLAT_STRING )
|
||||
{
|
||||
field_model_generate_flat_string(db_field_name, flat_field_name, field_model, insertable, updatable, has_foreign_key);
|
||||
field_model_generate_flat_string(db_field_name, flat_field_name, field_model, insertable, updatable);
|
||||
}
|
||||
|
||||
if( model_env->model_connector_mode == MORM_MODEL_CONNECTOR_MODE_GENERATING_DB_SQL )
|
||||
@@ -976,7 +973,7 @@ protected:
|
||||
if( doc_expression && !is_empty_field(flat_field_name) )
|
||||
{
|
||||
// insertable, updatable and is_primary_key are ignored here
|
||||
doc_expression->field_doc(*this, flat_field_name, field_container, insertable, updatable, false, model_env->model_data);
|
||||
doc_expression->field_doc(*this, flat_field_name, field_container, insertable, updatable, false, model_env);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user