C++中MFC DLL 按条件查询SQLite

来源:互联网 发布:薛之谦的淘宝店经验 编辑:程序博客网 时间:2024/06/05 16:40
extern "C" int PASCAL EXPORT read(int AccName)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    sqlite3 * db = NULL; // 声明sqlite 关键结构指针
    int result;//定义接收打开文件返回结果是否成功的变量
    char** dbResult;
    char ** errmsg = NULL;//定义执行SQL语句错误提示接收变量
    int flag=100;

    result = sqlite3_open("c:\\kdj.db", &db );//打开sqlite3数据库文件,如果文件不存在,则会创建这个sqlite3数据库文件
    if( result != SQLITE_OK )//判断数据库是否开打或创建成功,如果成功result==0
    {
        return flag;
    }
    CTime m_time;;
    CTime datetime=CTime::GetCurrentTime();                                                                              
    CString nowDate=datetime.Format("%Y-%m-%d");
    string TradeTimes=CT2A(nowDate.GetBuffer());
    string AccNames=to_string(AccName);
    int nrow = 0, ncolumn = 0;

    string sql ="select flag from kdjother where accname='" + AccNames + "' and times='" + TradeTimes + "'";
    result =sqlite3_get_table( db , sql.c_str() , &dbResult , &nrow , &ncolumn , errmsg );

    if( result != SQLITE_OK )//判断数据库是否开打或创建成功,如果成功result==0
    {
        return flag;
    }
    CStringW content;
    for(int i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )
    {
        content=CStringW(dbResult [i]);
        if(content=="false"){
            flag=2;
        }else if(content=="true"){
            flag=1;
        }
    }
    
    sqlite3_close( db );
    return flag;
}
原创粉丝点击