Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: SIGSEGV bei öffnen einer SQL-Query

  Alt 6. Jul 2012, 10:43
Ich würde die Form-Variable lokal deklarieren und einen Ressourcenschutzblock einbauen.
Delphi-Quellcode:
procedure TMain.Men_TerminEditClick(Sender: TObject);
var
  s: integer;
  frm_MyTermin: Tfrm_MyTermin;
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);
      try
        frm_MyTermin.execute(s);
      finally
        frm_MyTermin.Free;
      end;
      SQLQuery2.Open;
      SQLQuery2.Locate('ID',s,[]);
   end;
  end else
      Showmessage('Es besteht keine Datenbankverbindung');
end;
Konstruktor und Destruktor von Tfrm_MyTermin hast Du hoffentlich überschrieben? Wobei ich mich frage, wieso Du den Destruktor verwendest und nicht das OnDestroy-Event des Formulars. Wenn die Komponenten schon zur Designtime darauf platziert wurden (oder beim Erzeugen das Formular als Owner angegeben wurde), ist die Freigabe auch überflüssig, da dies sowieso automatisch geschieht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat