![]() |
Mehere Instanzen einer Procedure erstellen in Delphi 2007.net
Hallo an alle
ich hab eine Frage zu Delphi 2007.net. Ich habe grade versucht mit Threads zu arbeiten, dabei ist mir leider aufgefallen das das ganze nicht so läuft wie ich will. Ich habe in einer Procedure eine Verbindung an eine Datenbank und konstant eine Tabelle offen. Wenn ich einen 2. Thread erzeuge wird wieder auf die selbe Procedure gezeigt, aber diesmal mit einem anderen Tabelleninhalt. Habe ich eine Chance die Procedure als eigene Instanz laufen zu lassen, oder muss ich das mit einer Klasse realisieren, damit das klappt ? Danke im Voraus |
AW: Mehere Instanzen einer Procedure erstellen in Delphi 2007.net
Ich kann mich auch irren, aber von einer statischen procedure/function mehrere Instanzen zu erzeugen, ist in Hochsprachen allgemein nicht vorgesehen. (PS: Ich irre mich des öfteren)
Dafür sind ja Methoden und damit Klassen da. In C# gibt es auch Klassen, die im Prinzip nur eine Methode bieten (z.B. Comparer), aber evtl. bietet es sich ja an, die Funktion der Procedure gleich zusammen mit den anderen Aufgaben der Aktion in eine Thread-Klasse zu packen. |
AW: Mehere Instanzen einer Procedure erstellen in Delphi 2007.net
Zitat:
Zitat:
Wie hältst Du eigentlich 'konstant eine Tabelle offen'? Theoretisch sollte es doch reichen, ein System.Data.DataSet in einer statischen Variable zu halten. Lesende Zugriffe können darauf ohne weiteres Multithreaded erfolgen, aber beim Schreiben sollte das Object gesperrt werden. Siehe auch: ![]() Wenn da ein neuer Aufruf gegen die Datenbank passiert: Ist im ersten Thread eine Transaction offen die noch nicht commited wurde? Es könnte nämlich sein, dass der zweite Thread eine neue Verbindung aufmacht und dann an der Transaction des ersten Threads 'vorbei' liest. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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