Bonjour,
Avec XE4, je suis en train de reprendre un vieux programme écrit à l'origine avec Builder 6, j'ai un problème avec une méthode qui permet de modifier le montant HT des consos lorsque le taux de TVA change.
Il y a une exception EIBClientError avec le message field CO_PRIXDEVENTETTC not found, j'ai vérifié, le champ éxiste bien dans la table, voici le code :
Il n'est pas possible de faire un update comme ci-dessus ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 void __fastcall TDMFactu::ModifTVAConsos(int P_iCodeTVA, double P_dTauxTVA) { String l_sSQL; try { if (!IBQConsos->Active) IBQConsos->Active = True; IBSQL->SQL->Clear(); if(!IBTransaction->InTransaction) IBTransaction->StartTransaction(); l_sSQL = "UPDATE CONSO "; l_sSQL += "SET CO_CODETVA = '" + String(P_iCodeTVA) + "',"; l_sSQL += " CO_TAUXTVA = :RESULT1,"; l_sSQL += " CO_PRIXDEVENTEHT = :RESULT2"; l_sSQL += " WHERE CO_CODETVA = '" + String(P_iCodeTVA) + "'"; IBSQL->SQL->Add(l_sSQL); IBSQL->ParamByName("RESULT1")->AsFloat = P_dTauxTVA; IBSQL->ParamByName("RESULT2")->AsFloat = IBSQL->FieldByName("CO_PRIXDEVENTETTC")->Value / (1 + (P_dTauxTVA / 100)); // <- Erreur ICI champ CO_PRIXDEVENTETTC inconnu IBSQL->ExecQuery(); IBTransaction->Commit(); // Fin de la transaction. } catch(...) { if(IBTransaction->InTransaction) IBTransaction->Rollback(); } IBQConsos->Close(); }
Merci d'avance
Partager