Я задал похожий вопрос, и за него проголосовали, поэтому я удалил его. Я написал код для вставки, если вам интересно. Но я согласился с отрицательными комментариями, что статические операторы SQL менее подвержены ошибкам. Не говоря уже о менее интенсивном использовании процессора.
Для вставки я взял std::set
из std::pair
из std::string
. Первая строка - это имя столбца, а вторая - его значение. И Запрос вернул похожую структуру. Я играл с std::map
, std::vector
и std::unordered_set
, и все они имели бы здесь разные преимущества.
Что было бы замечательно, если бы вы обошли его, это небольшая служебная программа, которая может прочитать определение класса и написать для вас весь SQL. Я начал это и сдался из-за того, что синтаксический анализ заголовочного файла C ++ стал слишком сложным за время, которое я сэкономил на будущих проектах.
Добавлена
std::string Insert(std::string table, std::vector< std::pair<std::string,std::string> > row)
{
if (row.size()==0 || table.size()==0)
return "";
std::stringstream name,value;
auto it = row.begin();
name << "INSERT INTO " << table.c_str()<<"('" << (*it).first << "'";
value << "VALUES('" <<(*it).second << "'";
for ( ; it < row.end(); it++)
{
name << ", '" << (*it).first << "'";
value << ", '" <<(*it).second << "'";
}
name << ") ";
value << ");";
name << value.str();
return name.str();
}