Form1 se connecte à une base de données et conserve la connexion dans une propriété publiée Form1-> DBSession.Forcer C++ Builder à fermer une session de base de données même si elle est annulée
Dans la source du projet, je voudrais m'assurer que cette session est fermée, même si le programme est interrompu en lançant une exception (dans une bibliothèque).
Mon code comprend le formulaire en utilisant
USEFORM("fForm1.cpp", Form1);
En écrivant ce code dans WinMain
try {
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
__finally
{ Form1->DBSession->Close(); }
le compilateur ne compile pas car il ne sait pas TForm1. Je ne peux pas inclure le fichier d'en-tête car j'ai besoin d'utiliser USEFORM et obtenir une erreur de redéclaration y compris.
Comment abort() est appelé? Pourriez-vous choisir de ne pas utiliser abort et d'utiliser exit() et atexit ou throw exit_exception (exit_code); au lieu? Cette question SO peut être d'une certaine aide: http://stackoverflow.com/questions/397075/what-is-the-difference-between-exit-and-abort –
Mon problème est que je dois appeler une propriété de formulaire ou une méthode de formulaire dans la source du projet. Je ne peux pas contrôler le code qui quitte la méthode d'exécution, mais je me trouve dans la position que je dois m'assurer que dans la plupart des circonstances la méthode Form1-> DBSession-> close() est appelée. –