您的项目中需要有这 3 个文件:sqlite3.c、sqlite3.h、sqlite3ext.h(不确定最后一个)。基本操作(创建数据库、创建表和插入值):
bool createTable() {
/* Open database */
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open(databaseName, &db);
if (rc != SQLITE_OK) {
//Can't open database/
sqlite3_open_v2(DB_FILE, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL);
}
/* Create SQL statement */
const char *createQuery =
"CREATE TABLE IF NOT EXISTS cities (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);";
/* Execute SQL statement */
rc = sqlite3_exec(db, createQuery, callback, 0, &zErrMsg);
if (rc != SQLITE_OK) {
sqlite3_free(zErrMsg);
return false;
}
sqlite3_close(db);
return true;
}
插入:
bool insertToDb(CityWeather *pCityWeather) {
sqlite3 *db;
char *zErrMsg = 0;
int rc;
/* Open database */
rc = sqlite3_open(databaseName, &db);
if (rc) {
sqlite3_open_v2(DB_FILE, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL);
}
const char *pCityName = pCityWeather->getName().c_str();
char insertQuery[50];
strcpy (insertQuery,"INSERT INTO cities (name) VALUES ('");
strcat (insertQuery, pCityName);
strcat (insertQuery, "');");
puts (insertQuery);
delete pCityWeather;
/* Execute SQL statement */
rc = sqlite3_exec(db, insertQuery, callback, 0, &zErrMsg);
if (rc != SQLITE_OK) {
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return true;
}