数据库操作 ——sqlite3_exec

#include <stdio.h>
#include <sqlite3.h>


int LoadMyInfo( void * para, int n_column, char ** column_value, char ** column_name )
{
//para是你在 sqlite3_exec 里传入的 void * 参数 //通过para参数,你可以传入一些特殊的指针(比如类指针、结构指针),然后在这里面强制转换成对应的类型(这里面是void*类型,必须强制转换成你的类型才可用)。然后操作这些数据
// n_column是这一条记录有多少个字段 (即这条记录有多少列)
// char ** column_value 是个关键值,查出来的数据都保存在这里,它实际上是个1维数组(不要以为是2维数组),每一个元素都是一个 char * 值,是一个字段内容(用字符串来表示,以/0结尾)
//char ** column_name 跟 column_value是对应的,表示这个字段的字段名称
//这里,我不使用 para 参数。忽略它的存在.  
int i;
for (i = 0; i < n_column; i++)
{
printf ("%8s : %-8s ", column_name[i], column_value[i]);
}

printf ("\n");
return 0;
}


int main()
{
sqlite3 * db = NULL;
    
int result = sqlite3_open("student.db", &db);
if (result != SQLITE_OK)
{
   printf ("1open student.db error!\n");
return -1;
}


char *errmsg;
result = sqlite3_exec(db, "create table test(ID INTEGER, name TEXT, sex TEXT, age INTEGER, primary key(ID))", NULL, NULL, &errmsg);
if (result != SQLITE_OK && result != 1)
{
   printf ("create test table error : %d(%s)!\n", result, errmsg);
return -1;
}

/* int id;
char name[20];
char sex[20];
int age;
printf ("please insert a record\n");
printf ("please input ID:");
scanf ("%d", &id);
printf ("please input name:");
scanf ("%s", name);
printf ("please input sex:");
scanf ("%s", sex);
printf ("please input age:");
scanf ("%d", &age);
char buff[200]; */

/* result = sqlite3_exec(db, "update test set age=90 where name='Zhang'", NULL, NULL, &errmsg);
if (result != SQLITE_OK)
{
   printf ("insert test table error : %d(%s)!\n", result, errmsg);
//return -1;
} */
sprintf (buff, "insert into test values(%d,'%s', '%s', %d)", id, name, sex, age);
result = sqlite3_exec(db, buff, NULL, NULL, &errmsg);
if (result != SQLITE_OK)
{
   printf ("insert test table error : %d(%s)!\n", result, errmsg);
return -1;


result = sqlite3_exec(db, "select ID,name from test where sex='F'", LoadMyInfo, NULL, &errmsg);
if (result != SQLITE_OK)
{
   printf ("insert select table error : %d(%s)!\n", result, errmsg);
return -1;


sqlite3_close(db);
return 0;
}
发布了35 篇原创文章 · 获赞 8 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览