加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c语言对SQLite操作-linux

发布时间:2020-12-12 20:07:36 所属栏目:百科 来源:网络整理
导读:插入数据和遍历数据: #include stdio.h#include sqlite3.h//查询的回调函数声明int select_callback(void * data,int col_count,char ** col_values,char ** col_Name);int main(int argc,char * argv[]){ const char * sSQL1 = "create table users(userid

插入数据和遍历数据:

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

//查询的回调函数声明
int select_callback(void * data,int col_count,char ** col_values,char ** col_Name);

int main(int argc,char * argv[])
{
  const char * sSQL1 = "create table users(userid varchar(20) PRIMARY KEY,age int,birthday datetime);";
  char * pErrMsg = 0;
  int result = 0;
  // 连接数据库
  sqlite3 * db = 0;
  int ret = sqlite3_open("./test.db",&db);
  if( ret != SQLITE_OK ) {
    fprintf(stderr,"无法打开数据库: %s",sqlite3_errmsg(db));
    return(1);
  }
  printf("数据库连接成功!n");

  // 执行建表SQL
  sqlite3_exec( db,sSQL1,&pErrMsg );
  if( ret != SQLITE_OK ){
    fprintf(stderr,"SQL error: %sn",pErrMsg);
    sqlite3_free(pErrMsg);
  }

  // 执行插入记录SQL
  result = sqlite3_exec( db,"insert into users values('张三',20,'2011-7-23');",&pErrMsg);
  if(result == SQLITE_OK){
    printf("插入数据成功n");
  }
  result = sqlite3_exec( db,"insert into users values('李四','2012-9-20');",&pErrMsg);
  if(result == SQLITE_OK){
    printf("插入数据成功n");
  }

  // 查询数据表
  printf("查询数据库内容n");
  sqlite3_exec( db,"select * from users;",select_callback,&pErrMsg);

  // 关闭数据库
  sqlite3_close(db);
  db = 0;
  printf("数据库关闭成功!n");

  return 0;
}

int select_callback(void * data,char ** col_Name)
{
  // 每条记录回调一次该函数,有多少条就回调多少次
  int i;
  for( i=0; i < col_count; i++){
    printf( "%s = %sn",col_Name[i],col_values[i] == 0 ? "NULL" : col_values[i] );
  }

  return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读