![]() |
Fehler bei Neuerstellen von Paradox-Datenbank zur Laufzeit
Hallo,
hab da ein Problem in meiner Anwendung, die es Administratoren erlaubt, über ein spezielles Menü zur Laufzeit einzelne Datenbank-Dateien (Paradox-Datenbank) neu zu erstellen. Dazu deaktiviere ich zuvor eine Table-Komponente, die Zugriff auf die Datenbank hat, erstelle (per Update über SQL-Query-Komponente) die Datei neu und aktiviere die Table Komponente wieder.
Code:
Leider bekomme ich immer eine Exception, da anscheinend noch andere Table Komponenten die Uebungen.db im Gebrauch haben. Außerdem werden beim Deaktivieren der Table Komponente Routinen im Programm angesprungen, deren Ausführung ich mir zu dieser Zeit nicht erklären kann !???
if( MainForm.DBUebungenExist ) then // existiert die Datei ?
begin SaveActiveValue1 := MainForm.MasterTable.Active; MainForm.MasterTable.Active := False; // deaktiviere Table FortschrittLabel.Caption := 'Lösche Uebungen.db'; MainForm.DropTable( 'Uebungen.db' ); // Lösche per DROP TABLE end; DBProgressBar.Stepit; FortschrittLabel.Caption := 'Erstelle Uebungen.db'; MainForm.CreateUebungenDB; // Erstelle neu mit CREATE TABLE if( MainForm.DBUebungenExist ) then begin MainForm.MasterTable.Active := SaveActiveValue1; // aktiviere Table end; Wie bekomme ich heraus, welche Komponente die Uebungen.db noch geöffnet halten ? Kann mir jemand einen Tip geben ? Danke und Gruß Hacki |
Hallo hacki,
poste doch bitte einmal die CreateUebungenDB Methode. Ist denn sichergestellt, dass MasterTable tatsächlich auf die Tabelle zeigt, die mit CreateUebungenDB erstellt werden soll? Wenn dem so ist, sollte mit dem Schließen sichergestellt sein, dass in diesem Prozess niemand mehr auf die Tabelle zugreift (sofern du keine 2. Instanz benutzt). Sonst könnte noch die Delphi IDE auf die Tabelle zugreifen, falls du Active bereits in der IDE auf True gesetzt hast. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz