C++中MFC DLL 按條件查詢mysql數據並修改


extern "C" void PASCAL EXPORT enroll(int numA,int numB)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    // 此處爲普通函數體    
    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];
             int content;
             int num_row,num_col;
             MYSQL_RES *result=NULL;
             MYSQL_ROW mysql_row;
             sprintf_s(select_user, "select * from gmicus where num='%d'", numA);
             if (mysql_query(&m_sqlCon, select_user) || !(result = mysql_store_result(&m_sqlCon))) {
                 AfxMessageBox(_T("程序運行錯誤!"));
              }
             num_row=(int)mysql_num_rows(result);
             num_col=(int)mysql_num_fields(result);
             if (num_row== 0) {
                 AfxMessageBox(_T("識別碼錯誤!"));
             }else{
                while (mysql_row = mysql_fetch_row(result))//獲取具體的數據
                {
                    for (int i = 0; i < num_col; i++)
                    {
                        if(i==0){
                            /*CString str;
                            str.Format(_T("%d"), (int)atoi(mysql_row[i]));
                            AfxMessageBox(str);*/
                            content=(int)atoi(mysql_row[i]);
                            break;
                        }
                    }
                }
                if(content==0){
                     char update[255];
                     sprintf_s(update, "update gmicus set id='%d' where num='%d'", numB, numA);
                     if(mysql_query(&m_sqlCon, update)) {
                        AfxMessageBox(_T("註冊失敗!"));
                     }else{
                        AfxMessageBox(_T("註冊成功!"));
                     }
                }else{
                    AfxMessageBox(_T("此識別碼已被註冊過!"));
                }
             }
            mysql_free_result(result);
            mysql_close(&m_sqlCon);
            getchar();
        }  
    }catch (...){  
         AfxMessageBox(_T("未知錯誤!"));
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章