AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DataModule-Fehler : Zugriffsverletzung durch externe Methode
Thema durchsuchen
Ansicht
Themen-Optionen

DataModule-Fehler : Zugriffsverletzung durch externe Methode

Ein Thema von fragile · begonnen am 14. Nov 2008 · letzter Beitrag vom 19. Nov 2008
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 14. Nov 2008, 13:48
Nein im .onCreate des Datenmoduls (TDataModule1.DataModuleCreate)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#12

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 14. Nov 2008, 13:57
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...
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 14. Nov 2008, 14:02
Du hast doch bestimmt irgendwelche TADOTables oder TADOQueries im TDatamodule, die zur Designzeit Aktiv sind.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 14. Nov 2008, 14:03
Zitat:
Warum wird eigentlich das Datenmodul nach dem Hauptformular kreirt ?
Weil du das manuell, also nach dem (automatische erzeugten) Hauptformular erzeugt hast. Du kannst/solltest aber die Reihenfolge ändern
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#15

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 14. Nov 2008, 14:06
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:
Weil du das manuell, also nach dem (automatische erzeugten) Hauptformular erzeugt hast. Du kannst/solltest aber die Reihenfolge ändern
Unter "Projekte/Formulare" ? Das hat mir ja den Zugriffsfehler erst eingebracht, nachdem ich dort DataModule1 an die SPitze bei "automatisch kreieren" gestellt hatte.
Jetzt steht es wieder am Ende der Liste und die Zugriffsfehler sind weg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 14. Nov 2008, 14:11
Dann greift das datenmodul auf eine andere Form zu, sollte aber nicht so sein.
Markus Kinzler
  Mit Zitat antworten Zitat
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
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#18

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 18. Nov 2008, 08:08
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
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 18. Nov 2008, 08:27
Zitat von fragile:
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 ?
GExperts->Configuration->Set Component Properties
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#20

Re: DataModule-Fehler : Zugriffsverletzung durch externe Met

  Alt 19. Nov 2008, 10:29
Das wars - vielen Dank die Herren, Problem gelöst
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz