Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   DBgrid Fehlermeldung ersetzen (https://www.delphipraxis.net/160432-dbgrid-fehlermeldung-ersetzen.html)

khh 12. Mai 2011 15:03

DBgrid Fehlermeldung ersetzen
 
Hallo zusammen,
per Fremdschlüssel in der DB verhindere ich nun das Löschen im DBGrid eines betroffenen Datensatzes.
Funktioniert wunderbar!
Jetzt weiss ich aber nicht, wo ich die unschöne SQl-Fehlermeldung abfangen und durch eine eigene Meldung ersetzen kann?

Danke für eure Hilfe

DeddyH 12. Mai 2011 15:16

AW: DBgrid Fehlermeldung ersetzen
 
Du müsstest doch eine Exception bekommen, die Du mit try-except behandeln könntest.

khh 12. Mai 2011 15:19

AW: DBgrid Fehlermeldung ersetzen
 
ja das denke ich auch, aber _wo_ fange ich diese ab?

im afterPost der query, oder wo sonst?

DeddyH 12. Mai 2011 15:21

AW: DBgrid Fehlermeldung ersetzen
 
Wie löschst Du den Datensatz? Per Query oder per Dataset.Post? Zumindest wäre das die richtige Stelle.

khh 12. Mai 2011 15:26

AW: DBgrid Fehlermeldung ersetzen
 
über den DBnavigator



dataset des datasource ist die Query

ich müsste noch ne Ztable dazwischen hängen?

DeddyH 12. Mai 2011 15:43

AW: DBgrid Fehlermeldung ersetzen
 
*Öhm* *äh* den DBNavigator benutze ich nie, da müsste ich auch erst nachschauen, wo da die richtige Stelle ist, vermutlich aber ein Event des Datasets.

khh 12. Mai 2011 15:53

AW: DBgrid Fehlermeldung ersetzen
 
ja ich benutze das Ding auch zum ersten mal, dachte halt das ist einfacher :-)


Im bevorPost und im afterpost der query, die ja das dataset des datasource darstellt komm ich aber nicht vorbei, wenn ich über den Navigator lösche :-(

die Exception-Meldung kommt woanders her :-(

shmia 12. Mai 2011 16:09

AW: DBgrid Fehlermeldung ersetzen
 
Du kommst an die Exception nicht so einfach dran, weil ein Mausclick-Event die Ursache für den Aufruf von [TDataset].Post war.
Die Exception schlägt dann innerhalb der
Delphi-Quellcode:
procedure TApplication.WndProc(var Message: TMessage)
auf und wird dann mit HandleException weiterverarbeitet.

Du könntest dich in Application.OnException einklinken aber dort kannst du nur global auf Exceptions reagieren.

==> es geht halt nicht

khh 12. Mai 2011 16:13

AW: DBgrid Fehlermeldung ersetzen
 
@shima
ich danke dir.
ich hab wohl geahnt, dass dieser navigator nicht das gelbe vom Ei ist :-(

Muss der Anwender mit so einer für ihn unverständlichen fehlermeldung leben :-(

dataspider 13. Mai 2011 07:31

AW: DBgrid Fehlermeldung ersetzen
 
Hi,

der DBNavigator lässt sich leider nicht überreden, die Standardaktionen auszuführen.
Ich benutze ihn auch nicht.
Aber die DB - Zugriffskomponenten haben doch meist ein Event OnPostError.
Dort sollte man IMHO vernünftig eingreifen können.

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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