C++ 从Sqlite数据库中检索的行创建对象

C++ 从Sqlite数据库中检索的行创建对象,c++,sqlite,c++11,C++,Sqlite,C++11,这是一个C++11程序,使用SqliteModernCpp库连接到Sqlite数据库。有以下类,它表示来自此数据库的记录(至少是头文件): 这似乎太容易了,因为您已经解决了困难的部分(未测试的代码) autoid=1; 电影 db>[&](int rowid,std::string title,int year,int length) { idMovie={rowid,title,year,length}; }; 你可以把它缩短到 auto id = 1; movie idmovie = db

这是一个C++11程序,使用SqliteModernCpp库连接到Sqlite数据库。有以下类,它表示来自此数据库的记录(至少是头文件):


这似乎太容易了,因为您已经解决了困难的部分(未测试的代码)

autoid=1;
电影
db>[&](int rowid,std::string title,int year,int length)
{
idMovie={rowid,title,year,length};
};
你可以把它缩短到

auto id = 1;
movie idmovie = db << "SELECT * FROM movies WHERE rowid = " + std::to_string(id) >> [&](int rowid, std::string title, int year, int length) -> movie
{
    return  { rowid, title, year, length };
};
autoid=1;
movie-idmovie=db>[&](int-rowid,std::string-title,int-year,int-length)->movie
{
返回{rowid,title,year,length};
};
但我还没有测试其中的bug:)

int main()
{
    // connect to the database
    sqlite::database db("database.db");

    // retrieve a record by ID
    auto id = 1;
    db << "SELECT * FROM movies WHERE rowid = " + std::to_string(id) >> [&](int rowid, std::string title, int year, int length)
    {
        std::cout << title;
    };

    return 0;
}
auto id = 1;
movie idmovie
db << "SELECT * FROM movies WHERE rowid = " + std::to_string(id) >> [&](int rowid, std::string title, int year, int length)
{
    idMovie = { rowid, title, year, length };
};
auto id = 1;
movie idmovie = db << "SELECT * FROM movies WHERE rowid = " + std::to_string(id) >> [&](int rowid, std::string title, int year, int length) -> movie
{
    return  { rowid, title, year, length };
};