#include <stdio.h> #include "sqlite3.h" static int callback(void* NotUsed, int argc, char** argv, char** azColName) { int i; for (i = 0; i < argc; i++) { printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; } int main(int argc, char** argv) { sqlite3* db; char* zErrMsg = 0; int rc; char* dbfile = "test.db"; char* sql; rc = sqlite3_open(dbfile, &db); if (rc) { fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return -1; } //在数据库中创建一个名为person的表 sql = "create table person(id int primary key,first_name text,last_name text);"; rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sql = "insert into person values (1,'zhang','san');" "insert into person values (2,'li','si');" "insert into person values (3,'wang','wu');" "insert into person values (4,'zhao','liu');" "insert into person values (5,'sun','qi');"; rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sql = "select * from person where id=3;"; rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); if (rc != SQLITE_OK) { fprintf(stderr, "Failed to select data: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sql = "delete from person where id=5;"; rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); if (rc != SQLITE_OK) { fprintf(stderr, "Failed to delete data: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sql = "select * from person;"; rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sqlite3_close(db); return 0; }添加注释
时间: 2024-04-06 17:29:51 浏览: 11
//引入头文件
#include <stdio.h>
#include "sqlite3.h"
//回调函数
static int callback(void* NotUsed, int argc, char** argv, char** azColName) {
int i;
for (i = 0; i < argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
//主函数
int main(int argc, char** argv) {
sqlite3* db;
char* zErrMsg = 0;
int rc;
char* dbfile = "test.db";
char* sql;
rc = sqlite3_open(dbfile, &db); //连接数据库
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return -1;
}
sql = "create table person(id int primary key,first_name text,last_name text);";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); //创建表
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sql = "insert into person values (1,'zhang','san');" "insert into person values (2,'li','si');" "insert into person values (3,'wang','wu');" "insert into person values (4,'zhao','liu');" "insert into person values (5,'sun','qi');";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); //插入数据
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sql = "select * from person where id=3;";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); //查询数据
if (rc != SQLITE_OK) {
fprintf(stderr, "Failed to select data: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sql = "delete from person where id=5;";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); //删除数据
if (rc != SQLITE_OK) {
fprintf(stderr, "Failed to delete data: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sql = "select * from person;";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg); //查询数据
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db); //关闭数据库连接
return 0;
}