bonjour
comment faire pour tester la connection avec la base de donnees interbase au demarrage de l'aplication si le test ok affichage de la form principale sinon on affiche une fiche de configuration qui est relier a un fichier ini .
Version imprimable
bonjour
comment faire pour tester la connection avec la base de donnees interbase au demarrage de l'aplication si le test ok affichage de la form principale sinon on affiche une fiche de configuration qui est relier a un fichier ini .
Pourquoi ne pas tester avant tout la présence du fichier INI ?
lorsque le chemin vers la base est incorrect dans le fichier ini ce message s'affiche :
exception EIBINTERBASEERROR in module projet.exe at 00120D96
I/O error for file "(..../db.gdb) " Error while trying to oppen file
le chemin d'accès spécifié est introuvable .
et l'application ne démarre pas ?
je veut savoir si on peut empêcher la fermeture de l'application pour que on accède a une fiche pour configurer correctement la base de données et redémarrer l'application .
dans ce cas pourquoi ne pas tester l'existence du fichier directement (FileExists)
le ficher je suis sur qu'il existe mais je veut vérifier le chemin vers la base s'il est correct sinon on affiche une form de configuration
est il possible de tester ?Et comment ? merci
peut on tester la présence de la base de données avec FileExists même si la base se trouve sur un serveur distant ?
La réponse est non, puisque en théorie la base de données est censée être dans un dossier non partagé.
En fait ton problème n'est pas un problème Interbase, mais de gestion d'erreur au sein de ton application.
Intercepte l'erreur à la tentative de connexion et lors de l'échec, et suivant le code d'erreur renvoyé, réagit en conséquence.
@+ Claudius.
exist-il une fonction pour intercepter l'erreur lors de la tentative de connexion a la base de donnees ? :cry: (j'ai chercher et j'ai rien trouver )
Oui certainement, mais cela dépend du langage/EDI que tu utilises.
C'est dans le forum correspondant qu'il faut poser ta question.
@+
Salut
Inclus ta tentative de connexion dans un bloc Try-Except, et suivant le code d'erreur retourné réagit en conséquence.
Un exemple tout simple qui se contente de renvoyer un message précisant la nature de l'échec.
A adapter à tes besoins.Code:
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 uses IB, IBErrorCodes; // ... try IBDatabase1.Connected := True; except on E: EIBInterBaseError do case E.IBErrorCode of isc_unavailable: MessageDlg('La base de données n''est pas disponible !', mtError, [mbOK], E.HelpContext); isc_io_error: MessageDlg('La base de données est introuvable !' + #13#10 + 'Fichier: ' + FDataSource, mtError, [mbOK], E.HelpContext); isc_login: MessageDlg('Nom d''utilisateur ou mot de passe incorrect !', mtError, [mbOK], E.HelpContext); isc_shutdown: MessageDlg('La base de données est éteinte et reservée à ' + 'l''administrateur système.' + #13#10 + 'Essayez de vous reconnecter ultérieurement.', mtInformation, [mbOK], E.HelpContext); else MessageDlg('Erreur n° ' + IntToStr(E.IBErrorCode) + #13#10 + E.Message, mtError, [mbOK], E.HelpContext); end else raise; end;
@+ Claudius
merci cl@udius