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
Antwort Antwort
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

AW: SIGSEGV bei öffnen einer SQL-Query

  Alt 6. Jul 2012, 18:12
Zur Sicherheit solltest du als Owner des modalen Formulars nil angeben:
Delphi-Quellcode:
frm_MyTermin:=Tfrm_MyTermin.Create(nil {<=nicht self}, MyDatabase, MyUser);
try
  frm_MyTermin.execute(s);
finally
  frm_MyTermin.Free;
end;
Übergibt man einen Owner, dann hat das im Hintergrund viele Aufrufe von TComponent.Notification() zur Folge, was manchmal zu sehr seltsamen Effekten führen kann.
Andreas
  Mit Zitat antworten Zitat
muli

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

AW: SIGSEGV bei öffnen einer SQL-Query

  Alt 8. Jul 2012, 20:26
Vielen Dank für den Hinweis. Hat aber leider auch nix gebracht. Beim 20. Aufruf des Fensters kommt "External SIGSERV". Der Aufrufstack sieht wie folgt aus:
Delphi-Quellcode:
#0 SYSTEM_SMALLFORWARDMOVE_3 at :0
#1 MYSQL51CONN_TCONNECTIONNAME_$__MYSQLWRITEDATA$crc1AADA6FD at :0
#2 MYSQL51CONN_TCONNECTIONNAME_$__LOADFIELD$TSQLCURSOR$TFIELDDEF$POINTER$BOOLEAN$$BOOLEAN at :0
#3 SQLDB_TCUSTOMSQLQUERY_$__LOADFIELD$TFIELDDEF$POINTER$BOOLEAN$$BOOLEAN at :0
#4 BUFDATASET_TCUSTOMBUFDATASET_$__LOADBUFFER$PCHAR$$TGETRESULT at :0
#5 BUFDATASET_TCUSTOMBUFDATASET_$__GETNEXTPACKET$$LONGINT at :0
#6 ?? at :0
#7 DBCTRLS_TDBLOOKUP_$__FETCHLOOKUPDATA at :0
#8 DBCTRLS_TDBLOOKUP_$__INITIALIZE$TFIELDDATALINK$TSTRINGS at :0
#9 DBCTRLS_TDBLOOKUP_$__ACTIVECHANGE$TOBJECT at :0
#10 DBCTRLS_TFIELDDATALINK_$__ACTIVECHANGED at :0
#11 DB_TDATALINK_$__CHECKACTIVEANDEDITING at :0
#12 ?? at :0
#13 DB_TDATASET_$__SETACTIVE$BOOLEAN at :0
#14 SQLDB_TCUSTOMSQLQUERY_$__SETACTIVE$BOOLEAN at :0
#15 ?? at :0
#16 MEN_TERMINEDITCLICK(0x1, 0x4c7947d) at frm_main.pas:386
#17 CONTROLS_TCONTROL_$__DBLCLICK at :0
#18 GRIDS_TCUSTOMGRID_$__DBLCLICK at :0
#19 CONTROLS_TCONTROL_$__WMLBUTTONDBLCLK$TLMMOUSE at :0
#20 SYSTEM_TOBJECT_$__DISPATCH$formal at :0
#21 CONTROLS_TCONTROL_$__WMXBUTTONDOWN$TLMMOUSE at :0
#22 CONTROLS_TWINCONTROL_$__WNDPROC$TMESSAGE at :0
#23 GRIDS_TCUSTOMGRID_$__WNDPROC$TMESSAGE at :0
#24 DBGRIDS_TCUSTOMDBGRID_$__WNDPROC$TMESSAGE at :0
#25 LCLMESSAGEGLUE_DELIVERMESSAGE$TOBJECT$formal$$LONGINT at :0
#26 WIN32INT_WINDOWPROC$LONGWORD$LONGWORD$LONGINT$LONGINT$$LONGINT at :0
#27 USER32!GetDC at :0
#28 ?? at :0
#29 USER32!GetDC at :0
#30 WIN32INT_DISPOSECOMBOEDITWINDOWINFO$TCUSTOMCOMBOBOX at :0
#31 USER32!GetWindowLongW at :0
#32 ?? at :0
Hilft Euch das weiter? Seltsam bei #1 finde ich, daß dort MYSQLWRITEDATA$ steht. Ich schreibe gar keine Daten in die Datenbank. Habe das Fenster jeweils mit Cancel beendet.
  Mit Zitat antworten Zitat
muli

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

AW: SIGSEGV bei öffnen einer SQL-Query

  Alt 12. Jul 2012, 21:44
Nochmals vielen Dank für die Hilfe. Nach vielen Tests habe ich herausgefunden, daß das Problem nicht die SQLQuery war, sondern die TDBLookupComboBox. Die kommt mit den etwa 2000 Einträgen (manchmal) nicht klar, die die Query lieferte. Bei Begrenzung auf 100 Einträge trat der Fehler nicht mehr auf. Der Absturz trat immer dann auf (seltsamerweise wie beschrieben erst nach mehrfachem Aufruf des Fensters), wenn ich der Listsource die Datasource zugewiesen habe. Ich habe nun die LookupCombobox durch eine einfache Combobox ersetzt. Es scheint so, als wäre der Fehler nun behoben.

Damit können wir das Thema (vorerst) hoffentlich erst einmal abschließen. Auch wenn ich das eigentliche Problem nicht verstehe.....
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#4

AW: SIGSEGV bei öffnen einer SQL-Query

  Alt 13. Jul 2012, 07:55
Würdest du eventuell bitte einen Bug im Free Pascal/Lazarus Bugtracker melden? Auf diese Weise kann der Bug in einer zukünftigen Version behoben werden. Am besten versuchst du den Bug mit einem möglichst einfachen Beispielprogramm nachvollziehbar zu machen.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 17:01 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