![]() |
Datenbank: MS SQL Server • Version: 2005 • Zugriff über: ADO
DataModule-Fehler : Zugriffsverletzung durch externe Methode
Hallo,
ich habe meine Datenquellen nachträglich in ein Datamodule ausgelagert. Jetzt bekomme ich immer eine "Zugriffsverletzung" beim Start der Anwendung, sobald eine Methode meines Hauptformulars versucht, auf die Datenquellen des Datenmodule-Forms zuzugreifen. Sind die Objekte im Datamodule-Formular quasi "private" und daher von den Procedures des Hauptformulars nicht nutzbar ? 1000 Danke für Tipps an einen Delphi/OO-Anfänger... Gruß FrankG |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
rufst du die methoden im OnCreate auf? wenn ja dann pack das woanders hin denn das datenmodul wird erst nach der form erstellt
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Im OnShow ... kann ich die Erstellungsreihenfolge irgendwo festlegen ?
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
ok wenns im onShow ist kanns daran eig nicht liegen scheibst du auch immer
Delphi-Quellcode:
davor?
Datamodule1.
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Ich habe auch AfterScroll-Ereignisse auf den Datenquellen besetzt, muss quasi einen Filter über einem Table mitführen, sobald der Datencursor eines anderen Tables weiter"fährt"...außerdem setze ich je nach aktiviertem Tab die Datenquelle für meinen DBNavigator um...
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Das passiert im Hauptformular bei FormShow :
Delphi-Quellcode:
Da wird z.b. der DBNavigator mit einer Datenquelle aus DataModule1 besetzt...an der Stelle gibts die Zugriffsverletzung... die TADOConnection auf DataModule1 lasse ich immer aktiviert...
Arbeitsfenster.ActivePage := Tab_Firma;
Initialisieren(DataModule1.Firma_Dataset, DataModule1.restlicherTable_Firma); |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Hallo,
wann genau passiert der Fehler? Beim Programmstart? Dann liegt das daran, dass vom Formular aus schon Routinen im Datamodul aufgerufen werden, wenn das Datamodul noch nicht existiert. Weise die Ereignisroutinen im Formular erst zu Laufzeit zu, nachdem alles erstellt wurde. Das kannst Du (unelegant) in der DPR-Datei vor Application.Run einfügen. OnCreate, OnShow... sind nicht geeignet. Eventuell ginge es auch im OnCreate des Datamoduls, wenn das Formular definitiv vorher erstellt ist. |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
also ich hatte zumindest nen ähnlichen fehler(weiß nciht mehr genau was das für einer war) in meinem aktuellen projekt. dann hab ich einfach den code vom Form1.OnCreate ins Datamodule1.OnCreate gelegt und es geht einwandfrei.
|
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Der Fehler kommt nur am Anfang 4 mal , das Auslagern des Codes in DataModule1.OnCreate hat nichts gebracht.
Außerdem greift das AfterScroll-Ereignis nicht mehr so wie vor der Auslagerung ins Datenmodul, erst wenn ich einmal weiterscrolle greift der Filter; vorher griff der Filter-Subqery schon beim Initialisieren (bei gleichem Code und gleicher Ereignis-Struktur)... |
Re: DataModule-Fehler : Zugriffsverletzung durch externe Met
Ok,
bin einen Schritt weiter - keine Zugriffsverletzung mehr. Folgende Konstellation: Initalisierungscode weiterhin im OnCreate des DataModuls. In "Projekt/Formulare" steht DataModule als letztes in der Reihe. Allerdings kommt jetzt 4 mal "No Connection string" , muss ich wohl die DBConnect-Komponente shcon zur Entwurfszeit aktivieren ?!? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 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