Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 5 von 5
  1. #1
    Aufsteiger
    Registriert seit
    03.03.2009
    Beiträge
    97

    Standard Speicherproblem

    Hallo NG,

    ich bitte wieder mal um eure Hilfe.
    In einem Projekt (Projekt_A) hab ich eine große Tablle (mTable) mit 40.000 Datensätzen.
    Aus einer Klasse in einem anderen Projekt (Projekt_B) muss ich auf diese Tabelle zugreifen und Werte auslesen.
    Projekt B ist aber schon in Projekt A referenziert (Dim p As New Projekt_B.Class_B)
    Ringverweis geht ja nicht
    Wenn ich jetzt im Projekt A über eine Property die Tabelle als DataTable dem Projekt B bekannt mache -
    Code:
    in B:
    Property MeineTable() As DataTable
            Set(ByVal value As DataTable)
                myTable = value
            End Set
    End Property
    
    in A:
    p.MeineTable=mTabelle
    wird dann nochmal Speicher belegt, oder wird da nur ein Verweis benutzt?
    Im ersteren Fall würde ich mir wahrscheinlich etwas anderes überlegen, denn eine so große Tabelle zweimal im Speicher zu halten, behagt mir gar nicht.

    Viele Grüße
    Norbert

  2. #2
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.351

    Standard

    Ich hab keine Ahnung von den VB Komponenten. Also ein ganz allgemeiner Hinweis:
    Tabellen sind aber ja allgemein dafür da, viele Daten zu persistieren auch viel mehr als 40000, ohne das irgendeine arme Anwendung sie alle im Kopf haben muss.
    Man holt sich immer die Daten, die man gerade braucht. Das erfolgt idR über Abfragen, Queries bzw. entsprechende Komponenten, nicht über Tablekomponenten.
    Gruß, defo

  3. #3
    Aufsteiger
    Registriert seit
    03.03.2009
    Beiträge
    97

    Standard

    Vielen Dank. Schon klar, was Du sagst. Mach ich auch gewöhnlich so.
    Mein Problem ist, dass ich im Projekt B keine Daten (Teilmenge) aus der DataTable in Projekt A holen kann (Ringverweis). Würden die beiden betreffenden Klassen im gleichen Projekt liegen, gäbe es das Problem nicht. Dann müsste ich nicht die Klasse in B in der Klasse in A referenzieren und könnte leicht zugreifen. Würde jedoch immensen Aufwand bedeuten, alles umzubauen. Vielleicht sehe ich aber auch im Moment den Wald vor lauter Bäumen nicht ...

  4. #4
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    4.858

    Standard

    In deiner Property wird nur ein Verweis auf die Tabelle gehalten. Da wird nichts kopiert.

    Das heißt aber nicht das das irgendwie gut ist Alleine deine Beschreibung klingt schon so das du ein Problem mit der Strukturierung deiner Anwendung hast. Auch wenn du damit das Problem kurzfristig mit dieser Property löst klingt es so als würde das mittelfristig zu Verantwortunsproblemen führen wenn man an so Dinge wie Aktualisieren und Bearbeiten der DataTable denkt.

  5. #5
    Aufsteiger
    Registriert seit
    03.03.2009
    Beiträge
    97

    Standard

    Danke Ralf! Du beherbergst wohl dieses Forum in der Hosentasche? ;-)
    Ja, man pappt immer wieder etwas dran, weil es "ganz oben" immer wieder neue Bestimmungen gibt. Irgendwann muss man dann wohl doch mal neu strukturieren. Da hast Du ganz recht. Aber ich lass es jetzt nochmal so, weil es aus Projekt B heraus kein Aktualisieren und Bearbeiten gibt.

    Schöne Grüße
    Norbert

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •