sqlite3_open(const char *filename, sqlite3 **ppDb)
该例程打开一个指向 SQLite 数据库文件的连接,返回一个用于其他 SQLite 程序的数据库连接对象。
sqlite3_close(sqlite3*)
该例程关闭之前调用 sqlite3_open() 打开的数据库连接。所有与连接相关的语句都应在连接关闭之前完
成。
如果还有查询没有完成,sqlite3_close() 将返回 SQLITE_BUSY 禁止关闭的错误消息。
const char *sqlite3_errmsg(sqlite3*);
sqlite3_errcode() 通常用来获取最近调用的API接口返回的错误代码.
返回的错误信息列表如下:
主函数:
#include <stdio.h>
#include <sqlite3.h>
int main(char argc,char ** argv)
{
int ret;
sqlite3 *db;
if(argc < 2){
printf("usge:%s xxx.db\n",argv[0]);
return -1;
}
if((ret = sqlite3_open(argv[1],&db) == SQLITE_OK)){
printf("open %s success\n",argv[1]);
}else{
printf("error:%s\n",sqlite3_errmsg(db));
return -1;
}
sqlite3_close(db);
return 0;
}
:gcc xxx.c -lsqlite3(我这里是3,安装的时候注意版本)
:./a.out test.db
即可创建一个数据文件完成
创建并查看数据库中的数据:
1 #include <stdio.h>
2 #include <sqlite3.h>
3 //int callback(void *arg, int column_size, char *column_value[], char \
4 *column_name[])
5 int callback(void *arg, int column_size, char *column_value[], char*column_name[])
6 {
7
8 int i;
9 printf("arg = %s\n",(char *)arg);
10
11 for(i=0;i<column_size;i++){
12
13 printf("%s = %s\n",column_name[i],column_value[i]);
14 }
15
16 printf("========================\n");
17 return 0;//必须返回0才能把数据库中的数据全部列举出来,返回其他的不行
18 }
19
20 int main(char argc,char ** argv)
21 {
22 int ret;
23 char *errmsg;
24 sqlite3 *db;
25 if(argc < 2){
26
27 printf("usge:%s xxx.db\n",argv[0]);
28 return -1;
29
30 }
31
32 if((ret = sqlite3_open(argv[1],&db) == SQLITE_OK)){
33
34 printf("open %s success\n",argv[1]);
35
36 }else{
37
38 printf("error:%s\n",sqlite3_errmsg(db));
39 return -1;
40 }
41
42 //sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)
43 ret = sqlite3_exec(db,"create table stu2(id Integer,name char,score Integer);",callback,"connet of sql",&errmsg);
44 if(ret != SQLITE_OK){
45 printf("creat error:%s\n",errmsg);//与上面的exec函数的最后一个成员对应,用来打印错误信息
46 }
47 sqlite3_exec(db,"insert into stu2 values(001,'liming',69);",callback,"connet of sql",&errmsg);
48 sqlite3_exec(db,"select * from stu2",callback,"connet of sql",&errmsg);
49 sqlite3_close(db);
50 return 0;
51 }