[代码实例][C语言][sqlite3]用SQL语句查询数据库的实例
2016-06-21 00:33
786 查看
下载sqlite3源代码
https://www.sqlite.org/编译安装sqlite3的Makefile
INSTALL_PATH =/usr/local all: install libsqlite3.so: sqlite3.c sqlite3.h gcc -shared -fPIC $< -o $@ install_lib: libsqlite3.so install_headers cp libsqlite3.so $(INSTALL_PATH)/lib ldconfig $(INSTALL_PATH)/lib install_headers: sqlite3.h sqlite3ext.h cp $^ $(INSTALL_PATH)/include/ sqlite3: install_lib shell.c $(CC) shell.c -o $@ -lsqlite3 -lpthread -ldl install_shell: sqlite3 cp $^ $(INSTALL_PATH)/bin install: install_lib install_shell uninstall: rm -f \ $(INSTALL_PATH)/lib/libsqlite3.so \ $(INSTALL_PATH)/include/sqlite3.h \ $(INSTALL_PATH)/include/sqlite3ext.h \ $(INSTALL_PATH)/bin/sqlite3 clean: rm -f *.so sqlite3 .PHONY: install install_lib install_headers install_shell clean
客户端程序
/* * main.c */ #include <stdio.h> #include <stdlib.h> #include <sqlite3.h> static int callback(void * not_used, int argc, char * argv[], char * col_names[]); int main(int argc, char * argv[]) { sqlite3 * db = NULL; char * zErrMsg = NULL; if(argc != 3) { fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]); return EXIT_FAILURE; } if(sqlite3_open(argv[1], &db) != SQLITE_OK) { fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return EXIT_FAILURE; } if(sqlite3_exec(db, argv[2], callback, NULL, &zErrMsg) != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sqlite3_close(db); return EXIT_SUCCESS; } static int callback(void * not_used, int argc, char * argv[], char * col_names[]) { for(int i; i < argc; i++) printf("%s = %s\n", col_names[i], argv[i] ? argv[i] : "NULL"); printf("\n"); return 0; }
编译客户端程序的Makefile
all: main main: main.c gcc main.c -o main -lsqlite3 -lpthread -ldl clean: rm -r main .PHONY: clean
数据库脚本文件
/* * test.sql */ DROP TABLE main.user; CREATE TABLE main.user( Name TEXT, Age INTEGER ); INSERT INTO user VALUES('Huo Yun', 27); INSERT INTO user VALUES('Gao Jingzhuo', 30);
相关文章推荐
- 安装过程中Oracle sid已经在使用(卸载oracle)
- Oracle学习02【持续更新】
- MySQL函数一览_MySQL函数全部汇总
- Redis_注意事项
- Redis_配置参数说明
- Redis_集群配置
- Redis_主从复制
- mongodb_安装配置
- MySql5.7.12_安装配置
- mysql存储过程详解
- 扩容成本直降2000万!山东移动精华实践分享!
- 这两个SQL语句都是查询数据库里头是否存在某个表的语句
- Navicat for MySQL 如何使用
- MyBatis+MySQL 返回插入的主键ID
- postgresql 登录使用GSS方式验证的实现原理分析
- oracle命令行登录(默认用户名和密码)
- Ubuntu 14.04 安装mysql 5.6
- 非关系型数据库redis(一):Centos6.5安装Redis
- Oracle 下载安装教程
- Oracle递归查询:使用prior实现树操作