Problème TQuery->RowsAffected tjs egale à -1avec instruction MERGE
Bonjour a tous!
J'ai un petit problème, je vais tâcher de l'expliquer avec un exemple bateau:
J'utilise Oracle 9 via le BDE.
J'ai un TEdit, un TDataBase et un TQuery.
Code:
1 2 3 4 5
| Query->Active = false ;
Query->SQL->Clear() ;
Query->SQL->Add( Edit1->Text ) ;
Query->ExecSQL() ;
ShowMessage( "Rows Affected: " + IntToStr(Query1->RowsAffected )); |
Lorsque j'exécute un INSERT ou un UPDATE, RowsAffected contient bien le nombre de lignes ajoutées/modifiées.
Lorsque j'utilise une instruction MERGE par contre, RowsAffected contient toujours la valeur -1.
Ma question est donc assez simple : comment récupérer le nombre de lignes ajoutées/modifiées par l'instruction MERGE (puisque RowsAffected ne fonctionne pas).
Pour info pour ceux qui ne savent pas, une fonction MERGE est une fonction qui réalise soit un INSERT soit un UPDATE selon le cas, et ca ressemble à ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| MERGE INTO PERSONNE T1
USING (SELECT 'DDD' NOM , 'DD' PRENOM , '04/04/2004' DATE_NAISS FROM dual) s
ON (
T1.nom = s.nom AND
T1.prenom = s.prenom AND
T1.date_naiss = s.date_naiss
) -- Condition de correspondance
WHEN MATCHED THEN -- Si Vraie
UPDATE SET VILLE= 'MARSEILLE', taille = 185
WHEN NOT MATCHED THEN -- Si faux
INSERT ( ID_PERSONNE, NOM, PRENOM,DATE_NAISS, VILLE, TAILLE )
VALUES ( 20, 'DDD', 'DD', to_date('04/04/2004','DD/MM/YYYY'), 'MARSEILLE',185) |
Merci a ceux qui auront une idée!