数据库的操作
来源:互联网 发布:免费动态域名解析软件 编辑:程序博客网 时间:2024/05/23 19:15
- #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;
- }
0 0
- 数据库-基础数据库的操作
- 数据库用户的操作
- 跨数据库的操作
- 实用的数据库操作
- 数据库的基本操作
- 常见的数据库操作
- mysql的数据库操作
- QTP的数据库操作
- 数据库的操作
- 数据库的相关操作
- 数据库的相关操作
- 简单的数据库操作:
- 传统数据库的操作
- 简单的数据库操作
- EDB数据库的操作
- 数据库的基本操作
- 数据库exp的操作
- 操作数据库的类
- IE中layout
- PHP5.5,5.6以及PHP7无法加载curl库的问题解决方法
- tomcat URL不支持%2f 等 报400错误
- 练习
- cocos2d 多个背景音乐播放
- 数据库的操作
- vsl里解决strcpy编译不通过问题
- session数据保存到memcache中
- 在vb,vc中调用vb编写的DLL
- c语言 调用函数过程
- Andorid Service and WakeLock
- C#支持控制台调用的窗体程序思路
- Memcache使用方法
- NetworkX学习笔记——基本功能使用