![]() |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Nein im .onCreate des Datenmoduls (TDataModule1.DataModuleCreate)
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Noe, das Hauptformular mit DB-Feldern drauf wird ja schon davor kreirt, und die lechzen nach Datenquellen, die aber erst später im Datenmodul aufgemacht werden.
Warum wird eigentlich das Datenmodul nach dem Hauptformular kreirt ? Ist übrigens eine SDI-Anwendung... |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Du hast doch bestimmt irgendwelche TADOTables oder TADOQueries im TDatamodule, die zur Designzeit Aktiv sind.
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Zitat:
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Ja hab ich -
sollte ich mal abschalten,stimmt - gibts eine Methode, um komfortabel z.b. 15-20 Datenquellen (ADODataSets) auf einmal aktiv zu schalten, oder muss ich da jedes Objekt einzeln aufführen ? Zitat:
Jetzt steht es wieder am Ende der Liste und die Zugriffsfehler sind weg :) |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Dann greift das datenmodul auf eine andere Form zu, sollte aber nicht so sein.
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
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? |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Hi,
erstmal danke an alle Antwortschreiber, eure Tipps haben mir schnell weitergeholfen. Ich lade jetzt das DataModule-Formular als erstes, alle Initalisierungen für das Hauptformular wanderten jetzt in ein entspr. Ereignis desselben (war nämlich die Ursache für die Zugriffsverletzung, ich hatte eine Methode des Hauptformulars noch aus dem Datamodule aufgerufen, brauche ich jetzt nicht mehr)... Danke außerdem für die GExperts Toolsammlung, wirklich sehr praktisch ! Nur bin ich wohl zu blind, das von alzaimar beschriebene Tool zum Umschalten z.b. mehrerer DataSet-Instanzen zu finden... hat da jemand den Namen parat ? Zu 4. da der SQL Server ja im Intranet steht, sollten mehrere geöffnete DB-Verbindungen pro User nicht weiter schlimm sein oder ? Gruß aus der Oberpfalz, FraGiLe |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Zitat:
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Das wars - vielen Dank die Herren, Problem gelöst :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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-2025 by Thomas Breitkreuz