![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: AnyDAC
Thread für reine Inserts in der DB über AnyDAC
Hallo Zusammen,
ich muss gestehen, ich bin nicht Sattelfest mit Threads. Deshalb bitte ich um Hilfe. Es sollen Daten in die Datenbank geschrieben werden. Also reine Inserts. Ich benötige keinerlei Rückmeldung vom Thread. Aktuell habe ich eine Methode, dieser ich ein paar Werte übergeben die in die Datenbank geschrieben werden sollen. Das würde ich gerne in einem Thread verpacken. Soweit ich weiß, ist AnyDAC Thread save. Nachdem der Insert durchgeführt wurde, soll sich der Thread selbstständig beenden. Es kann jedoch vorkommen dass während der aktive Thread Daten in die DB schreibt, der gleiche Thread nochmal gestartet wird. Die Reihenfolge welcher zuerst die Daten wegschreibt ist Egal. Hat jemand bitte so eine code Snippet wie so ein Thread sauber aussehen könnte? Ideal wäre so ein Gerüst welcher als Parameter eine Methode übergeben bekommt, die wiederum vom Thread ausgeführt wird. Gruß Kostas. |
AW: Thread für reine Inserts in der DB über AnyDAC
Ich habe noch nicht mit AnyDac gearbeitet. Wenn man dieser Seite
![]() vertrauen schenkt, brauchst Du für Deine Anwendung nur FreeOnTerminate := true; setzen. Es fehlt nur ein passender Contructor mit den abzuarbeitenden Befehlen, in einer/mehrenen Threadvariable(n) speichern und im Execute verwenden. |
AW: Thread für reine Inserts in der DB über AnyDAC
Tausend Dank für den Hinweis.
Ich habe noch weitere Beispiel entdeckt. Die muss ich mir jetzt genauer anschauen. Dir noch einen schönen Abend. Gruß Kostas |
AW: Thread für reine Inserts in der DB über AnyDAC
Wie Bummi schon sagte: Für jeden Insert-Lauf erzeugst du einen eigenen Thread, übergibst im Constructor die benötigten Daten (KEINE Verweise auf VCL-Komponenten wie TListBox, TStringGrid oder dergleichen!) und setzt ebenfalls im Constructor (nach inherited) FreeOnTerminate auf TRUE.
Du überschreibst die Execute-Methode des Threads (in der Methode dann das inherited entfernen), lässt dort deine Queries abarbeiten und wenn der Thread damit fertig ist, gibt er sich von selbst frei. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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