vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Nutzen eines Globalen Datasets? 
Autor: Soenke1492
Datum: 09.11.12 23:47

Guten Abend zusammen,

ich habe eine kleine Anwendung in der unter anderem auf eine Access-Datenbank zugegriffen wird.

Aus verschiedenen Formularen und aus verschiedenen Threads greife ich immer wieder auf diese Datenbank zu, indem ich über neu, im Code erstellte Datasets die Daten aus der DB lade.

Aus Peformance-Gründen frage ich mich jetzt, ob es nicht Sinn machen würde bzw. möglich ist nur ein Dataset zu haben, auf welches ich dann von allen Threads und allen Formularen zugreifen kann?
Dann würde ich mir das mehrmalige Laden gleicher Daten sparen und die Daten für bestimmte Formulare wären bereits vorhanden und die Formulare würden deutlich schneller laden...

Gibt es eine Möglichkeit das Dataset Global zu deklarieren?
Wichtig ist wiegesagt, dass es auch aus verschiedenen Threads aufgegriffen werden kann.

Vielen Dank für Eure Unterstützung!

Sönke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nutzen eines Globalen Datasets? 
Autor: Manfred X
Datum: 10.11.12 07:44

Hallo!

Beim Laden von Daten in ein Dataset kommt es auf die richtige Auswahl
der Datensätze an. So viel wie nötig, aber so wenig wie möglich!
Ob Du mit EINEM Dataset effektiv arbeiten kannst, hängt davon ab, wie viele
Daten zu lesen sind, damit alle Threads beim Zugriff die für die Bearbeitung
erforderlichen Sätze darin vorfinden.

Auch ein Dataset ist (natürlich) ein Objekt, also können beliebig viele
Referenzen auf dieses Objekts erstellt und für den Datenzugriff verwendet
werden. Die Weitergabe von Referenzen an die Instanzen anderer Klassen kann
z.B. durch das Einrichten von Properties erfolgen (die vom Hauptformular
verwendet werden).

Sollten verschiedene Threads (lesend und) schreibend auf einen gemeinsam
genutzten Datenbestand zugreifen, muss eine sinnvolle Koordination eingerichtet
werden (Reihenfolge der Zugriffe, Locks der Datenobjekte).

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nutzen eines Globalen Datasets? 
Autor: paul123
Datum: 10.11.12 08:06

Hallo,

also ich hab das mal so gelernt, das ein Dataset ein 'Behälter' für Datatables ist. Also erschließt es sich mir nicht, weshalb man in einem Programm mit mehreren Datasets arbeiten soll
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nutzen eines Globalen Datasets? 
Autor: Manfred X
Datum: 10.11.12 08:14

Hallo!

Das kann man so allgemein eigentlich nicht sagen.

Wenn in einer Anwendung mehrere Threads parallel laufen, die
jeweils unterschiedliche Datensätze aus der DB benötigen,
kann es bei hohem Datenvolumen sinnvoll sein,
in jedem Thread die jeweils benötigten Sätze in die Tables eines
"threadspezifischen" Datasets zu laden und dieses Dataset sofort
nach der Bearbeitung wieder frei zu geben.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nutzen eines Globalen Datasets? 
Autor: paul123
Datum: 10.11.12 09:21

ok, Danke für den Tipp Manfred X. Ich hätte da mal ne Frage: Ich hab berufsbedingt in den letzten Jahren (ab 2008) wenig Zeit gehabt, mich weiter mit VB.Net zu befassen. Hättest du Interesse daran, mir zu helfen mein altes Projekt (unter VB 2003) zu aktualisieren? Ich würde mich auch erkenntlich zeigen. Falls ja:
SteffenEckhardt@gmx.de;
Projektbeschreibung würde ich per PM o.email schicken. Ist kein großes Ding, Kundendaten erfssen u.verwalten.
Natürlich hab ich jetzt schon mittels z.B.Galileo Openbooks versucht, es selbst zu schaffen. Hab aber ein Zeitproblem durch meinen neuen Job.

Gruß Steffen!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nutzen eines Globalen Datasets? 
Autor: Soenke1492
Datum: 10.11.12 10:15

Hallo,
Vielen Dank erstmal für Eure Antworten.

Wie beschrieben wollte ich ursprünglich jeglichen Konflikten aus dem Weg gehen und habe deshalb mehrere kurzlebige Datasets verwendet.

Aber wie und wo deklariere ich denn im Code ein "globales" Dataset, sodass ich jederzeit von überall drauf zugreifen kann?

Gibt es dort Session-Variablen oder ähnliches? Oder habe ich aus anderen Modulen die Möglichkeit auf eine globale Variable das Main-Forms zuzugreifen?

Viele Grüße,

Sönke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Nutzen eines Globalen Datasets? 
Autor: Manfred X
Datum: 10.11.12 10:41

Vergiß das mit dem "global"

Du erstellst das Dataset im Hauptformular (Private).
Dort werden auch die Instanzen der untergeordneten Formulare erstellt.

In den untergeordneten Formularen richtest Du eine
Eigenschaft eines geeigneten Typs (Dataset, Datatable, ...)
für die Übergabe der Referenz ein.

Du übergibst beim Erstellen/Anzeigen des Formulars aus dem
Hauptformular heraus die Referenz auf dieses Dataset (oder Table o.ä.)
durch Zuweisung auf diese Property.
In der Property (Set) rufst Du eine Routine auf, die die
Datenbindung der Controls an die Membervariable der Property aktualisiert.

Sei "Subform_Instance" der Name des untergeordneten Formulars,
"Data" der Name der dort eingerichteten Eigenschaft und "myDataset"
das im Hauptformular erstellte und mit Daten gefüllte Set:

Subform_Instance.Data = myDataset
SubForm_Instance.Show
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel