2011-11-18 98 views
0

我:曖昧重載 '==操作符' 的錯誤

remoteDB(); 
QSqlQuery query("SELECT * FROM products"); 
int id = query.record().indexOf("id"); 
int aa = query.record().indexOf("license_type"); 
int bb = query.record().indexOf("free_trial_product_code"); 
int zz = query.record().indexOf("free_trial_license_number"); 
int xx = query.record().indexOf("free_trial_claimed_current_status"); 
int cc = query.record().indexOf("free_trial_correctly_validated_on"); 
int dd = query.record().indexOf("free_trial_start_date"); 
int ee = query.record().indexOf("free_trial_stop_date"); 
int ff = query.record().indexOf("free_trial_lasting_days"); 
int gg = query.record().indexOf("free_trial_issued_by"); 
int hh = query.record().indexOf("free_trial_license_issued_on"); 
int ii = query.record().indexOf("free_trial_mac_address"); 

int jj = query.record().indexOf("full_license_product_code"); 
int kk = query.record().indexOf("full_license_number"); 
int ll = query.record().indexOf("full_license_claimed_current_status"); 
int mm = query.record().indexOf("full_license_correctly_validated_on"); 
int nn = query.record().indexOf("full_license_licensed_to"); 
int oo = query.record().indexOf("full_license_email"); 
int pp = query.record().indexOf("full_license_telephone_number"); 
int qq = query.record().indexOf("full_license_issued_on"); 
int rr = query.record().indexOf("full_license_issued_by"); 
int ss = query.record().indexOf("full_license_cost"); 
int tt = query.record().indexOf("full_license_mac_address"); 

