sqlite3测试代码 Posted on 2017-05-26 c++ 测试代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#define LOGD printfstatic int callback(void *NotUsed, int argc, char **argv, char **azColName) { for (int i = 0; i < argc; ++i) { LOGD("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } return 0;}int testsqlite() { // 数据库版本 const char* version = sqlite3_libversion(); LOGD("sqlite version: %s", version); sqlite3 *db; char *errMsg; int rv = 0; // 打开数据库, 如果数据库不存在的话, 则创建 const char* filename = "test.db"; rv = sqlite3_open_v2(filename, &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (rv) { LOGD("Cannot open database: %s", sqlite3_errmsg(db)); sqlite3_close(db); return 1; } // 创建表 char create_table[100] = "CREATE TABLE IF NOT EXISTS customers (id INTEGER PRIMARY KEY,name TEXT NOT NULL)"; rv = sqlite3_exec(db, create_table, callback, 0, &errMsg); if (rv != SQLITE_OK) { LOGD("SQLite statement execution error: %s", errMsg); } // 插入数据 char insert_value[100] = "INSERT INTO customers VALUES('1', 'roman10')"; rv = sqlite3_exec(db, insert_value, callback, 0, &errMsg); if (rv != SQLITE_OK) { LOGD("SQLite statement execution error: %s", errMsg); } // 修改数据 : update company set address='gansu', salary=33333; char change_value[100] = "UPDATE customers SET name=\"newname\" WHERE id=1"; rv = sqlite3_exec(db, change_value, callback, 0, &errMsg); if (rv != SQLITE_OK) { LOGD("SQLite statement execution error: %s", errMsg); } // 查询数据 { const char *query = "SELECT ID, NAME FROM customers ORDER BY ROW;"; sqlite3_stmt *statement; rv = sqlite3_prepare(db, query, -1, &statement, NULL); if (rv != SQLITE_OK) { LOGD("SQLite statement execution error: %s", errMsg); sqlite3_close(db); return 0; } int count = sqlite3_column_count(statement); LOGD("列大小为: %d", count); while (sqlite3_step(statement) == SQLITE_ROW) { // 第一列的数据: id int rowNum = sqlite3_column_int(statement, 0); // 第二列的数据: name char *rowData = (char *)sqlite3_column_text(statement, 1); LOGD("第%d行数据: %d - %s", rowNum, rowData); } sqlite3_finalize(statement); } sqlite3_close(db); return 0;}