![]() |
mysteriöse Exception
Hallo,
ich habe in Zusammenhang mit FireDac und Erstellen eines neuen Diaologs ein mysteriöses Problem. Faul wie ich bin, habe ich kurzerhand einen bestehenden Dialog mittels "speichern unter" dupliziert, den neuen Dialog angepaßt und ebenso in das Projekt eingebunden. Scheinbar funktioniert auch alles. Jedoch kommt beim Scrollen in DBGrid nach einiger Zeit (evtl immer bei den gleichen Datensätzen) die folgende Fehlermeldung:
Code:
Wenn man auf "Anhalten" klickt, sieht man anschließend CPU-Assemblercode und es hilft nur der Abbruch der Ausführung.
Im Projekt Test.exe ist eine Exception der Klasse $C0000005 mit der Meldung 'access violation at 0x0040ad08:
read of address 0x20726168 aufgetreten. Ich habe keine Ahnung warum es dazu kommt. Kennt jemand so ein Problem? Und wie könnte man der Ursache auf den Grund kommen? |
AW: mysteriöse Exception
Zitat:
|
AW: mysteriöse Exception
Falls Du das beruflich machst, kauf Dir
![]() Sherlock |
AW: mysteriöse Exception
Hi!
Solche Exceptions kommen normalerweise, wenn ein Aufruf an eine Windows lib (z.B. WinRT oder eine dll) gemacht wird, das entweder ungültige Daten oder einen Nullpointer enthält (zumindest wars bei mir immer so...) Was sagt eigentlich der Callstack - der gibt normalerweise super Hinweise. Und ja.. Madexcept wirkt Wunder! lg Mike |
AW: mysteriöse Exception
Zitat:
|
AW: mysteriöse Exception
Hallo Rabatscher und Sherlock,
vielen Dank für Eure Hinweise. Blöderweise ist mein Englisch nicht das Beste. Aber MadExcept ist nur auf Englisch, richtig? Wird dass bei der Insallation in Delphi eingebunden? -- Zu dem Hinweis bezüglich Callstack. Ich bin vermutlich zu blöd ... Aber wie kann ich mir den anzeigen lassen? Uli |
AW: mysteriöse Exception
Liste der Anhänge anzeigen (Anzahl: 2)
Moin...:P
Zitat:
Zitat:
Zitat:
|
AW: mysteriöse Exception
Ah, danke. Dann werde ich es mal testweise installieren. Ich tappe so völlig im dunkeln :( .
Wenn ich übrigens den Befehl
Code:
hinzufüge, kommt keine Fehlermeldung mehr :roll:.
FDMoniFlatFileClientLink1.Tracing := True;
|
AW: mysteriöse Exception
Jedi hat sowas auch kostenlos. Muss man auch nicht die ganze Bibliothek einbinden, da gab es ein paar units, die einfach beim Compilieren da sein müssen und ind er uses Liste stehen und fertig, wenn ich mich recht entsinne. Habe das mal bei einem kunden gesehen. Privat nutze ich auch MadExcept.
|
AW: mysteriöse Exception
Zitat:
|
AW: mysteriöse Exception
Zitat:
Manche Hersteller legen die dcu' s nicht optimal ab... Abhängig von den Einstellungen Bibliothekspfad/Suchpfad werden die dcu' s von Fremdkomponenten jedesmal neu erstellt oder nicht. Und im Debugger sollte man wenigstens im Aufruf - Stack die letzte Zeile des eigenen Codes finden. Frank |
AW: mysteriöse Exception
Danke.
Nur wie kann ich mir den Aufruf-Stack anzeigen lassen? |
AW: mysteriöse Exception
Ich habe jetzt einfach eine Division durch 0 provoziert, um zu schauen, ob dann irgend etwas anders mit MadExcept dargestelt wird. Leider nicht :( .
Entweder mache ich noch etwas grundsätzlich falsch bezüglich der Benutzung von MadExcept oder selbiges läuft mit Delphi 10.3 nicht.:shock: |
AW: mysteriöse Exception
.. das MadExcept Icon hast Du schon auf Deine Mainform gezogen?
Grüße Klaus |
AW: mysteriöse Exception
Zitat:
Grund ist die VMWare. Wenn der Quellcode auf einem Laufwerk der VMWar ist, klappt es nicht richtig. Wenn man ihn lokal kopiert, funktioniert es. Siehe auch ![]() |
AW: mysteriöse Exception
Leider hat mich MadExcept auch nicht richtig weiter gebracht. Ich habe aber eine Vermutung.
Als Datenbankserver wird der ADS (Advantage Database Server) in der aktuellen Version 12 eingesetzt. Es gibt ein DD (Data Dictionary), in dem die Tabellen zusammengefasst sind und verwaltet werden. Die Tabellen stammen noch aus den 80er-Jahren und sind DBF-Tabellen mit NTX-Indizes. Mindestens bei einer Tabelle kommt zu dem besagten Fehlern. Ich vermute, dass einzelne Datensätze darin korrupt sind und z.B. nicht erlaubte Zeichen enthalten. Die Fehlermeldung entsteht ziemlich sicher im das FireDac-Modul. Im ARC (Data Architekten) kommt es zu keinen Fehlermeldungen. Nun ist die Frage wie die Tabelle repariert werden könnte... |
AW: mysteriöse Exception
Zitat:
|
AW: mysteriöse Exception
Zitat:
Null Zeichen in Strings gab mal Ärger bei der Anzeige in Memos. Was Du machen könntest, erstmal via ARC, den Inhalt der Tabelle nach HTML oder so exportieren, eventuell wird da was sichtbar und du kannst dich dann um einzelne datensätze kümmern. Oder exportier die Tabelle in eine neue Tabelle und seh ob die noch Probleme macht. |
AW: mysteriöse Exception
Hallo Freimatz und Sinspin, vielen Dank für Eure Nachrichten.
Inzwischen glaube ich nicht mehr, dass die Tabelle korrupt ist. Ich kann aber zu 100% nachvollziehen, dass es zu dem Fehler kommt, wenn ein Datensatz abgerufen wird, dessen Memo-Feld auch mehr als 1084 Zeichen besteht (mit 1084 funktioniert noch alles!). Deswegen denke ich, dass ich entweder das Firedac-Modul falsch verwende oder in selbigem bezüglich DBF/NTX-Tabellen ein Fehler ist. Ich forsche weiter :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 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