• 大小: 7.15KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-17
  • 语言: C/C++
  • 标签: 数据库  c  

资源简介

c 操作sqlite数据库.cpp

资源截图

代码片段和文件信息

include    
#include    
#include   
#include “sqlite3.h“   
  
//  
//typedef int (*sqlite3_callback)(   
//    void* data       /* Data provided in the 4th argument of sqlite3_exec() */   
//    int ncols        /* The number of columns in row */   
//    char** values    /* An array of strings representing fields in the row */   
//    char** headers    /* An array of strings representing column names */   
//);   
  
int callback(void* data int ncols char** values char** headers)  
{  
    int i;  
    int len =0;  
    int ll=0;  
    for(i=0; i < ncols; i++)  
    {  
        if(strlen(headers[i])>len)  
            len = strlen(headers[i]);  
    }  
      
    for(i=0; i < ncols; i++)   
    {  
        ll = len-strlen(headers[i]);  
        while(ll)  
        {  
            fprintf(stdout“ “);  
            --ll;  
        }  
        fprintf(stdout “%s: %s\n“ headers[i] values[i]);  
    }  
  
    fprintf(stdout “\n“);  
    return 0;  
}  
  
int search_by_callback(const char* db_name const char* sql_cmd)   
{    
    int i = 0 ;    
    int j = 0 ;    
    int nrow = 0 ncolumn = 0;    
    char **azResult; //二维数组存放结果    
    sqlite3 *db=NULL;    
    char *zErrMsg = 0;   
    int rc;  
    int len=0;  
  
    if(access(db_name 0) == -1)  
    {  
        fprintf(stderr “%s not found\n“ db_name);    
        return -1;    
    }  
      
    rc = sqlite3_open(db_name &db);  
  
    if( rc != SQLITE_OK)  
    {    
        fprintf(stderr “%s open failed: %s\n“ db_namesqlite3_errmsg(db));    
        sqlite3_close(db);    
        return -1;    
    }    
  
    //查询数据    
    rc = sqlite3_exec( dbsql_cmd callback NULL &zErrMsg );  
    if( rc != SQLITE_OK)  
    {    
        fprintf(stderr “%s %s: %s\n“ db_namesql_cmd sqlite3_errmsg(db));    
        if(zErrMsg)  
        {  
            fprintf(stderr“ErrMsg = %s \n“ zErrMsg);   
            sqlite3_free(zErrMsg);  
        }  
        sqlite3_close(db);    
        return -1;    
    }  
      
    if(zErrMsg)  
    {  
        sqlite3_free(zErrMsg);  
    }  
  
    //关闭数据库    
    sqlite3_close(db);   
    return 0;    
  
}  
  
int search_by_table(const char* db_name const char* sql_cmd)   
{    
    int i = 0 ;    
    int j = 0 ;    
    int nrow = 0 ncolumn = 0;    
    char **azResult; //二维数组存放结果    
    sqlite3 *db=NULL;    
    char *zErrMsg = 0;   
    int rc;  
    int len=0;  
  
    if(access(db_name 0) == -1)  
    {  
        fprintf(stderr “%s not found\n“ db_name);    
        return -1;    
    }  
      
    rc = sqlite3_open(db_name &db);  
  
    if( rc != SQLITE_OK)  
    {    
        fprintf(stderr “%s open failed: %s\n“ db_namesqlite3_errmsg(db));    
        sqlite3_close(db);    
        return -1;    
    }    
  
    //查询数据    
    rc = sqlite3_get_table( db  sql_cmd 

评论

共有 条评论