diff --git a/src/model.h b/src/model.h index 0712fa4..9fab7e0 100644 --- a/src/model.h +++ b/src/model.h @@ -289,6 +289,13 @@ public: env.res.type = Ezc::Var::Type::TYPE_DATE; env.res.date = model_env->ezc_var_date; } + else + if( model_env->model_container_wrapper ) + { + env.res.type = Ezc::Var::Type::TYPE_MODEL_CONTAINER_WRAPPER; + env.res.model_container_wrapper = model_env->model_container_wrapper; + } + // else // if( model_env->model ) // { @@ -1214,15 +1221,17 @@ protected: { ContainerItemType * item_type_null_pointer = nullptr; - if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER ) + if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM ) { if constexpr (std::is_base_of()) { if( (is_empty_field(model_env->db_field_name) || is_the_same_field(db_field_name, model_env->db_field_name)) && (is_empty_field(model_env->flat_field_name) || is_the_same_field(flat_field_name, model_env->flat_field_name)) && - !model_env->wrapper.model_container_wrapper ) + !model_env->model_container_wrapper ) { - model_env->wrapper.model_container_wrapper = new ModelWrapperList(&field_value); + model_env->was_field_found = true; + //model_env->wrapper.model_container_wrapper = new ModelWrapperList(&field_value); + model_env->model_container_wrapper = new ModelWrapperList(&field_value); } } } diff --git a/src/modelenv.h b/src/modelenv.h index 638b92d..f7a2bf8 100644 --- a/src/modelenv.h +++ b/src/modelenv.h @@ -96,6 +96,7 @@ public: Model * child_model; pt::Stream * stream; bool was_field_found; // used only in MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM + Wrapper wrapper; @@ -104,6 +105,9 @@ public: const std::type_info * ezc_fun_info_typeinfo; pt::Space * ezc_var_space_local; pt::Date * ezc_var_date; + + ModelContainerWrapper * model_container_wrapper; + #endif ModelEnv() @@ -145,6 +149,7 @@ public: ezc_fun_info_typeinfo = e.ezc_fun_info_typeinfo; ezc_var_space_local = e.ezc_var_space_local; ezc_var_date = e.ezc_var_date; + model_container_wrapper = e.model_container_wrapper; #endif // schema_name and table_name don't have to be copied @@ -197,6 +202,7 @@ public: ezc_fun_info_typeinfo = nullptr; ezc_var_space_local = nullptr; ezc_var_date = nullptr; + model_container_wrapper = nullptr; #endif }