- #include <stdio.h>
- #include <stdlib.h>
- #include <sqlite3.h>
- int create_table(sqlite3*db)//创建表,未空的打开
- {
- char *errmsg = NULL;
- char *sql;
- sql = "create table if not exists mytable (id integer primary key,name text);";
- if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg))
- {
- printf("create table error!%s\n",errmsg);
- exit(-1);
- }
- return 0;
- }
- int insert_records(sqlite3*db)//插入记录
- {
- char *errmsg = NULL;
- char sql[100];
- int id;
- char name[10];
- int num;
- int i;
- printf("enter number of records:");
- scanf("%d",&num);
- for(i=0;i<num;i++)
- {
- printf("enter a id:");
- scanf("%d",&id);
- printf("enter a name:");
- scanf("%s",name);
- sprintf(sql,"insert into mytable (id,name) values (%d,'%s');",id,name);
- if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg))
- {
- printf("insert error!%s\n",errmsg);
- exit(-1);
- }
- }
- return 0;
- }
- int displaycb(void*para,int col_count,char**col_value,char**col_name)//显示表记录的回调函数
- {
- int i;
- printf("total num %d\n",col_count);
- for(i = 0; i < col_count; i++)
- {
- printf("col_name:%s--->col_value:%s\n",col_name[i],col_value[i]);
- }
- printf("***********************\n");
- return 0;
- }
- int inquire_usecb(sqlite3 *db)//显示表记录
- {
- char *errmsg = NULL;
- char *sql;
- sql = "select * from mytable;";
- if(SQLITE_OK != sqlite3_exec(db,sql,displaycb,NULL,&errmsg))
- {
- printf("select error!%s\n",errmsg);
- exit(-1);
- }
- return 0;
- }
- int delate_record(sqlite3 * db)//删除一行表记录
- {
- char *errmsg = NULL;
- char sql[100];
- int id;
- printf("enter the dalate id:");
- scanf("%d",&id);
- sprintf(sql,"delete from mytable where id = %d;",id);
- if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg))
- {
- printf("select error!%s\n",errmsg);
- exit(-1);
- }
- return 0;
- }
- int inquire_usegt(sqlite3*db)//显示表记录,用sqlite3_get_table函数
- {
- int row;
- int column;
- char **aresult;
- char *errmsg = NULL;
- char *sql;
- int i;
- sql = "select * from mytable;";
- if(SQLITE_OK != sqlite3_get_table(db,sql,&aresult,&row,&column,&errmsg))
- {
- printf("select error!%s\n",errmsg);
- exit(-1);
- }
- for(i = 0; i < (row + 1) * column ; i++)
- {
- printf("%10s",aresult[i]);
- if((i + 1) % column == 0)
- {
- printf("\n");
- }
- }
- sqlite3_free_table(aresult);
- return 0;
- }
- int main()
- {
- sqlite3 * db = NULL;
- int ret;
- ret = sqlite3_open("mydatabase.db",&db);
- if(ret != SQLITE_OK)
- {
- perror("open mydatabase.db error!\n");
- exit(-1);
- }
- else
- {
- printf("open mydatabase.db successfully\n");
- }
- create_table(db);
- insert_records(db);
- inquire_usecb(db);
- delate_record(db);
- inquire_usegt(db);
- sqlite3_close(db);
- return 0;
- }
数据库的操作
最新推荐文章于 2019-12-23 20:52:08 发布