Bonjour avairet ,

Merci pour ta réponse. Je n'ai pas encore tous les réflexes "Cake" 
concernant la méthodologie de travail. Ta suggestion est très intéressante.
Avant de te répondre, j'ai fait quelques recherches à partir de la voie 
que tu m'as montré :

Je ne suis pas arrivé à utiliser onError().
J'ai créé un app/app_model.php (class AppModel extends Model) ou même un 
app/app_controller.php  (class AppController extends Controller), ça ne 
fait rien.

En ce qui concerne la récupération du n° d'erreur, j'ai fouillé dans les 
classes, et je suis arrivé à la solution suivante , au niveau de mon 
modèle :

        if (!($ret = $this->query($sql)))
        {
            $db =& ConnectionManager::getDataSource($this->useDbConfig);
            $err = mysql_errno ($db->connection);
             // traitement de l'erreur par un switch
        }

Le hic, c'est que si debug != 0, j'ai forcément le texte par défaut de 
Cake qui apparait. Or, que je sois en développement ou en production, si 
je fais un traitement de l'erreur 1062 (unicité), je ne veux plus que 
cake m'affiche son immonde message d'erreur. Mais c'est peut-être au 
niveau de onError() que je peux l'éviter (... et comme je suis pas 
arrivé à l'implémenter, ben, je peux pas vérifier..., peut-être 
pourras-tu me dire où ça coince ?).

Autre remarque : comme il n'y a pas de méthode dans la dbo_* pour 
récupérer le code erreur, mon code est "générique" jusqu'au 
mysql_errno... car là, je suis "ficellé" avec mysql...
Mais après tout, rien ne m'empêche de créer une méthode dans MON 
app_model qui récupère l'erreur sql.

Quant à créer des contraintes dans la base, tu prêches un convaincu ! Je 
suis effaré de voir combien de personnes proposent comme solution au 
problème que j'ai levé dans ce post, d'utiliser simplement "IsUnique()" 
ou d'autres méthodes à lancer avant la sauvegarde ! A croire qu'ils 
n'ont jamais développé des applications multi utilisateurs, ou qu'ils 
n'ont qu'un utilisateur connecté à la fois !
Pire, certains même engueule celui qui pose la question en lui 
rétorquant que s'il en est à tester les erreurs sql, c'est que son appli 
est mal foutue !!!

Bref, merci de ton aide et j'espère t'avoir aidé aussi ;)





--~--~---------~--~----~------------~-------~--~----~

Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier  : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à