removing objects
saving objects (either insert or update or remove)





git-svn-id: svn://ttmath.org/publicrep/morm/trunk@1091 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2018-04-22 01:26:46 +00:00
parent 925017300b
commit 4c0d203fc8
12 changed files with 542 additions and 151 deletions

View File

@@ -112,11 +112,26 @@ bool DbConnector::query_insert(const PT::TextStream & stream)
return false;
}
bool DbConnector::query_remove(const PT::TextStream & stream)
{
return false;
}
size_t DbConnector::last_select_size()
{
return 0;
}
std::wstring DbConnector::get_last_query_error_msg()
{
return std::wstring();
}
bool DbConnector::was_error_in_last_query()
{
return false;
}
void DbConnector::set_current_row_at_beginning()
{
@@ -159,12 +174,12 @@ void DbConnector::generate_insert_query(PT::TextStream & stream, Model & model)
if( db_expression )
{
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_UPDATE);
stream << "insert into ";
model.table_name(stream);
stream << " (";
db_expression->set_work_mode(MORM_WORK_MODE_MODEL_FIELDS);
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_UPDATE);
db_expression->generate_from_model(stream, model);
stream << ") values (";
@@ -181,13 +196,12 @@ void DbConnector::generate_update_query(PT::TextStream & stream, Model & model)
if( db_expression )
{
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_UPDATE);
stream << "update ";
model.table_name(stream);
stream << " set ";
stream << " set ";
db_expression->set_work_mode(MORM_WORK_MODE_MODEL_FIELDS_VALUES);
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_UPDATE);
db_expression->generate_from_model(stream, model);
stream << " where ";
@@ -198,6 +212,20 @@ void DbConnector::generate_update_query(PT::TextStream & stream, Model & model)
}
void DbConnector::generate_remove_query(PT::TextStream & stream, Model & model)
{
allocate_default_expression_if_needed();
if( db_expression )
{
stream << "delete from ";
model.table_name(stream);
stream << " where ";
db_expression->set_work_mode(MORM_WORK_MODE_MODEL_FIELDS_VALUES);
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_PRIMARY_KEY);
db_expression->generate_from_model(stream, model);
}
}
bool DbConnector::insert(PT::TextStream & stream, Model & model)
{
@@ -213,6 +241,13 @@ bool DbConnector::update(PT::TextStream & stream, Model & model)
}
bool DbConnector::remove(PT::TextStream & stream, Model & model)
{
generate_remove_query(stream, model);
return query_remove(stream);
}
void DbConnector::deallocate_expression()
{
if( expression_allocated )