C++中 MFC DLL如何连接mysql数据库以及按条件查询和时间的比较


1.把mysql数据库的以上文件复制到 “右键点击项目名——》在文件资源管理器中打开文件夹”中。

2.右键点击项目名——》添加——》现有项,选中从mysql复制过来的所有文件,点击添加。

3.可以写代码了。

extern "C" bool PASCAL EXPORT queryId(int numA)

{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    // 此处为普通函数体    
    bool flag=false;
    MYSQL m_sqlCon;  
    try{  
        mysql_init(&m_sqlCon); 
        if(!mysql_real_connect(&m_sqlCon, "IP地址","登陆名","登陆密码","数据库名",3306,NULL,0)){  
            AfxMessageBox(_T("数据库连接失败!"));
        }else{
             char select_user[255];
             CString beginDate,endDate;
             int num_col;
             MYSQL_RES *result=NULL;
             MYSQL_ROW mysql_row;

             sprintf_s(select_user, "select * from gmicus where id='%d'", numA);
             if (mysql_query(&m_sqlCon, select_user) || !(result = mysql_store_result(&m_sqlCon))) {
                 AfxMessageBox(_T("程序运行错误!"));
              }
             num_col=(int)mysql_num_fields(result);
             if(mysql_num_rows(result)==0) {
                 AfxMessageBox(_T("未找到您的信息!"));
             }else{
                 while (mysql_row = mysql_fetch_row(result))//获取具体的数据
                {
                    for (int i = 0; i < num_col; i++)
                    {       
                        if(i==2){
                            beginDate=CStringW(mysql_row[i]);
                        }
                        if(i==3){
                            endDate=CStringW(mysql_row[i]);
                        }
                    }
                }
                 CTime m_time;;
                 CTime datetime;
                 datetime=CTime::GetCurrentTime();                                                                              
                 CString str2=datetime.Format("%Y-%m-%d %H:%M:%S");  
                 /*CString str;
                 str.Format(_T("%s"), str2);
                 AfxMessageBox(str);*/
                 COleDateTime begin;
                 begin.ParseDateTime( beginDate );   
                 COleDateTime end;
                 end.ParseDateTime( endDate );
                 COleDateTime nowDate;
                 nowDate.ParseDateTime( str2 );
                 if(nowDate>=begin && nowDate<=end){
                    flag=true;
                 }else{
                    flag=false;
                 }
             }
            mysql_free_result(result);
            mysql_close(&m_sqlCon);
            getchar();
        }    
    }catch (...){  
         AfxMessageBox(_T("未知错误!"));
    }

    return flag;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值