网站目录管理模板手机网站js电话悬浮
web/
2025/10/3 16:57:49/
文章来源:
网站目录管理模板,手机网站js电话悬浮,网站开发维护公司,wordpress打开过慢【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 嵌入式设备下面#xff0c;有的时候也要对数据进行处理和保存。如果处理的数据不是很多#xff0c;一般用json就可以。但是数据如果量比较大版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 嵌入式设备下面有的时候也要对数据进行处理和保存。如果处理的数据不是很多一般用json就可以。但是数据如果量比较大但是还没有达到要用大型数据库的时候这种情况下选择一个sqlite3这样的数据库其实就可以了。所以不管是上位机还是在linux开发板上面大家都喜欢用sqlite3来对数据进行处理和保存。今天正好借助于这样一个机会学习下sqlite3。 1、安装sqlite3开发库 安装的方法不复杂直接sudo apt-get安装即可
sudo apt-get install libsqlite3-dev 2、准备测试代码 准备的测试代码不复杂主要就是创建一个student.db。创建好了之后建设一张表。有了这张表就可以做增、删、改、查的动作了。最后肯定就是关闭数据库。
#include sqlite3.h
#include stdio.hint main() {sqlite3 *db;char *err_msg 0;// Open the databaseint rc sqlite3_open(student.db, db);if (rc ! SQLITE_OK) {fprintf(stderr, Cannot open database: %s\n, sqlite3_errmsg(db));sqlite3_close(db);return 1;}// SQL statement to create a tableconst char *create_table_sql CREATE TABLE IF NOT EXISTS student_table (id INTEGER PRIMARY KEY, name TEXT);// Execute the SQL statement to create the tablerc sqlite3_exec(db, create_table_sql, 0, 0, err_msg);if (rc ! SQLITE_OK) {fprintf(stderr, SQL error: %s\n, err_msg);sqlite3_free(err_msg);sqlite3_close(db);return 1;}// SQL statement to insert dataconst char *insert_sql INSERT INTO student_table (id, name) VALUES (?, ?);// Prepare the insert statementsqlite3_stmt *stmt;rc sqlite3_prepare_v2(db, insert_sql, -1, stmt, NULL);if (rc ! SQLITE_OK) {fprintf(stderr, Failed to prepare insert statement: %s\n, sqlite3_errmsg(db));sqlite3_close(db);return 1;}// Bind parameters and execute the insert statementint id 1;const char *name John;sqlite3_bind_int(stmt, 1, id);sqlite3_bind_text(stmt, 2, name, -1, SQLITE_STATIC);rc sqlite3_step(stmt);if (rc ! SQLITE_DONE) {fprintf(stderr, Error inserting data: %s\n, sqlite3_errmsg(db));sqlite3_finalize(stmt);sqlite3_close(db);return 1;}// Finalize the insert statementsqlite3_finalize(stmt);// SQL query to select dataconst char *select_sql SELECT * FROM student_table;// Prepare and execute the queryrc sqlite3_prepare_v2(db, select_sql, -1, stmt, NULL);if (rc ! SQLITE_OK) {fprintf(stderr, Failed to execute select statement: %s\n, sqlite3_errmsg(db));sqlite3_close(db);return 1;}// Iterate over the resultswhile ((rc sqlite3_step(stmt)) SQLITE_ROW) {// Process each rowint id sqlite3_column_int(stmt, 0);const unsigned char *name sqlite3_column_text(stmt, 1);// Process the data...printf(ID: %d, Name: %s\n, id, name);}// Check for errors or end of dataif (rc ! SQLITE_DONE) {fprintf(stderr, Error reading data: %s\n, sqlite3_errmsg(db));}// Finalize the query statementsqlite3_finalize(stmt);// SQL statement to update dataconst char *update_sql UPDATE student_table SET name ? WHERE id ?;// Prepare the update statementrc sqlite3_prepare_v2(db, update_sql, -1, stmt, NULL);if (rc ! SQLITE_OK) {fprintf(stderr, Failed to prepare update statement: %s\n, sqlite3_errmsg(db));sqlite3_close(db);return 1;}// Bind parameters and execute the update statementconst char *new_name Alice;sqlite3_bind_text(stmt, 1, new_name, -1, SQLITE_STATIC);sqlite3_bind_int(stmt, 2, id);rc sqlite3_step(stmt);if (rc ! SQLITE_DONE) {fprintf(stderr, Error updating data: %s\n, sqlite3_errmsg(db));sqlite3_finalize(stmt);sqlite3_close(db);return 1;}// Finalize the update statementsqlite3_finalize(stmt);// SQL statement to delete dataconst char *delete_sql DELETE FROM student_table WHERE id ?;// Prepare the delete statementrc sqlite3_prepare_v2(db, delete_sql, -1, stmt, NULL);if (rc ! SQLITE_OK) {fprintf(stderr, Failed to prepare delete statement: %s\n, sqlite3_errmsg(db));sqlite3_close(db);return 1;}// Bind parameter and execute the delete statementsqlite3_bind_int(stmt, 1, id);rc sqlite3_step(stmt);if (rc ! SQLITE_DONE) {fprintf(stderr, Error deleting data: %s\n, sqlite3_errmsg(db));sqlite3_finalize(stmt);sqlite3_close(db);return 1;}// Finalize the delete statementsqlite3_finalize(stmt);// Close the databasesqlite3_close(db);return 0;
} 3、编译测试代码 编译也可以直接用g编译需要注意的就是链接的时候把sqlite3加上。
g db.cpp -g -o db -lsqlite3 4、测试和验证 测试有两种一种是直接执一下./db看看结果如何。还有一种就是gdb db然后单步看一下过程。个人是比较推崇后面一种方式。当然执行的过程中我们也可以添加一些别的数据之后用navicat之类的软件看下db里面是不是真的存在相关的数据。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86325.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!