Einzelnen Beitrag anzeigen

Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Datenbanken und INSERTS in Threads

  Alt 30. Dez 2004, 11:08
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?
  Mit Zitat antworten Zitat