Tu peux mettre le code qui peut poser problème dans un bloc
try
{connection}
except on E:EAdoError do begin
// messages personnalisés
if E.Message='serveur non trouvé' then
ShowMessage('Message Perso - serveur non trouvé') else
if E.Message= .. etc..
end;
Donc il faut que les messages d'erreurs ne changent jamais de langue .. Si les messages d'erreurs sont tranmis a partir de la source de donnée (?) et ne sont pas des messages inclus dans delphi il peuvent être dans une langue différente ..
Sinon regarde le dernier message d'erreur stocké dans la propriété Errors du ADOConnection avec un code comme celui ci:
if ADOConnection1.Erros.Items.Count>0 then
DernierMessageDerreur := ADOConnection1.Errors.Item[ADOCOnnection1.Errros.Count - 1].Description;
Ou utilise l'id de l'erreur (variant selon la source de donnée) donnée par
iderreur ::= ADOConnection1.Errors.Item[ADOCOnnection1.Errros.Count - 1].Number pour eviter toute surprises..