Linux C 数据库编程

来源:互联网 发布:李世石人工智能围棋 编辑:程序博客网 时间:2024/06/06 10:44

初学数据库

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

int create_table(sqlite3 *db)
{
 char *errmsg = NULL;
 char *sql;

 sql = "create table if not exists mytable (id integer primary key,name text);";
 
 if(SQLITE_OK != sqlite3_exec (db,sql,NULL,NULL,&errmsg))
 {
  printf("operator fail:%s\n",errmsg);
  exit(0);
 }
}


int displaycd(void *para,int column_count ,char ** column_value, char ** column_name)
{
 int i;

 printf("total column is %d\n",column_count);

 for(i = 0; i < column_count; i++)
 {
  printf("column_name: %s->column_value: %s\n",column_name[i],column_value[i]);

 }

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


int inquire_usecd(sqlite3 *db)
{
 char *errmsg = NULL;
 char *sql;

 sql = "select * from mytable;";

 if(SQLITE_OK != sqlite3_exec(db,sql,displaycd,NULL,&errmsg))
 {
  printf("operator failed:%s\n",errmsg);
  exit(-1);
 }

}

int delete_record(sqlite3 *db)
{
 char sql[100];
 char *errmsg;
 int id;
 
 printf("please a id to be deleted:\n");
 scanf("%d",&id);

 sprintf(sql ,"delete from mytable where id = %d;",id);
   
 if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg))
 {
  printf("operator fail:%s\n",errmsg);
  exit(-1);
 }

}

int insert_record(sqlite3 *db)
{
 
 char sql[100];
 char *errmsg;
 int id;
 int i;
 char name[100];
 
 printf("please insert id,name \n");
 scanf("%d%s",&id,name);
   
 sprintf(sql ,"insert into mytable (id,name) values (%d,'%s');",id,name);
   
 if(SQLITE_OK != sqlite3_exec(db,sql,NULL,NULL,&errmsg))
 {
  printf("operator fail:%s\n",errmsg);
 }

}

int inquire_nocb(sqlite3 *db)
{
 int nrow,ncolumn;
 char **azresult;
 char *sql;
 char * errmsg;
 int i;
 
 sql = "select * from mytable;";
 
 if(SQLITE_OK != sqlite3_get_table(db,sql,&azresult,&nrow,&ncolumn,&errmsg))
 {
  printf("operator failed: %s\n",errmsg);
  exit(0);
 }

 printf("row:%d  column: %d\n",nrow,ncolumn);
 printf("the result of querying is:\n");

 for(i = 0; i < (nrow + 1) *ncolumn; i++)
 {
  printf("%10s",azresult[i]);
  if((i + 1) % ncolumn == 0)
  {
   printf("\n");
  }
 }

 sqlite3_free_table(azresult);
}

int main()
{
 sqlite3 *db = NULL;
 int ret;
 ret = sqlite3_open("mydatabase.db",&db);
 if(ret != SQLITE_OK)
 {
  perror("sqlite open");
  exit(-1);
 }
 
 else
 
 {
  printf("you have opened a sqlite3!\n");
 }

 create_table(db);
 insert_record(db);
 inquire_usecd(db);
    //delete_record(db);
    inquire_usecd(db);
    inquire_nocb(db);
    return 0;
}


0 0
原创粉丝点击