00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00038
00039 #include <pqxx-object/insert_query.h>
00040
00041 using namespace pqxxobject;
00042
00043 insert_query::insert_query():
00044 pqxxobject::query(),
00045 table_name(),
00046 field_list()
00047 {
00048 }
00049
00050 insert_query::insert_query(const std::string& table):
00051 pqxxobject::query(),
00052 table_name(table),
00053 field_list()
00054 {
00055 }
00056
00057 insert_query::insert_query(const insert_query& rhs):
00058 pqxxobject::query(*this),
00059 table_name(rhs.table_name),
00060 field_list(rhs.field_list)
00061 {
00062 }
00063
00064 insert_query::~insert_query()
00065 {
00066 }
00067
00068 void
00069 insert_query::remove(const pqxxobject::field_base& field)
00070 {
00071 for (std::list<field_value>::iterator iter = field_list.begin();
00072 iter != field_list.end();
00073 ++iter)
00074 {
00075 if (iter->first == field.get_column_name())
00076 {
00077 iter = field_list.erase(iter);
00078 }
00079 }
00080 }
00081
00082 std::string insert_query::str()
00083 {
00084
00085 m_string.str("");
00086
00087 if (field_list.size() > 0)
00088 {
00089 m_string << "INSERT INTO " << table_name << '(';
00090 for (std::list<field_value>::const_iterator iter = field_list.begin();
00091 iter != field_list.end();
00092 ++iter)
00093 {
00094 if (iter != field_list.begin())
00095 m_string << ", ";
00096 m_string << iter->first;
00097 }
00098 m_string << ") VALUES (";
00099 for (std::list<field_value>::const_iterator iter = field_list.begin();
00100 iter != field_list.end();
00101 ++iter)
00102 {
00103 if (iter != field_list.begin())
00104 m_string << ", ";
00105 m_string << iter->second;
00106 }
00107 m_string << ')';
00108 }
00109 return m_string.str();
00110 }