while (query.next()) { 
    QString theid = query.value(id).toString(); 
    QString license_type = query.value(aa).toString(); 
    QString free_trial_product_code = query.value(bb).toString(); 
    QString free_trial_license_number = query.value(zz).toString(); 
    QString free_trial_claimed_current_status = query.value(xx).toString(); 
    QString free_trial_correctly_validated_on = query.value(cc).toString(); 
    QString free_trial_start_date = query.value(dd).toString(); 
    QString free_trial_stop_date = query.value(ee).toString(); 
    QString free_trial_lasting_days = query.value(ff).toString(); 
    QString free_trial_issued_by = query.value(gg).toString(); 
    QString free_trial_license_issued_on = query.value(hh).toString(); 
    QString free_trial_mac_address = query.value(ii).toString(); 

    QString full_license_product_code = query.value(jj).toString(); 
    QString full_license_number = query.value(kk).toString(); 
    QString full_license_claimed_current_status = query.value(ll).toString(); 
    QString full_license_correctly_validated_on = query.value(mm).toString(); 
    QString full_license_licensed_to = query.value(nn).toString(); 
    QString full_license_email = query.value(oo).toString(); 
    QString full_license_telephone_number = query.value(pp).toString(); 
    QString full_license_issued_on = query.value(qq).toString(); 
    QString full_license_issued_by = query.value(rr).toString(); 
    QString full_license_cost = query.value(ss).toString(); 
    QString full_license_mac_address = query.value(tt).toString(); 

    QDate date = QDate::currentDate(); 

    SimpleCrypt processSimpleCrypt(35363728); 
    QString macaddress = getMac(); 
    QString separator = "_"; 

    QString l_type; 
    QString f_trial_product_code; 
    QString f_trial_license_number; 
    QString f_trial_claimed_current_status; 
    QString f_trial_correctly_validated_on; 
    QString f_trial_start_date; 
    QString f_trial_stop_date; 
    QString f_trial_lasting_days; 
    QString f_trial_issued_by; 
    QString f_trial_license_issued_on; 
    QString f_trial_mac_address; 
    QString f_license_product_code; 
    QString f_license_number; 
    QString f_license_claimed_current_status; 
    QString f_license_correctly_validated_on; 
    QString f_license_licensed_to; 
    QString f_license_email; 
    QString f_license_telephone_number; 
    QString f_license_issued_on; 
    QString f_license_issued_by; 
    QString f_license_cost; 
    QString f_license_mac_address; 


    l_type = processSimpleCrypt.encryptToString(license_type % separator % macaddress); 
    f_trial_product_code = processSimpleCrypt.encryptToString(free_trial_product_code % separator % macaddress); 
    f_trial_license_number = processSimpleCrypt.encryptToString(free_trial_license_number % separator % macaddress); 
    f_trial_claimed_current_status = processSimpleCrypt.encryptToString(free_trial_claimed_current_status % separator % macaddress); 
    f_trial_correctly_validated_on = processSimpleCrypt.encryptToString(free_trial_correctly_validated_on % separator % macaddress); 
    f_trial_start_date = processSimpleCrypt.encryptToString(free_trial_start_date % separator % macaddress); 
    f_trial_stop_date = processSimpleCrypt.encryptToString(free_trial_stop_date % separator % macaddress); 
    f_trial_lasting_days = processSimpleCrypt.encryptToString(free_trial_lasting_days % separator % macaddress); 
    f_trial_issued_by = processSimpleCrypt.encryptToString(free_trial_issued_by % separator % macaddress); 
    f_trial_license_issued_on = processSimpleCrypt.encryptToString(free_trial_license_issued_on % separator % macaddress); 
    f_trial_mac_address = processSimpleCrypt.encryptToString(free_trial_mac_address % separator % macaddress); 

    f_license_product_code = processSimpleCrypt.encryptToString(full_license_product_code % separator % macaddress); 
    f_license_number = processSimpleCrypt.encryptToString(full_license_number % separator % macaddress); 
    f_license_claimed_current_status = processSimpleCrypt.encryptToString(full_license_claimed_current_status % separator % macaddress); 
    f_license_correctly_validated_on = processSimpleCrypt.encryptToString(full_license_correctly_validated_on % separator % macaddress); 
    f_license_licensed_to = processSimpleCrypt.encryptToString(full_license_licensed_to % separator % macaddress); 
    f_license_email = processSimpleCrypt.encryptToString(full_license_email % separator % macaddress); 
    f_license_telephone_number = processSimpleCrypt.encryptToString(full_license_telephone_number % separator % macaddress); 
    f_license_issued_on = processSimpleCrypt.encryptToString(full_license_issued_on % separator % macaddress); 
    f_license_issued_by = processSimpleCrypt.encryptToString(full_license_issued_by % separator % macaddress); 
    f_license_cost = processSimpleCrypt.encryptToString(full_license_cost % separator % macaddress); 
    f_license_mac_address = processSimpleCrypt.encryptToString(full_license_mac_address % separator % macaddress); 

    if ((ui.validateInput->text() == full_license_number) && (full_license_claimed_current_status == 2)) 
    { 
     QSqlQuery query; 
     query.prepare("UPDATE products SET full_license_claimed_current_status=:full_license_claimed_current_status, full_license_correctly_validated_on=:full_license_correctly_validated_on,full_license_mac_address=:full_license_mac_address WHERE id=:id"); 
     query.bindValue(":id", theid); 
     query.bindValue(":full_license_claimed_current_status", 1); 
     query.bindValue(":full_license_correctly_validated_on", date); 
     query.bindValue(":full_license_mac_address", macaddress); 
     query.exec(); 
     QMessageBox msgBox; 
     msgBox.setText("Success,The License Has Been Validated."); 
     msgBox.exec(); 

    } 

但我正在逐漸

error: ambiguous overload for 'operator==' in 'full_license_claimed_current_status == 2' 

當我編譯。

+0

'full_license_claimed_current_status'類型是什麼?如果是您自己的,請向我們展示定義的運算符。 – wormsparty

+0

好的,我在編輯這個問題。 – Gandalf

+1

然後嘗試'==「2」',雖然我不確定字符串上的相等運算符是否正常。 – wormsparty

回答

0

你用括號試過嗎?

if ((ui.validateInput->text() == full_license_number) && (full_license_claimed_current_status == 2)) 

還有哪些類型full_license_number和full_license_claimed_current_status的?

+0

full_license_number和full_license_claimed_current_status是字符串。 – Gandalf

+1

如果'full_license_claimed_current_status'是一個字符串,你爲什麼要比較'int'? –

+0

哦,我的,讓我工作,謝謝。 – Gandalf