Bonjour,
Sur une forme, j'ai une table "Query".
Je charge les instructions SQL par programme, puis je l'active dans un contrôle "try/except"
J'intercepte bien toutes sortes d'erreur, mais quand je définit, dans le code de ma requete, un lecteur amovible et qu'il n'y a rien dans celui-ci, j'obtiens cette erreur, que je n'arrive pas à contrôler :
Normal, puis le message :There is not disk in the drive. Please insert a disk into drive \Device\Harddisk3\DR15
Et ensuite seulement, j'arrive dans mon except.Le projet SFMLS.exe a provoqué une classe d'exception EBDEngineError avec le message "Le lecteur n'est pas prêt Fichier: m:\Voitures.dbf" Processus stoppé. Utilisez pas à pas etc...
Cette erreur correspond au code erreur suivant ;
DbiErr_OsDriveNotReady (11061 $2B35)
Mais impossible de l'intercepter
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 begin try If Query1.Active then Query1.Active := False; Query1.SQL.Clear; Query1.SQL.LoadFromFile(WCheminDatabase + WSQL_Name); Query1.Active := True; Membres.Active := True; MbrWork.Active := True; MbrWork.BatchMove(Query1, batCopy); Query1.Active := False; // Ca plante juste après l'instruction ci-dessus Membres.Active := False; MbrWork.Active := True; Label3.Caption := IntToStr(MbrWork.RecordCount); except on E: Exception do begin MbrWork.Active:= False; // efface le résultat de la précédente requête ShowMessage('Au moins une erreur empêche l''exécution de la requête' + #13 + #13 + ' --> ' + E.Message + #13 + #13 + ' Corriger et relancer'); end; end;
Partager