changed the way how to quote schemas, tables and field names,
added escaping table names in insert/update/remove removed methods from BaseExpression: virtual void before_short_field_name(); virtual void after_short_field_name(); virtual void before_first_part_long_field_name(); virtual void after_first_part_long_field_name(); virtual void before_second_part_long_field_name(); virtual void after_second_part_long_field_name(); added methods to BaseExpression: virtual void schema_table_separator(); virtual void table_field_separator(); virtual void before_schema_name(); virtual void after_schema_name(); virtual void before_table_name(); virtual void after_table_name(); virtual void before_field_name(); virtual void after_field_name();
This commit is contained in:
@@ -907,56 +907,54 @@ bool Model::is_the_same_field(const wchar_t * field1, const wchar_t * field2)
|
||||
|
||||
|
||||
|
||||
PT::WTextStream Model::get_table_name(bool put_schema_name)
|
||||
void Model::log_table_name(bool put_schema_name)
|
||||
{
|
||||
PT::WTextStream str;
|
||||
|
||||
if( model_env )
|
||||
if( model_connector && model_env )
|
||||
{
|
||||
if( put_schema_name && !model_env->schema_name.empty() )
|
||||
PT::Log * plog = model_connector->get_logger();
|
||||
|
||||
if( plog )
|
||||
{
|
||||
str << model_env->schema_name;
|
||||
if( put_schema_name && !model_env->schema_name.empty() )
|
||||
{
|
||||
(*plog) << model_env->schema_name;
|
||||
|
||||
// IMPROVEME make a virtual method in dbexpression to put such a dot
|
||||
str << '.';
|
||||
// although in BaseExpression there is schema_table_separator() method
|
||||
// but for logging purposes we can use just a dot here
|
||||
(*plog) << '.';
|
||||
}
|
||||
|
||||
(*plog) << model_env->table_name;
|
||||
}
|
||||
|
||||
str << model_env->table_name;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
PT::WTextStream Model::get_table_name_with_field(const wchar_t * db_field_name, bool put_schema_name)
|
||||
void Model::log_table_name_with_field(const wchar_t * db_field_name, bool put_schema_name)
|
||||
{
|
||||
PT::WTextStream str;
|
||||
bool is_empty_field_name = is_empty_field(db_field_name);
|
||||
|
||||
if( model_env )
|
||||
if( model_connector && model_env )
|
||||
{
|
||||
if( put_schema_name && !model_env->schema_name.empty() )
|
||||
PT::Log * plog = model_connector->get_logger();
|
||||
|
||||
if( plog )
|
||||
{
|
||||
str << model_env->schema_name;
|
||||
bool is_empty_field_name = is_empty_field(db_field_name);
|
||||
|
||||
// IMPROVEME make a virtual method in dbexpression to put such a dot
|
||||
str << '.';
|
||||
}
|
||||
if( put_schema_name && !model_env->schema_name.empty() )
|
||||
{
|
||||
(*plog) << model_env->schema_name;
|
||||
(*plog) << '.';
|
||||
}
|
||||
|
||||
str << model_env->table_name;
|
||||
(*plog) << model_env->table_name;
|
||||
|
||||
if( !is_empty_field_name )
|
||||
{
|
||||
str << '.'; // IMPROVEME get a virtual method from dbexpression
|
||||
if( !is_empty_field_name )
|
||||
{
|
||||
(*plog) << '.';
|
||||
(*plog) << db_field_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( !is_empty_field_name )
|
||||
{
|
||||
str << db_field_name;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
@@ -1099,7 +1097,9 @@ void Model::field_model_save_key(const wchar_t * db_field_name)
|
||||
|
||||
if( model_env->field_value_helper_tab->empty() && plog )
|
||||
{
|
||||
(*plog) << PT::Log::log1 << "Morm: I cannot find a primary key in " << get_table_name() << PT::Log::logend;
|
||||
(*plog) << PT::Log::log1 << "Morm: I cannot find a primary key in ";
|
||||
log_table_name();
|
||||
(*plog) << PT::Log::logend;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1139,14 +1139,19 @@ void Model::field_model_set_parent_key_in_child(const wchar_t * db_field_name, M
|
||||
{
|
||||
if( field_model.model_env->field_index == 0 )
|
||||
{
|
||||
(*log) << PT::Log::log1 << "Morm: there is no a foreign key in " << field_model.get_table_name()
|
||||
<< " called " << db_field_name << " pointing to " << get_table_name() << PT::Log::logend;
|
||||
(*log) << PT::Log::log1 << "Morm: there is no a foreign key in ";
|
||||
field_model.log_table_name();
|
||||
(*log) << " called " << db_field_name << " pointing to ";
|
||||
log_table_name();
|
||||
(*log) << PT::Log::logend;
|
||||
}
|
||||
else
|
||||
{
|
||||
(*log) << PT::Log::log1 << "Morm: primary key in " << get_table_name() << " consists of " << model_env->field_index << " column(s)"
|
||||
<< " but foreign key in " << field_model.get_table_name() << " consists of "
|
||||
<< field_model.model_env->field_index << " column(s)" << PT::Log::logend;
|
||||
(*log) << PT::Log::log1 << "Morm: primary key in ";
|
||||
log_table_name();
|
||||
(*log) << " consists of " << model_env->field_index << " column(s) but foreign key in ";
|
||||
field_model.log_table_name();
|
||||
(*log) << " consists of " << field_model.model_env->field_index << " column(s)" << PT::Log::logend;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1155,8 +1160,10 @@ void Model::field_model_set_parent_key_in_child(const wchar_t * db_field_name, M
|
||||
else
|
||||
if( log )
|
||||
{
|
||||
(*log) << PT::Log::log1 << "Morm: primary key in " << get_table_name() << " consists of incorrect number of columns"
|
||||
<< ", expected " << helper_tab.size() << " column(s) but got " << model_env->field_index << PT::Log::logend;
|
||||
(*log) << PT::Log::log1 << "Morm: primary key in ";
|
||||
log_table_name();
|
||||
(*log) << " consists of incorrect number of columns, expected " << helper_tab.size()
|
||||
<< " column(s) but got " << model_env->field_index << PT::Log::logend;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1368,8 +1375,9 @@ void Model::field_model(const wchar_t * db_field_name, const wchar_t * flat_fiel
|
||||
|
||||
if( plog )
|
||||
{
|
||||
(*plog) << PT::Log::log1 << "Morm: error in " << get_table_name_with_field(db_field_name)
|
||||
<< " field, you should set FT::is_foreign_key or FT::is_foreign_key_in_child flag for a model child object" << PT::Log::logend;
|
||||
(*plog) << PT::Log::log1 << "Morm: error in ";
|
||||
log_table_name_with_field(db_field_name);
|
||||
(*plog) << " field, you should set FT::is_foreign_key or FT::is_foreign_key_in_child flag for a model child object" << PT::Log::logend;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user