#include <sqlite3.h>
#include <stdio.h>
#include <stdlib.h>
//n_column 是列数, 在select语句中采用了*, 而该表有两列, 所以此值为2 , column_value 和 column_name 应该看成是一维指针, 它指向的是一个
//char *的字符串
int LoadMyInfo (void *para , int n_column , char ** column_value, char ** column_name){
int i;
printf("record %d field \n" , n_column);
for( i = 0; i < n_column; i++){
printf("field name : %s field value: %s \n", column_name[i], column_value[i]);
}
printf("-------------------------\n");
return 0;
}
int main(){
sqlite3 *db;
int result;
char *errmsg = NULL ;
result = sqlite3_open("C://sely.db" , &db);
if( result != SQLITE_OK){
return -1;
}
result = sqlite3_exec(db , "create table MyTable_1(ID integer primary key autoincrement, name varchar(32))", NULL, NULL, &errmsg);
if(result != SQLITE_OK){
printf("create table error: %d , reason : %s" , result, errmsg);
}
result = sqlite3_exec(db, "insert into MyTable_1 (name) values(\"walk\")", NULL , NULL , &errmsg);
if(result != SQLITE_OK){
printf("create table error: %d , reason : %s" , result, errmsg);
}
result = sqlite3_exec(db, "insert into MyTable_1 (name) values(\"bus\")", 0 , 0 , &errmsg);
if(result != SQLITE_OK){
printf("create table error: %d , reason : %s" , result, errmsg);
}
result = sqlite3_exec(db, "insert into MyTable_1 (name) values(\"bike\")", NULL , NULL , &errmsg);
if(result != SQLITE_OK){
printf("create table error: %d , reason : %s" , result, errmsg);
}
result = sqlite3_exec(db, "insert into MyTable_1 (name) values(\"car\")", 0 , 0 , &errmsg);
if(result != SQLITE_OK){
printf("create table error: %d , reason : %s" , result, errmsg);
}
//loadMyInfo 是回调函数, 每次有一个记录被查询出, 都会调用一次, 结果集中有多少记录,就会执行多少次!
result = sqlite3_exec(db, "select *from MyTable_1", LoadMyInfo, NULL, &errmsg);
if(result != SQLITE_OK){
printf("create table error: %d , reason : %s" , result, errmsg);
}
sqlite3_close(db);
system("pause");
return 0;
}
/* 执行结果如下:
record 2 field
field name : ID field value: 1
field name : name field value: walk
-------------------------
record 2 field
field name : ID field value: 2
field name : name field value: bus
-------------------------
record 2 field
field name : ID field value: 3
field name : name field value: bike
-------------------------
record 2 field
field name : ID field value: 4
field name : name field value: car
-------------------------
Press any key to continue . . .
*/