Hi...
Ich habe mal eine Frage betreffend Insert-Anweisungen und Threads.
Kleine Vorgeschichte:
Ich habe zu einer fremden Datenbank (
IB) eine Applikation geschrieben. Weil die Datenbank von einer Fremdfirma ist - und man ja nie wissen kann - habe ich mich dazu entschlossen alle Zugriffe in eine externe
DLL zu verlagen und ausschließlich
ANSI-
SQL zu verwenden. So kann ich relativ flexibel auf Veränderungen der
DB reagieren.
Nun möchte ich eine Weitere kleine Software, die bei der
DB dabei war ersetzen. Diese Software hat eine
ASCII-Schnittstellendatei verarbeitet und in die
DB geschrieben. Dafür hat sie eine Stored Procedure verwendet. Da dies nicht in mein Konzept passt realisiere ich dies mit einem INSERT-Statement. Klappt auch, dauert nur etwas länger, was ja auch logisch ist.
Daraus ergibt sich automatisch meine Frage:
Ich habe nun versucht das "Array-Monster" mit den zu verarbeitenden Daten an zwei unabhängig laufende Threads zu übergeben. der eine solldie graden Einträge verarbeiten (daten[2], daten[4], ...) der andere die ungraden (daten[1], daten[3], ...). Wenn ich den einen Thread laufen lasse und den andern nicht starte werden auch die jeweiligen Daten (gerade oder ungerade) korrekt übertragen. wenn ich aber beide gleichzeitig laufen lasse geht garnichts. Wiso das?
Ich benutze ExecuteDirect aus TSQLConnection mit den Einstellungen KeepConnection:=true (scheint mir schneller zu gehen).
Hoffe jemand weiss Rat oder zumindes warum dies so ist...
MfG
Tonic
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?