Gestion d'erreur de connexion

cs_josserand Messages postés 14 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 18 octobre 2006 - 21 juin 2004 à 11:52
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006 - 25 juin 2004 à 10:52
Bonjour tlm !!

Quand je souhaite me connecter à un serveur SMTP
(NMSMTP1.Connect)
et que la connexion échoue, ça plante !

Pourtant j'ai essayé d'utiliser les blocs 'try... excep...'
mais ça ne semble pas changer grand chose.

Merci à ceux qui pourraient m'aider.

11 réponses

TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
21 juin 2004 à 12:00
Bah moi j'utilise
try... except on EDBEngineError do ...

Et ca marche sans pb :big)

mais je pense ke c pas EDBEngineerror k'il va te falloir pr un serveur SMTP...
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
21 juin 2004 à 17:09
As-tu essayé d'utiliser les évènements OnFailure, ou OnConnexionFailed pour gérer les erreurs de connection ?

Genre:

procedure TForm1.NMSMTP1Failure(Sender: TObject);
begin
  NMSMTP1.Disconnect;
  // instructions...
end;
0
cs_josserand Messages postés 14 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 18 octobre 2006
22 juin 2004 à 09:42
TheShAmAn, qu'est-ce que tu mets après ton 'except' ?? C'est un évènement ??
Peux-tu envoyer toute la partie try except STP pour avoir un exemple...
Après mon except, je ne mets rien d'autre que des instructions. :approve)

Japee, oui, j'ai utilisé l'évènement OnConnexionFailed, mais il ne marche pas... l'exécution ne passe jamais par cette évènement. Il plante à la place.
Pourtant les autres évènements marchent (dont OnFailure lors d'un problème d'envoi du mail).

J'avoue, ça m'échappe.
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
22 juin 2004 à 10:50
Voila un ti exemple de code pr ma connection a ma base ;)
Je suis en ODBC moi :) , aec une base access.

try
  if frmPrincipal.DBcofinter.Connected = false then
      frmPrincipal.DBcofinter.Connected := true;
except
  on EDBEngineError do
    begin
       messagedlg('Erreur lors de la connection', mtError, [mbYes], 0);
    end;
end;

Voila tt simplement [:D}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_josserand Messages postés 14 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 18 octobre 2006
22 juin 2004 à 11:30
Bah je ne vois pas ce qui ne marche pas dans mon pgm.
Peut-être que je ne mets pas le bon évènements dans le 'On... Do'. %-6
Pour info, voilà mon code qui ne marche pas (dans la partie except).

  try
    NMSMTP1.Connect;
  except
  //On quelquechose Do ?? mais quoi ??
    begin
      NMSMTP1.Disconnect;
      ShowMessage('Connexion échouée.');
    end;
  end;


Je bloque vraiment...
Merci de ton aide !! 8-)
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
22 juin 2004 à 15:56
bah pr commencer, apre ton except, ds le DO begin.. tu peux enleve le disconnect... :-p
ca sert a rien de te deconnect si t po connecté ;)
Ensuite, je c po ce k'il te fo ds ton On quelquechose :sad)
dsl
0
cs_josserand Messages postés 14 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 18 octobre 2006
23 juin 2004 à 09:32
Ok je te remercie quand même. ;)
Mon disconnect, je te l'accorde me sert à rien, mais il est là pour renseigner une barre des tâches. Rien de plus. :approve)

Ton EBDEngineError, c'est bien un évènement d'un de tes composants ?? Si ça se trouve, ça n'en est pas un, et ça serait là que je me plante. :shock)

Merci encore !! 8-)
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
23 juin 2004 à 10:33
Aide Delphi
EDBEngineError est la classe des exceptions pour les erreurs du moteur de bases de données Borland (BDE).
USES = DBTables ;)

MOi je t dis, c pr une connection a une BDD ds mon PC...

Pas sur serveur... je ne manipule pas de données sur un serveur.. dsl :dissapprove)
0
cs_josserand Messages postés 14 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 18 octobre 2006
23 juin 2004 à 11:35
J'ai cherché dans les exceptions... mais rien ne correspond (enfin j'ai pas trouvé).
Pourtant l'erreur fatal évoque ESockError... Alors content de voir ça, c'est ce que je marque dans le On Do...
On ESockError Do
Mais non, ça aurait été trop beau. Pourtant le compilateur ne remarque aucune erreur. :sad)

Pire, le ESockError n'est pas reconnu par l'aide (il y a des dérivés, mais ça ne correspond pas).

C'est un vrai casse-tête. :(
:)
0
cs_josserand Messages postés 14 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 18 octobre 2006
24 juin 2004 à 11:36
Ca y est !! J'ai trouvé ma solution !! :-p

C'est tout bête. Ce n'est pas une erreur de programme ou de langage...
C'est juste une option à décocher.
Menu Outils | option du deboggueur | onglet exception du langage :
"arret sur exception delphi" doit être décoché !!!! >:)

Sans ça, il ne prend pas en compte les exceptions.
Voilà, toute ma gestion d'erreur marche !! :big)

Merci quand même à tous ceux qui ont tenté de m'aider !! ;)
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
25 juin 2004 à 10:52
lol
Bah gg alors ;)
0