fixed: in Model::generate_insert_query there was not ModelEnv set (was a null pointer)
similarly in generate_update_query and generate_remove_query added: support std::vector<> in Model::field() methods added: serializing std::vector and std::list for non-model classes in BaseExpression git-svn-id: svn://ttmath.org/publicrep/morm/trunk@1200 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
@@ -210,8 +210,11 @@ std::string Model::to_string()
|
||||
|
||||
|
||||
|
||||
void Model::generate_insert_query(PT::TextStream & stream)
|
||||
void Model::generate_insert_query(PT::TextStream & stream, ModelData * model_data)
|
||||
{
|
||||
ModelEnv model_env_local;
|
||||
model_env = &model_env_local;
|
||||
model_env->model_data = model_data;
|
||||
model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_GENERATING_DB_SQL;
|
||||
|
||||
if( model_connector )
|
||||
@@ -224,7 +227,8 @@ void Model::generate_insert_query(PT::TextStream & stream)
|
||||
}
|
||||
}
|
||||
|
||||
model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_NONE;
|
||||
// what about if an exception was thrown? this pointer will not be null
|
||||
model_env = nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -277,8 +281,11 @@ bool Model::insert(ModelData & model_data)
|
||||
}
|
||||
|
||||
|
||||
void Model::generate_update_query(PT::TextStream & stream)
|
||||
void Model::generate_update_query(PT::TextStream & stream, ModelData * model_data)
|
||||
{
|
||||
ModelEnv model_env_local;
|
||||
model_env = &model_env_local;
|
||||
model_env->model_data = model_data;
|
||||
model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_GENERATING_DB_SQL;
|
||||
|
||||
if( model_connector )
|
||||
@@ -291,7 +298,8 @@ void Model::generate_update_query(PT::TextStream & stream)
|
||||
}
|
||||
}
|
||||
|
||||
model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_NONE;
|
||||
// what about if an exception was thrown? this pointer will not be null
|
||||
model_env = nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -337,20 +345,25 @@ bool Model::update(ModelData & model_data)
|
||||
}
|
||||
|
||||
|
||||
void Model::generate_remove_query(PT::TextStream & stream)
|
||||
void Model::generate_remove_query(PT::TextStream & stream, ModelData * model_data)
|
||||
{
|
||||
ModelEnv model_env_local;
|
||||
model_env = &model_env_local;
|
||||
model_env->model_data = model_data;
|
||||
model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_GENERATING_DB_SQL;
|
||||
|
||||
if( model_connector )
|
||||
{
|
||||
DbConnector * db_connector = model_connector->get_db_connector();
|
||||
model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_GENERATING_DB_SQL;
|
||||
|
||||
if( db_connector )
|
||||
{
|
||||
db_connector->generate_remove_query(stream, *this);
|
||||
}
|
||||
|
||||
model_env->model_connector_mode = MORM_MODEL_CONNECTOR_MODE_NONE;
|
||||
}
|
||||
|
||||
// what about if an exception was thrown? this pointer will not be null
|
||||
model_env = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user