电商网站建设服务平台,绿色主题网站,西安网络建站,wordpress固定链接静态化后打不开调用
sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)该例程提供了一个执行 SQL 命令的快捷方式#xff0c; SQL 命令由 sql 参数提供#xff0c;可以由多个 SQL 命令组成。 在这里#xff0c;
第一个参数 sqlite3 是打开的数据库对…调用
sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)
该例程提供了一个执行 SQL 命令的快捷方式 SQL 命令由 sql 参数提供可以由多个 SQL 命令组成。 在这里
第一个参数 sqlite3 是打开的数据库对象 第二个 sqlite_callback 是一个回调data 作为其第一 个参数 errmsg 将被返回用来获取程序生成的任何错误。 sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令直到字符串结束或者遇到错误为止。 int callback(void *arg, int column_size, char *column_value[], char *column_name[])参数分析void *arg是sqlite3_exec函数的第四个参数
column_size数据库的字段数学号名字分数性别。共四个字段数
column_value[]列的值() 对应的字段数的值是多少
column_name字段名字学号的字段名为ID名字的字段名为Name以此类推 数据库共3条数据每条数据都有4个字段 加return 0后 不加return 0写return 1 也只返回一次 测试实例
#include stdio.h
#include sqlite3.h
int callback(void *arg, int column_size, char *column_value[], char
*column_name[])
{int i;printf(arg%s\n,(char *)arg);for(i0;icolumn_size;i){printf(%s %s\n, column_name[i], column_value[i]);}printf(\n);return 0;//必须返回0这样数据库中有多少条数据,这个回调函数就会被调用多少次
}
int main(char argc, char **argv)
{sqlite3 *db;char *errorMes NULL;int ret;if(argc 2){printf(Usage: %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,%d\n,sqlite3_errmsg(db),ret);if(ret 14){printf(permission den\n);}
return -1;
}
//sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char
**errmsg)sqlite3_exec(db, select * from stu;,callback, content of sql:,
errorMes);//errorMes may sigment error!sqlite3_close(db);printf(done\n);return 0;
}加了return 0; 不加return 0