AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FreePascal SIGSEGV bei öffnen einer SQL-Query
Thema durchsuchen
Ansicht
Themen-Optionen

SIGSEGV bei öffnen einer SQL-Query

Ein Thema von muli · begonnen am 6. Jul 2012 · letzter Beitrag vom 13. Jul 2012
 
muli

Registriert seit: 7. Mär 2011
11 Beiträge
 
#1

SIGSEGV bei öffnen einer SQL-Query

  Alt 6. Jul 2012, 10:29
Datenbank: MySQL • Version: 51 • Zugriff über: TSQL51Connection
Ich brauche mal wieder einen Denkanstoß bzw. Hilfe zur Fehlersuche. Mein Projekt sieht grob zusammengefasst so aus:

Hauptfenster:
  • DBGrid, was seine Daten aus einer SQL-Abfrage bezieht
  • Doppelklick auf einen Eintrag öffnet ein zweites Fenster zum Bearbeiten des Eintrages (enthält viele SQLQuerys)

Hierzu wird im Hauptfenster bei Doppelklick jeweils das Editierfenster per Create erzeugt ünd modal angezeigt. Nach mehrfachem Öffnen (und jeweils wieder schließen via mrCancel) kommt es plötzlich beim erneuten Öffnen zu einem SIGSEGV. Ich versuche seit Tagen den Fehler einzugrenzen, was mir nicht gelingen will. Immer wenn ich denke das Problem gefunden zu haben und meinen Code abändere, kommt der Fehler an anderer Stelle. Wie kann ich herausfinden, woher der Fehler kommt?

Hier mal der Teil des Hauptfensters, der das Editfenster zeugt:
Delphi-Quellcode:
procedure TMain.Men_TerminEditClick(Sender: TObject);
var
  s: integer;
begin
  if Assigned(MyDatabase) then begin
    if MyUser.IsAllow(read) then begin
      S:= SQLQuery2.FieldByName('ID').AsInteger;
      SQLQuery2.Close;
      frm_MyTermin:=Tfrm_MyTermin.Create(self, MyDatabase, MyUser);
      frm_MyTermin.execute(s);
      freeandnil(frm_MyTermin);
      SQLQuery2.Open;
      SQLQuery2.Locate('ID',s,[]);
   end;
  end else
      Showmessage('Es besteht keine Datenbankverbindung');
end;
Und hier der Destructor des Detailfensters:
Delphi-Quellcode:
destructor Tfrm_myTermin.destroy;
begin
  DBLookupName.ListSource:= nil;
  DBLookupVName.ListSource:= nil;
  DBLookupOP.ListSource:= nil;
  DBLookupEinw.ListSource:= nil;

  SQLQuery1.Active:= false;
  SQLQuery2.Active:= false;
  SQLQuery3.Active:= false;
  sqlQuery4.Active:= false;
  SQLQuery5.Active:= false;
  SQLQuery6.Active:= false;

  SQLTransaction1.CloseTrans;
  SQLTransaction1.Free;
  SQLTransaction2.CloseTrans;
  SQLTransaction2.Free;
  SQLTransaction3.CloseTrans;
  SQLTransaction3.Free;
  SQLTransaction4.CloseTrans;
  SQLTransaction4.Free;
  SQLTransaction5.CloseTrans;
  SQLTransaction5.Free;
  SQLTransaction6.CloseTrans;
  SQLTransaction6.Free;
  inherited destroy;
end;
Ich vermute, daßß irgendwo der Speicher nicht komplett freigegeben wird.

Vielen Dank für Eure Hilfe.

Geändert von muli ( 6. Jul 2012 um 10:39 Uhr)
  Mit Zitat antworten Zitat
 

 

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 04:20 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