![]() |
Datenbank: SQLite • Version: 3xxx • Zugriff über: FireDac
Zugriffsverletzung beim erstellen eines Datamoduls
Hi zusammen
Die Fehlermeldung: Zitat:
Delphi-Quellcode:
Und wiedermal: Ich finde nirgendwo im Embarcadero Wicki Angaben darüber, für was dieses Objekt gut ist. Den einzigen Hinweis lieferte mir LEO (tracing wird offenbar mit dokumentieren/verfolgen gleichgesetzt...)
procedure TDMLSQLiteOfficerFE.DataModuleCreate(Sender: TObject);
begin Self.FDMoniFlatFileClientLink1.Tracing := False; Self.FDMoniFlatFileClientLink1.FileName := ExtractFilePath(Application.ExeName) + '\trace.txt'; Self.FDMoniFlatFileClientLink1.Tracing := true; end; Umsomehr: das bewusste Objekt wurde zur Entwurfszeit gesetzt, hat keinen Activ-Schalter, und somit gibts für diese AV auch (scheinbar)keinen Grund. Was, zum Kuckuck, mache ich falsch?? Gruss Delbor |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
FDMoniFlatFileClientLink1 ist ungleich nil?
Wenn nein, dann ist das Rätsel schon gelöst. |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Hi Tigü
Zitat:
Gruss Delbor |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Zitat:
![]() Zitat:
|
AW: Zugriffsverletzung beim erstellen eines Datamoduls
ExtractFilePath hat bereits einen \ am Ende. Wozu dann nochmal einen dazwischen?
Als einfaches Lösung gibt es seit Längerem ![]() Und wie wäre es, wenn man langsam mal lernt, wie der Debugger in Grundzügen zu benutzen ist? Zitat:
Der Name FDMoniFlatFileClientLink1 klingt ja eher danach, als wenn die Komponente auf dem/der Datamodul/Form liegen sollte (im FormDesigner), was sie scheinbar nicht tut. @Hersteller Wenn die Hilfe absolut nichts zu sagen hat, was CodeInsight nicht auch schon kennst, dann darf die Hilfe auch gleich ganz gelöscht werden. ![]() |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Hi Uwe Raabe
Zuerst mal vielen Dank für den interessanten Link!! Zitat:
@himitsu: Ich hab jetzt nur gerade mitgekriegt, dass du geposted hast und kurz mal reingeschaut: Zitat:
Zitat:
Zitat:
Gruss Delbor |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Der Link erwähnt auch diesen Schritt:
Zitat:
Kannst du denn im Debugger (mit Debug-DCUs) sehen, wo genau das Problem liegt? |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Liste der Anhänge anzeigen (Anzahl: 3)
Hi zusammen
Meine Schritte beim Debuggen : Programmstart mit F9 Anhang 54839 Beim Datamodul.Create mit F7 Anhang 54840 und hier weiter bis zur ersten Boolean-Zuweisung - dann knallts. und Self ist nil... Anhang 54841 Gruss Delbor |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Wieso rufst DU das OnCreate des DataModuls auf?
Und warum hat vorher niemand das Datenmodul erstellt? |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Hi himitsu
Zitat:
Gruss Delbor |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Hallo,
das DM wird als erstes erzeugt? |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Diese Events rufen die Forms/DatenModule selbst auf, denn genau dafür gibt es diese Events.
Wenn du sowas aufrfst würde alles doppelt/mehrfach gemacht, was nicht gut sein kann. (z.B. würde FReportList doppelt erstellt, aber nur einmal freigegeben) Und wenn es vorher nicht von den Modulen aufgerufen wird, dann hast DU etwas falsch gemacht, wie z.B. vergessen es zu erstellen. In deinem Fall würde ich dir dringend anraten auch mal sowas wie ReportMemoryLeaksOnShutdown auf True zu setzen. |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Hi zusammen
Zitat:
Zitat:
Zitat:
* Eine Ausnahme ist die erste Form eines Projektes; diese wird automatisch zur Mainform und ebensio automatisch erstellt. Gruss Delbor |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Es wird nur das automatisch erstellt, was in den Projektoptionen eingestellt ist,
also genauer das, was in der .DPR via Application.CreateForm erstellt wird. (deswegen werden genau diese Codezeilen von den Projektoptionen generiert) Aber egal, du kannst nichts verwenden, was es (noch) nicht gibt, sonst knallt es nunmal. Ob es nun autmatisch erstellt wird, oder ob du es manuell erstellst, ist irrelevant ... es muß aber vor der Verwendung erstellt worden sein. Und das Event an OnCreate, oder Dergleichen, ruft dann das DatenModul selbst auf, wenn es erstellt wird, nicht du. (wenn du es aufrufen mußt, damit irgendwas funktioniert, dann machst du definitiv etwas falsch) PS: Auch globale Variablen (Zeiger auf Forms/Module), sind grundsätzlich "immer" erst nach Create/OnCreate gültig. Einzige Ausnahmen sind die globale Variablen von automatisch erstellten Forms/Datenmodule, oder wenn man selbst mit NewInstance arbeitet und dann den Constructor anschließend selbst wie eine Przedur aufruft. (genau deswegen gibt es Application.FormCreate, damit während des Erstellens von Foms/Modulen andere Forms/Module und Code auf diese Variablen/Namen referenzieren/zugreifen können) |
AW: Zugriffsverletzung beim erstellen eines Datamoduls
Hallo,
hm, das DM wird also nach dem Hauptform erzeugt. Hoffentlich wird dann nicht schon im FormCreate des Hauptforms was mit dem DM gemacht, z.B. irgendwelche Config-Sachen... Setz mal in der DPR 2 Breakpoints auf die beiden CreateForms-Zeilen , |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 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