通过class myData { public: static myData* getMyData();//获取到唯一的对象 ~myData(); void creatData();//创建表 //增删改查 insert into delete update select void getData_exec(const char *sql, int &row, int &col, char **&qress);//做查询即可 int insertData_exec(const char* sql);//插入 int deleteData(const char* sql);//删除 void updateData(const char* sql);//更新 void displayData(const char* sql);//显示 private: myData(); static myData* intence;//保存唯一的对象 sqlite3* mydb; };让void CTool::load_data_from_db()函数实现从数据库读取数据
时间: 2023-06-13 07:08:22 浏览: 132
可以在 CTool 类中添加一个成员函数,例如 load_data_from_db(),该函数通过调用 myData 类的方法来从数据库读取数据。下面是一个示例代码:
```
void CTool::load_data_from_db()
{
myData* pData = myData::getMyData();
pData->creatData(); // 创建表,如果已经存在则不会执行任何操作
int row, col;
char** pResult;
const char* sql = "SELECT * FROM my_table"; // 假设表名为 my_table
pData->getData_exec(sql, row, col, pResult); // 获取数据
// 处理数据,例如将数据添加到一个 vector 中
for (int i = 0; i < row; i++) {
std::vector<std::string> row_data;
for (int j = 0; j < col; j++) {
row_data.push_back(pResult[i * col + j]);
}
m_data.push_back(row_data);
}
// 释放内存
sqlite3_free_table(pResult);
}
```
在上面的示例代码中,我们首先获取到 myData 的唯一对象 pData,然后调用其 creatData() 方法来创建表,如果表已经存在则不会执行任何操作。接着使用 SQL 语句 "SELECT * FROM my_table" 来获取数据,然后将数据添加到一个 vector 中。最后,我们需要释放获取数据时分配的内存,使用 sqlite3_free_table() 函数即可。
阅读全文