Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 14. Nov 2008, 14:16
Das Tolle an Delphi ist, das man superschnell kleine DB-Applikationen zusammenklicken kann.
Das Schlimme an Delphi sit, das man superschnell kleine DB-Applikationen zusammenklicken kann.

Befolge ein paar Regeln und dann sollte das ion Zukunft immer ohne Probleme gehen:
1. Besorg dir die GExperts. Da ist so ein Tool dabei, der VOR dem Kompilieren dafür sorgt, das bestimmte Propertys immer den gleichen Wert haben. Bei Dir wären das also alle TDatasets.Active := False und TADOConnection.Connected := False;

2a. Nun kannst Du das TDatamodule als ERSTES in der Liste der automatisch zu erstellenden Formulare plazieren. Dann erfolgt die Initialisierung z.B. im TDataModule.FormCreate;
ODER
2b. Dein Hauptformular instantiiert ein TDatamodule im FormCreate / FormActivate und gibt es im FormDestroy wieder frei.

3. Die Datasets werden erst dann geöffnet, wenn sie gebraucht werden.
4. Detail-Daten werden im BeforeOpen-Ereigns des Master-Datasets geöffnet und im AfterClose wieder geschlossen.

Alternativ zu 4 kannst Du auch eine kleine Methode schreiben, die Dir einfach alle TDatasets öffnet. Das ist aber eigentlich bescheuert, denn wieso soll man aus der Datenbank Daten laden, die man gar nicht benötigt?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat