企业网站定制开发,dw软件入门教程,专业的佛山网站建设,苏州建站公司兴田德润简介呢数据库相关函数数据库创建int sqlite3_open( const char *filename, sqlite3 **ppDb);功能#xff1a;打开数据库#xff0c;不存在则创建参数#xff1a;const char *filename 数据库名sqlite3 **ppDb 二级指针#xff0c;传出ppDb数据库的一级指…数据库相关函数数据库创建int sqlite3_open( const char *filename, sqlite3 **ppDb);
功能打开数据库不存在则创建参数const char *filename 数据库名 sqlite3 **ppDb 二级指针传出ppDb数据库的一级指针返回值成功返回SQLITE_OK 失败返回错误码 sqlite_errmsg()来获取错误信息
关闭数据库和错误信息int sqlite3_close(sqlite3* ppDb) const char * sqlite3_errmsg(sqlite3* ppDb)int sqlite3_errcode(sqlite3 *db)
功能关闭数据库 参数返回值参上功能返回错误信息 返回值为错误信息字符串功能返回错误码 返回错误码
操作数据表int sqlite3_exec(sqlite3 *ppDb,const char *sql,int (*callback)(void*,int,char**,char**),void*,char**errmsg)
功能实现sql指令参数sqlite3 *ppDb数据库 const char *sql sql指令int (*callback)(void*,int,char**,char**) 结果输出函数void*传入输出函数的参数char**errmsg错误信息int (*callback)(void*,int,char**,char**) void *arg外部传入参数int cols列数char** msg_text数据文本char** msg_header表头要输出结果用结果输出函数无需填NULL返回值参上
代码实现增删改查
#include stdio.h
#include 25061head.h
int table_add(sqlite3 *pdb)
{int num;char name[18];char sex[10];double score;printf(请输入学号 姓名 性别 成绩\n);scanf( %d %s %s %lf,num,name,sex,score);//添加信息char sql[128];sprintf(sql,insert into stuinfo values(%d,\%s\,\%s\,%.2lf);,\num,name,sex,score);char *errmsgNULL;if(sqlite3_exec(pdb,sql,NULL,NULL,errmsg)!SQLITE_OK){printf(添加信息失败 %s \n,errmsg);sqlite3_free(errmsg);return -1; }printf(添加信息成功\n);return 0;}
int table_delete(sqlite3 *pdb)
{int delete_num;printf(请输入删除信息的学号\n);scanf(%d,delete_num);getchar(); char sql[128];sprintf(sql,delete from stuinfo where num%d,delete_num);char *errmsgNULL;if(sqlite3_exec(pdb,sql,NULL,NULL,errmsg)!SQLITE_OK){printf(删除信息失败 %s \n,errmsg);sqlite3_free(errmsg);return -1; }printf(信息删除成功\n);return 0;
}
int table_updata(sqlite3 *pdb)
{int updata_num;char updata_msg[32];printf(请输入要更新信息的学号\n);scanf(%d,updata_num);getchar();printf(请输入要更新的信息 eg: score90 namettt\n);scanf(%s,updata_msg);//updata_msg[strlen(updata_msg)1] ;getchar();char sql[128];//printf(num%d\n,updata_num);sprintf(sql,update stuinfo set %s where num%d,updata_msg,updata_num);//printf(%s\n,sql);char *errmsgNULL;if(sqlite3_exec(pdb,sql,NULL,NULL,errmsg)!SQLITE_OK){printf(更新信息失败 %s \n,errmsg);sqlite3_free(errmsg);return -1; }printf(更新信息成功\n);return 0;
}
int callback(void *arg,int cols,char** msg_text,char** msg_header)
{if(*(int *)arg0){*(int *)arg1;for(int i0;icols;i){printf(%s\t,*(msg_headeri));}putchar(10);}for(int j0;jcols;j){ printf(%s\t,*(msg_textj));}putchar(10);return 0;
}
int table_select(sqlite3 *pdb)
{char sql[128];sprintf(sql,select * from stuinfo);char *errmsgNULL;int arg0;if(sqlite3_exec(pdb,sql,callback,arg,errmsg)!SQLITE_OK){printf(展示信息失败\n);sqlite3_free(errmsg);return -1;}
}
int main(int argc, const char *argv[])
{ //创建数据库sqlite3 *pdbNULL;int retsqlite3_open(./my.db,pdb);if(ret!0){printf(sqlite3_open error errcode%d errmsg%s\n,\sqlite3_errcode(pdb),sqlite3_errmsg(pdb));return -1;}//创建数据表char *sqlcreate table if not exists stuinfo \(num int,name text,sex char,score double);; char *errmsgNULL;if(sqlite3_exec(pdb,sql,NULL,NULL,errmsg)!SQLITE_OK){printf(创建数据表失败 %s \n,errmsg);sqlite3_free(errmsg);return -1; }printf(数据表创建成功\n);int i;while(1){ printf(1.添加信息\n);printf(2.删除信息\n);printf(3.修改信息\n);printf(4.展示信息\n);printf(输入\n);scanf(%d,i);getchar();switch(i){case 1: table_add(pdb);break;case 2: table_delete(pdb);break;case 3: table_updata(pdb);break;case 4: table_select(pdb);break;case 0:exit(0);default: printf(输入错误 重新输入\n);}}return 0;
}
今日刷题