【问题标题】:Creating an Object from getting tables in Sqlite3 database C++从 Sqlite3 数据库 C++ 中获取表创建对象
【发布时间】:2015-11-19 20:34:28
【问题描述】:

我正在做一个项目,该项目从我创建的 sqlite3 数据库中获取数据,以实例化与表(table1、table2、table3)相关的每条记录对应的对象。

比方说,table1 是艺术家,它有 id 和 name 的记录。我已经使用文本文件填充了艺术家表,现在我需要创建一个对象并进行相应的初始化。我还应该实现一个映射来枚举“艺术家”类的每个对象。

我什至无法从哪里开始检索表中的记录,以便我可以相应地映射它们。

我们的教授给了我们一个如何循环遍历艺术家表的示例代码,但我不知道如何循环和映射数据

  // loop each record in artist table
   sqlite3_stmt* statement;
   sqlite3_prepare_v2(db, "SELECT * FROM artist", -1, &statement, NULL);
   while (sqlite3_step(statement) == SQLITE_ROW) {                 // get a record   
     printf(" artist id=%u ", sqlite3_column_int(statement, 0));      // its first field
     printf(" artist name=%s \n", sqlite3_column_text(statement, 1)); // its second field
   }
   sqlite3_finalize(statement);

非常感谢任何帮助。谢谢!

【问题讨论】:

    标签: c++ database dictionary sqlite


    【解决方案1】:

    您已经有循环迭代表,只需制作一个映射(通过使用 C++ 标准库中的它)来存储表数据:

     map<int, string> artists;
     sqlite3_stmt* statement;
     sqlite3_prepare_v2(db, "SELECT * FROM artist", -1, &statement, NULL);
     while (sqlite3_step(statement) == SQLITE_ROW) 
     {
         artists[sqlite3_column_int(statement, 0)] = sqlite3_column_text(statement, 1));
     }
     sqlite3_finalize(statement);
    

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多