[delphi 7-ADO]
Salut,
Comment faire pour eviter le message d'erreur exception, quand le composant Adoconnection ne contient la chaine de connection, car je laisse à l'utilisateur de choisir la base de données au lancement de l'application.
[delphi 7-ADO]
Salut,
Comment faire pour eviter le message d'erreur exception, quand le composant Adoconnection ne contient la chaine de connection, car je laisse à l'utilisateur de choisir la base de données au lancement de l'application.
Je ne sais pas si j'ai bien compris, mais je pense que
suffira.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if Trim(ADOConnection1.ConnectionString) = '' then ShowMessage('Chaine de connection vide');
Essaie un truc comme cela pour te donner une idée.
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 function TForm1.canConnect: boolean; begin try ADOConnection1.Open; Result := True; except ADOConnection1.ConnectionString := PromptDataSource(0, ADOConnection1.ConnectionString); try ADOConnection1.Open; Result := True; except Result := False; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if not canConnect then showMessage('non connecté') else showMessage('connecté'); end;
Bonjour,
Merci de vos réponses, mais je crois que je me suis pas bien expliqué, en fait le message s'affiche au lancement du programme, au mement ou la propriété ConnectionString, est encore vide, je ne saisi pas delphi accepte ce genre de chose, car elle ne sera remplie qu'une fois le menu affiché, pour le reste voilà ce que j'ai mis:
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TFMenu.SpeedButton1Click(Sender: TObject); begin DM1.ADOConnection1.Connected:=false; if opendialog1.Execute then begin sChaine:=(opendialog1.FileName); DM1.ADOConnection1.ConnectionString:=sChaine; DM1.ADOConnection1.Connected:=true; end; end;
Est-ce que le composant TADOConnection en question est actif en design time ?
Si c'est le cas alors il faut passer sa propriété Active à False dans l'inspecteur d'objet. Il faut aussi s'assurer que l'activation du composant s'effectue bien une fois le menu affiché, puis recompiler et exécuter.
Indique moi ce que tu obtiens...
Il faut constituer toute ta chaine de connexion.
En supposant que tu utilises une base de données MSACCESS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TFMenu.SpeedButton1Click(Sender: TObject); begin DM1.ADOConnection1.Connected:=false; if opendialog1.Execute then begin sChaine:=(opendialog1.FileName); DM1.ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + sChaine; DM1.ADOConnection1.Connected:=true; end; end;
Salut,
Effectivement, le problème venait, d'une table qui été en mode active, donc le problème est résolu, ceci dit ça ma permis de connaitre les diffrentes solutions pour la connection.
Merci à tous.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager