![]() |
AW: TSQLDataSet, TSQLConnection Multithread Exception
Wenn dem so ist, können wir diese Fehlerursache ja ausschließen.
Klar, bei 'nem Count bekommt man mindestens 0 zurück, wenn es was nicht gibt. Was ist bei
Delphi-Quellcode:
?
SQLDS_Work.CommandText := 'SELECT [IdentNr], [WareneingangsNr] from WEP02.dbo.WareneingangsNr WHERE Aktiv = 1';
Wenn's das nicht gibt, ist die Ergebnismenge leer, EoF müsste dann erfüllt sein und FieldCount = 2. Fields[0].AsString geht dann und gibt 'ne leere Zeichenfolge zurück. Gut, können wir den Fehler auch ausschließen. |
AW: TSQLDataSet, TSQLConnection Multithread Exception
Ich frage mich was die beiden Code-Auszüge miteinander zu tun haben. Im ersten wird irgendetwas mit einer TCP-Verbindung gemacht, im zweiten werden Daten aus einer DB per SQL abgeholt. Wenn es da irgendwelche Seiteneffekte gibt, tippe ich auf Pointer-Arithmetik von Zauberlehrlingen.
Gruß K-H P.S. was ist mit durchsteppen mittels F7/F8 kann da der Fehler eingegrenzt werden? |
AW: TSQLDataSet, TSQLConnection Multithread Exception
@p80286
naja, im "Thread" gibt es sowas wie DataNotInDB und DataExport. Es könnte sich hier unter Umständen, eventuell, vielleicht um Funktionen handeln, die auf uminöse Weise auf die Datenbank zugreifen. Hier ließen sich dann Probleme und Konflikte beim Zugriff auf die Datenbank nicht zwingend ausschließen. Im Eingangspost heißt es ja u. a. Zitat:
Momentan gibt es noch zuviele :glaskugel:, aus denen gelesen werden muss, um sich dem gestellten Problem anzunähern. |
AW: TSQLDataSet, TSQLConnection Multithread Exception
Bei soviel Konjunktiv kann ich Dir nicht widersprechen. es kann natürlich sein, daß zwei Threads sich ins Gehege kommen, das sollte aber nur der Fall sein wenn sie sich eine Ressource teilen müssen, aber welche mag das wohl sein.....:glaskugel:
Gruß K-H |
AW: TSQLDataSet, TSQLConnection Multithread Exception
Hallo
danke für die vielen Antworten. @p80286 also die zwei Codeschnipsel stellen die Datenbankzugriffe da, die in der Anwendung gemacht werden. Programmübersicht: Also in Einem Thread wird eine TCPIP Kommunikation aufgebaut. Hier werden Daten abgeholt und dann mittels SQLStatements in die Datenbank geschrieben. Im VCL-Thread wird in der Datenbank nachgeschaut (select count...) wie viele Datensätze denn schon eingetragen wurden und dies wird dann visualisiert. In dem TCPIP Thread passiert eigentlich nicht recht viel mehr. Hier wir weiter oben lediglich Kommunikationsgeschichten abgearbeitet. Daher dann die Frage Datacount > 0 und dann gehts los mit Datenbank eintragen. Die Eigenschaften des Threads wie z.B.: DataNotinDB oder weitere sind mittels CriticalSections geschützt und haben ihre Get und Set Methoden mit denen darauf zugegriffen wird Ich habe selbstverständlich schon mit F7/F8 versucht zu debuggen. Allerdings lässt sich der Fehler nicht genau lokalisieren. Also ich arbiete mit XE5 Enterprise und witzigerweise schmiert der Debugger auch ab wenn diese $C000005 Exception auftritt. Ich kann am Montag gerne einen Auszug davon einstellen. Zitat:
Aber vorab schon mal so viel. In der Funktion ProduktAuswerten wird das gemacht. Hier werden die SQLStatments generiert und abgesetzt. Jetzt noch eine ganz grundsätzliche Frage. Es ist rein theoretisch schon möglich von zwei Threads aus auf die selbe Datenbank zuzugreifen? Da hier ja der fehler in der dbxmss.dll auftritt. Vielen Dank einen schönen Abend |
AW: TSQLDataSet, TSQLConnection Multithread Exception
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.
Im Anhang ist jetzt das .pas file in dem der Thread gestartet wird und die Kommunikation läuft. Den anderen Datenbankzugriff im Main findet ihr ja auf der ersten Seite. Ich hoffe das jetzt nicht mehr fehlt. Ich werde jetzt trotzdem gleich mal den Vorschlag von nahpets umsetzen und sehen ob ich zu einem Ergebnis komme. Wenn ihr Vorschläge hab, nur her damit |
AW: TSQLDataSet, TSQLConnection Multithread Exception
Hallo,
nach längerem vergeblichem probieren bin ich jetzt auf FireDAC umgestiegen. Einach alle Komponenten ausgetauscht. Und es funktioniert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 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