AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FreePascal SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

Ein Thema von ManniSt · begonnen am 21. Dez 2020 · letzter Beitrag vom 22. Dez 2020
Antwort Antwort
Seite 1 von 2  1 2   
ManniSt

Registriert seit: 16. Okt 2019
24 Beiträge
 
FreePascal / Lazarus
 
#1

SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 13:50
Datenbank: dBase • Version: IV • Zugriff über: TDBF
Nach dem Aufruf eines neuen Formulars und dem Öffnen einer DBF in diesem neuen Formular erscheint immer ein Fehler SISEGV in Lazarus und ein Stack-Overflow bei der Ausführung der Anwendung außerhalb von Lazarus.
Das Ganze läuft unter Win 10.

Identische Aufrufe von 2 anderen Formularen erzeugen keine Fehler.

Woran kann das liegen?
-------------------------------------------------------------------
Aufruf aus Formular TF_Menu:

procedure TF_Menu.Men_ModulesClick(Sender: TObject);

begin
MModulNr := Module.Fields.FieldByName('NR').Value;
Module.close;

F_Menu.Visible := false; // Aufrufende Form auf unsichtbar
F_Modules := TF_Modules.Create(Nil); // Neue Form wird erstellt
F_Modules.ShowModal; // Neue Form wird angezeigt
FreeAndNil(F_Modules); // Neue Form wieder freigeben
F_Menu.Visible := true;
// usw. …
end;

Neues Formular TF_Modules mit dem Fehler bei Module.Open:

procedure TF_Modules.FormCreate(Sender: TObject);

begin
Module.FilePathFull := Modules_Lw;
Module.ReadOnly := false;
Module.Open; // Hier entsteht der Fehler
Module.IndexName := 'NR';
end;
Manfred
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.854 Beiträge
 
Delphi 7 Professional
 
#2

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 14:12
Vermutlich fehlt irgendwo das passende Module := TF_Modules.Create(Nil);
  Mit Zitat antworten Zitat
ManniSt

Registriert seit: 16. Okt 2019
24 Beiträge
 
FreePascal / Lazarus
 
#3

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 14:17
TF_Modules wird initiert, wie im ersten Code-Beispiel zu sehen.
Module ist ein Dataset.
Manfred
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.610 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 14:26
F_Modules wird mit TF_Modules initiert.

modules wird in Deinem Beispiel nirgendwo initiert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
ManniSt

Registriert seit: 16. Okt 2019
24 Beiträge
 
FreePascal / Lazarus
 
#5

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 14:31
Seltsam, verstehe ich nicht: In den anderen beiden Fällen funktioniert das doch auch.

Wieso muss ein Dataset, das auf dem Formular definiert initiert werden? Gem. Dokumentation über TDbf wird ein Dataset mit TDataset.Open, auf aktiv gesetzt und kann verwendet werden, was ich auch schon mehrere Dutzend Male so gemacht habe.

Wenn Du das Formular meintest, es wird mit F_Modules := TF_Modules.Create(Nil);
initiert und mit F_Modules.ShowModal; angezeigt, genauso wie die anderen Dutzend Formulare.
Manfred

Geändert von ManniSt (21. Dez 2020 um 14:33 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.854 Beiträge
 
Delphi 7 Professional
 
#6

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 15:15
Der Fehler tritt aber bei Module und nicht bei F_Modules.

Sollte Module = F_Modules sein, so zeig' uns bitte den vollständigen Quelltext. Die Fragmente reichen nicht im leisesten Ansatz aus, um sinnvolle Rückschlüsse auf eine mögliche Fehlerursache ziehen zu können.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.293 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 15:37
Module ist ein Dataset das auf F_Modules liegt

ist ein "Doppelpost"
https://www.lazarusforum.de/viewtopic.php?f=17&t=13312
  Mit Zitat antworten Zitat
ManniSt

Registriert seit: 16. Okt 2019
24 Beiträge
 
FreePascal / Lazarus
 
#8

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 16:47
Das ist interessant. Weise ich dem TDBF eine andere DBF zu, funktioniert es.
Ich habe auch die fragliche dbf umbenannt: Kein Erfolg
Ich habe die fragliche DBF verschoben und umbenannt: Kein Erfolg
Manfred
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.095 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 17:29
Wie sieht denn der Stacktrace in dem Moment aus? Kannst du nicht schrittweise durch die Methode Open durchgehen und schauen wo es knallt?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.854 Beiträge
 
Delphi 7 Professional
 
#10

AW: SIGSEGV / Stack-Overflow beim Öffnen einer TDBF

  Alt 21. Dez 2020, 17:47
Das ist interessant. Weise ich dem TDBF eine andere DBF zu, funktioniert es.
Ich habe auch die fragliche dbf umbenannt: Kein Erfolg
Ich habe die fragliche DBF verschoben und umbenannt: Kein Erfolg
Dann tippe ich mal auf 'ne defekte DBF oder eine nicht DBF mit der Dateiendung DBF.

Die Dateiendung DBF besagt nicht zwingend, dass es sich um eine dbase-Datenbankdatei handelt.

Stimmt die Dateistruktur (annähernd) mit dem dort beschriebenen überein? https://www.dbf2002.com/dbf-file-format.html
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 02:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf