[gelöst] RX-Tools: Problem mit Footer bei TRxDBGrid
[gelöst] RX-Tools: Problem mit Footer bei TRxDBGrid
Lazarus 2.0.8
SQLite
Windows 10 64bit
SQLite3Connection
SQLtransaction
TSQLquery
TRxDBGrid
Moin, zusammen.
Ich versuche mich gerade an der Programmierung einer Anwendung mit Lazarus 2.0.8. Als darunterliegendes Datenbanksystem verwende ich SQLite3.
In dieser Anwendung gibt es u.a. zwei Tabellen (tblMembers, tblShares) in einer 1:n Relation. Diese beiden Tabellen werden in einem Fenster in zwei Grids (TRxDBGrid) dargestellt. Im Grid für die tblShares werden die Beiträge eines Mitglieds dargestellt. Über die Spalte (numerisch) mit den Beiträgen möchte ich die Beitragssumme im Footer (fvtsum) darstellen.
Das Ganze funktioniert auch in den Fällen, wo für ein Mitglied mehr als zwei Beitragszahlungen vorhanden sind. Bei nur einer Tabellenzeile bekomme ich die Fehlermeldung:
'Project myproject1 released Exception Class "External: SIGSEGV'
Hätte jemand hier eine Idee, woran das liegen könnte?
Zu den RX-Tools habe ich leider keine Dokumentation gefunden. Hilfreich wäre auch die eine oder andere Beispielanwendung.
Für jeden Hinweis wäre ich dankbar.
Liebe Grüße
SQLite
Windows 10 64bit
SQLite3Connection
SQLtransaction
TSQLquery
TRxDBGrid
Moin, zusammen.
Ich versuche mich gerade an der Programmierung einer Anwendung mit Lazarus 2.0.8. Als darunterliegendes Datenbanksystem verwende ich SQLite3.
In dieser Anwendung gibt es u.a. zwei Tabellen (tblMembers, tblShares) in einer 1:n Relation. Diese beiden Tabellen werden in einem Fenster in zwei Grids (TRxDBGrid) dargestellt. Im Grid für die tblShares werden die Beiträge eines Mitglieds dargestellt. Über die Spalte (numerisch) mit den Beiträgen möchte ich die Beitragssumme im Footer (fvtsum) darstellen.
Das Ganze funktioniert auch in den Fällen, wo für ein Mitglied mehr als zwei Beitragszahlungen vorhanden sind. Bei nur einer Tabellenzeile bekomme ich die Fehlermeldung:
'Project myproject1 released Exception Class "External: SIGSEGV'
Hätte jemand hier eine Idee, woran das liegen könnte?
Zu den RX-Tools habe ich leider keine Dokumentation gefunden. Hilfreich wäre auch die eine oder andere Beispielanwendung.
Für jeden Hinweis wäre ich dankbar.
Liebe Grüße
Zuletzt geändert von Judas am Do 4. Jun 2020, 23:17, insgesamt 1-mal geändert.
Re: RX-Tools: Problem mit Footer bei TRxDBGrid
Klingt nach Bug... Ich denke, du wird die Frage im internationalen Forum posten müssen, da ist der Maintainer der RX Libs gelegentlich zu sehen. Oder du postest das Problem gleich im Bug-Tracker, Rubrik Lazarus-CCR. Es ist wichtig, dass du ein kleines Testprojekt mit einer einfachen Datenbank beifügst, so dass der Fehler reproduziert werden kann.
Re: RX-Tools: Problem mit Footer bei TRxDBGrid
@wp_xyz
"Klingt nach Bug..."
Mhhh, das klingt also nicht nach der schnellen Lösung. Mangels anderer Vorschläge werde ich also den von dir vorgeschlagenen Weg gehen. Allerdings wundert mich, dass ein solcher - nicht sonderlich exotischer - Bug noch nicht gefixt sein sollte.
Mögen die Inspirationen mit euch sein
und bleibt gesund.
Liebe Grüße
"Klingt nach Bug..."
Mhhh, das klingt also nicht nach der schnellen Lösung. Mangels anderer Vorschläge werde ich also den von dir vorgeschlagenen Weg gehen. Allerdings wundert mich, dass ein solcher - nicht sonderlich exotischer - Bug noch nicht gefixt sein sollte.
Mögen die Inspirationen mit euch sein
und bleibt gesund.
Liebe Grüße
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: RX-Tools: Problem mit Footer bei TRxDBGrid
Laut der Fehlermeldung kann das aber auch im Bufferd-Dataset Bereich liegen. Am besten, wie schon vorgeschlagen ein Beispiel machen, dann kann man das auch besser verorten.
Weil die Fhelmeldung entsteht in einem Bereich wo die Record Nummer geholt werden sollte. Das hat jetzt nicht unbedingt mit den RX-Tools zu tun.
Weil die Fhelmeldung entsteht in einem Bereich wo die Record Nummer geholt werden sollte. Das hat jetzt nicht unbedingt mit den RX-Tools zu tun.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: RX-Tools: Problem mit Footer bei TRxDBGrid
Genau. Vielleicht: Wenn du das Beispiel fertig hast, kannst du es ja mal zuerst hier posten, bevor du dir die Arbeit mit dem englischen Bug-Report machst. Vielleicht finden die Alteingesessenen hier ja auch den Fehler.
Re: RX-Tools: Problem mit Footer bei TRxDBGrid
Moin, zusammen.
So, jetzt hätte ich es. Mein eigentliches Projekt, in dem ich das erste Mal mit dem beschriebenen Fehler konfrontiert wurde, wäre etwas zu umfangreich, um es hier hochzuladen. Daher habe ich das von mir an anderer Stelle schon einmal verwendete Beispielprogramm 'guitarclub' etwas modifiziert und die Tabelle 'Guitars' um das Feld 'Price' erweitert. Bei mehreren Gitarren eines Besitzer sollte im Footer des Grids mit den Gitarrenbezeichnungen die Summe aller Einzelpreise angezeigt werden.
In der jetzt hochgeladenen Variante tritt der Fehler nicht auf. Erst, wenn im Grid mit den Gitarrenbezeichnungen der Footer aktiviert wird, passiert's: wenn man durch das obere Grid mit den Namen scrollt, taucht der bereits beschriebene Fehler auf.
Vielleicht ist hier ja jemand, der etwas Licht in das Dunkel meines Unwissens bringen kann.
Bleibt allesamt gesund.
Liebe Grüße
So, jetzt hätte ich es. Mein eigentliches Projekt, in dem ich das erste Mal mit dem beschriebenen Fehler konfrontiert wurde, wäre etwas zu umfangreich, um es hier hochzuladen. Daher habe ich das von mir an anderer Stelle schon einmal verwendete Beispielprogramm 'guitarclub' etwas modifiziert und die Tabelle 'Guitars' um das Feld 'Price' erweitert. Bei mehreren Gitarren eines Besitzer sollte im Footer des Grids mit den Gitarrenbezeichnungen die Summe aller Einzelpreise angezeigt werden.
In der jetzt hochgeladenen Variante tritt der Fehler nicht auf. Erst, wenn im Grid mit den Gitarrenbezeichnungen der Footer aktiviert wird, passiert's: wenn man durch das obere Grid mit den Namen scrollt, taucht der bereits beschriebene Fehler auf.
Vielleicht ist hier ja jemand, der etwas Licht in das Dunkel meines Unwissens bringen kann.
Bleibt allesamt gesund.
Liebe Grüße
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: RX-Tools: Problem mit Footer bei TRxDBGrid
Ich kann den Fehler grundlegend nachvollziehen, nachdem ich allerdings nichts mit den RX-Komponenten am Hut habe werde ich dort nicht tiefer gehen.
Bei mir tritt der Fehler innerhalb von Rx hier auf
Allerdings nicht gleich beim Start, sondern erst dann wenn in Members der Datensatz gewechselt wird.
Der CallStack zeigt folgendes bei mir - Auszugsweise
------
Eine DB braucht man nicht direkt lesen können, das ist nur Bequemlichkeit für den Programmierer und führt zu schlechten Designs. Wenn du in der DB was lesen willst, dann lege dir eine View an, dann kannst du dir die Daten anzeigen wie du willst. Das Design sollte für den Server optimal passen.
Was mir allgemein auffällt im Design (Das meiste merkt man erst wenn es zu spät ist):
*) Jede Tabelle benötigt einen Primärschlüssel (PK), wenn irgendwie möglich integer oder einen nativ für diesen Zweck vorgesehenen Wert. (automatische PK sind nicht böse)String bzw. Varchar sind für mich denkbar ungeeignet -> Betriebssicherheit und Effizienz
*) Daraus folgt Primär und Fremdschlüssel (FK) sollten wie oben sein und damit auch die Tabellen verknüpft werden (als Master/Detail oder auch als Join im SQL)
*) Werte wenn möglich als Integer oder Numerisch, sowenig Konvertierungen wie möglich
*) Sortierungen hinterlege ich im DB-System mit entsprechend Sortierindex (abhängig DB System) - Achtung sollte man auch gut überlegen. Können beim Schreiben/Ändern/Löschen Performance kosten. Gilt auch hier, das was nötig ist und Sinn macht.
Von meiner Seite her teste ich nicht weiter, da ich wie gesagt nichts mit den Rx Komponenten am Hut habe und auch nicht erwarte das die mit dem DB-Design IMHO sauber funktionieren.
Bei mir tritt der Fehler innerhalb von Rx hier auf
Code: Alles auswählen
procedure TRxDBGrid.CalcStatTotals;
.....
SavePos:=DHS.RecNo;
.....
Der CallStack zeigt folgendes bei mir - Auszugsweise
Der hat Probleme die Position zu finden, kann sein, das es ein Problem ist mit dem fehlenden PK und der Verwendung von Varchar.#0 BUFDATASET$_$TDOUBLELINKEDBUFINDEX_$__$$_GETRECNO$$LONGINT at :0
#1 BUFDATASET$_$TCUSTOMBUFDATASET_$__$$_GETRECNO$$LONGINT at :0
#2 TRXDBGRID__CALCSTATTOTALS(<error reading variable>) at .\rxdb\rxdbgrid.pas:5988
#3 TRXDBGRID__LAYOUTCHANGED(<error reading variable>) at .\rxdb\rxdbgrid.pas:7137
#4 TCUSTOMDBGRID__ONLAYOUTCHANGED(0x48c4a78, <error reading variable>) at dbgrids.pas:1065
#5 TCOMPONENTDATALINK__LAYOUTCHANGED(<error reading variable>) at dbgrids.pas:4071
#6 DB$_$TDATALINK_$__$$_DATAEVENT$TDATAEVENT$LONGINT at :0
#7 DB$_$TDATASOURCE_$__$$_DISTRIBUTEEVENT$TDATAEVENT$LONGINT at :0
.....
------
Eine DB braucht man nicht direkt lesen können, das ist nur Bequemlichkeit für den Programmierer und führt zu schlechten Designs. Wenn du in der DB was lesen willst, dann lege dir eine View an, dann kannst du dir die Daten anzeigen wie du willst. Das Design sollte für den Server optimal passen.
Was mir allgemein auffällt im Design (Das meiste merkt man erst wenn es zu spät ist):
*) Jede Tabelle benötigt einen Primärschlüssel (PK), wenn irgendwie möglich integer oder einen nativ für diesen Zweck vorgesehenen Wert. (automatische PK sind nicht böse)String bzw. Varchar sind für mich denkbar ungeeignet -> Betriebssicherheit und Effizienz
*) Daraus folgt Primär und Fremdschlüssel (FK) sollten wie oben sein und damit auch die Tabellen verknüpft werden (als Master/Detail oder auch als Join im SQL)
*) Werte wenn möglich als Integer oder Numerisch, sowenig Konvertierungen wie möglich
*) Sortierungen hinterlege ich im DB-System mit entsprechend Sortierindex (abhängig DB System) - Achtung sollte man auch gut überlegen. Können beim Schreiben/Ändern/Löschen Performance kosten. Gilt auch hier, das was nötig ist und Sinn macht.
Von meiner Seite her teste ich nicht weiter, da ich wie gesagt nichts mit den Rx Komponenten am Hut habe und auch nicht erwarte das die mit dem DB-Design IMHO sauber funktionieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: RX-Tools: Problem mit Footer bei TRxDBGrid
Moin, zusammen.
Alexs, der Maintainer der RX-Tools hat ein Update bereitgestellt: revision 7476.
Das Problem ist damit behoben.
Danke für eure Anteilnahme.
Alexs, der Maintainer der RX-Tools hat ein Update bereitgestellt: revision 7476.
Das Problem ist damit behoben.
Danke für eure Anteilnahme.
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: [gelöst] RX-Tools: Problem mit Footer bei TRxDBGrid
Danke für die Rückmeldung.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).