Ich verstehe das Problem mit den Komponenten nicht richtig.
Wenn Du eine Single User Anwendung mit lokaler
DB hast, ist doch alles sehr übersichtlich.
Du hast in einer "normalen" Anwendung idR ein Connection Object. Da hängen alle
DB Komponenten dran. Wenn die Connection getrennt wird, sind alle
DB Kompos "abgeschnitten".
Am einfachsten wäre nun m.E. aus der gleichen Anwendung das Backup aufzurufen, weil gerade hier die Kontrolle über das Disconnect der
DB Kompos am größten ist.
Sprich die Anwendung läuft in 2 Modi: Wartung und Betrieb. Der User wählt das über entsprechende Menupunkt und Du bist nahezu 100 Pro sicher, was geht.
Ich weiß nicht, ob Deine
DB per
SQL gesichert und restored werden kann, das wäre ggF. noch einfacher als externe Befehle aufzurufen. Ansonsten müsstest Du in Deinem Programm vielleicht noch sicherstellen, dass es nur einmal gestartet werden kann (per
Mutex oder mittlerweile irgendwie auch anders). So oder so sollte man per Abfrage von Systemviews sehen können, ob/wieviele Connections geöffnet sind oder sogar noch Datensatz/Objektsperren vorliegen.
Das würde ein ordentliches Backup (nicht Filecopy) natürlich sowieso tun und Probleme zurückmelden.