Firebird 2.5 - TIBSQL: pb de requête update
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 :
Code:
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();
} |
Il n'est pas possible de faire un update comme ci-dessus ?
Merci d'avance