AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Thread für reine Inserts in der DB über AnyDAC
Thema durchsuchen
Ansicht
Themen-Optionen

Thread für reine Inserts in der DB über AnyDAC

Ein Thema von Kostas · begonnen am 7. Okt 2012 · letzter Beitrag vom 7. Okt 2012
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Thread für reine Inserts in der DB über AnyDAC

  Alt 7. Okt 2012, 20:26
Datenbank: Firebird • Version: 1.5 • Zugriff ü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.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Thread für reine Inserts in der DB über AnyDAC

  Alt 7. Okt 2012, 20:46
Ich habe noch nicht mit AnyDac gearbeitet. Wenn man dieser Seite http://www.da-soft.com/anydac/docu/f...Threading.html
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.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Thread für reine Inserts in der DB über AnyDAC

  Alt 7. Okt 2012, 20:55
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
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Thread für reine Inserts in der DB über AnyDAC

  Alt 7. Okt 2012, 23:07
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz