Tout d'abord, je m'excuse si ma réponse est mal organisée, en fait c'est pas une réponse mais une autre question dans le même sujet. Mon problème est le suivant:
J'ai fait un mini projet sur la gestion de stock, la facturation et ... Qui contient plusieurs fiches, la première fiche est une fiche de login, Ou l'utilisateur peux choisir le mode d'authentification ( Windows / SQL server ). Dans le deuxième mode il doit introduire le ''User Name'' Avec ou sans mot de passe puis il clique sur le bouton Se connecter pour qu'il peut entrer à l'application si il ...
Donc j'ai une application ( Delphi ) et une BD sous SQL Server. La connexion entre ces deux se fait par l'intermédiaire de TADOConnection... Mon problème c'est que lorsque la connexion est établie et si le ''User Name'' et/ou mot de passe est/sont incorrect(e)(s), une exception EOleException s'est produite avec le message 'Login failed for user "..."', sachant que j'ai spécifié le traitement pour cette exception dans l'évènement OnClick de bouton Se connecter, voila le code:
Mais l'erreur [Le projet Gestion.exe a provoqué une classe d'exception EOleException avec le message 'Login failed for user '...''. Processus ...] Continue à émerger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 procedure TUsers.BitBtn1Click(Sender: TObject); // L'événement OnClick de bouton Se connecter ( BitBtn1 ) de la fiche de login ( Users ) begin If Edit2.Visible Then // C'est la ou l'utilisateur introduit le mot de passe "Qui peut être non spécifié" If Edit2.Text='' Then DataModule1.ADOConnection1.ConnectionString:= 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+Edit1.Text+ ';Initial Catalog=Gestion des commandes;Data Source=SED7EN;'+ 'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;'+ 'Workstation ID=SED7EN;Use Encryption for Data=False;'+ 'Tag with column collation when possible=False' Else DataModule1.ADOConnection1.ConnectionString:= 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID='+Edit1.Text+ ';Password='+Edit2.Text+';Initial Catalog=Gestion des commandes;'+ 'Data Source=SED7EN;Use Procedure for Prepare=1;Auto Translate=True;'+ 'Packet Size=4096;Workstation ID=SED7EN;Use Encryption for Data=False;'+ 'Tag with column collation when possible=False'; Try DataModule1.ADOConnection1.Open; Form1.ShowModal; // La fiche principale de l'application Users.Close; // La fermiture de la fiche de login Except On E : EOleException Do Begin DataModule1.ADOConnection1.Connected:=False; If MessageDlg('Vous n''avez pas le droit d''acces',mtWarning,[mbRetry,mbCancel],0)=MrCancel Then Exit Else Begin Users.Show; Edit1.Text:=''; Edit2.Clear; End; End; End; end;
Donc ma question est : comment faire pour que cette erreur dialogue n'apparu jamais et pour que le code de la clause Except vient d'être réalisé
Partager