Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Smart Messages en SQL

0000001963     -      25/10/2015

Cette fonctionnalité concerne l'affichage des messages d'erreur renvoyés par le serveur SQL (problèmes de foreign key, de primary key, ... ou toute autre erreur SQL).

Pour toute une série de messages, un système a été mis en place afin que l'utilisateur ne reçoive pas le message d'erreur SQL brut mais une information plus compréhensible.

Quand l'utilisateur reçoit un message d'erreur, si le message "smart" existe, c'est celui-ci qui est affiché, sinon c'est le message de l'exception SQL.

smartmess_1

Dans la boîte de dialogue montrée ci-dessus, le bouton "Détail" permet de voir le message d'origine ainsi que la requête qui a provoqué l'erreur. Les zones qui paraissent non éditables supportent "clic-droit / copier". (Cela permet la transmission aisée des messages au support.)

Il est recommandé d'utiliser ce concept dans les programmations sur mesure faisant appel au serveur SQL. Ainsi, la gestion des messages d'erreurs éventuels apparaîtra dans une interface unifiée.

Ci-dessous un exemple de code utilisant cette fonctionnalité.

Zoom
    using (SqlCommand oCommand1 = new SqlCommand("delete from paiem", oConnSql.Connection, transac))
    {
    try
    {
        oCommand1.ExecuteNonQuery();
    }
    catch (SqlException ex)
    {
        transac.Rollback();
        oConnSql.Connection.Close();
        oConnSql.Connection.Dispose();
        Api.Zstoperror("", oCommand1, ex);
        return;
    }
}

Il est donc conseillé d'adapter les modules qui utiliseraient encore STOP au lieu de ZSTOPERROR.

Notons au passage que les commandes SqlExec et Zselect de l'Api de MercatorTunnel utilisent bien entendu ce mécanisme.