vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

ADO.NET / Datenbanken
Re: Ein bisschen offtopic aber trotzdem: Objektorientierte Datenbank db4o 
Autor: UR
Datum: 14.03.06 19:00

ÄÄhh ich glaube so ist das nicht.

Ich glaube das ist weniger ein DB-Thema als ein grunsätzlich sprachlich/objektorientiertes (deswegen hab ich das auch erstmal ins VB-Forum gepostet).

Wie speichert man eine Klasse in der Klasse und ruft sie wieder ab????
Dh. die Klasse enthält sowas wie
Public mySubProzesses As System.Collections.Generic.List(Of Prozess)
Also was bisher geht::
    Public Class Prozess
 
#Region "Public constructors"
 
        Public Sub New()
        End Sub
 
        Public Sub New(ByVal ProzessName As String)
            Me.m_ProzessName = ProzessName
        End Sub
 
        'constructor for data loading.
        Public Sub New(ByVal ProzessNI As String, ByVal ProzessName As String, _
          ByVal ProzessTask As String, ByVal ProzessFlow As String)
 
            Me.m_ProzessNI = ProzessNI
            Me.m_ProzessName = ProzessName
            Me.m_ProzessTask = ProzessTask
            Me.m_ProzessFlow = ProzessFlow
 
        End Sub
 
#End Region
 
#Region "Private Members"
 
        Private m_SubProzess As Prozess
        Private m_SubProzesse As IList
 
        Private m_ProzessTime As ProzessTime
 
        Private m_ProzessNI As String
        Private m_ProzessName As String
        Private m_ProzessTask As String
        Private m_ProzessFlow As String
        Private m_CreatedBy As String
 
#End Region
 
#Region "Public Properties"
 
        Public Property SubProzess() As Prozess
            Get
                Return m_SubProzess
            End Get
            Set(ByVal value As Prozess)
                m_SubProzess = value
            End Set
        End Property
 
        Public Property ProzessTime() As ProzessTime
            Get
                Return m_ProzessTime
            End Get
            Set(ByVal value As ProzessTime)
                m_ProzessTime = value
            End Set
        End Property
 
 
        Public Property ProzessNI() As String
            Get
                Return m_ProzessNI
            End Get
            Set(ByVal Value As String)
                m_ProzessNI = Value
            End Set
        End Property
 
        Public Property ProzessName() As String
            Get
                Return m_ProzessName
            End Get
            Set(ByVal Value As String)
                m_ProzessName = Value
            End Set
        End Property
 
        Public Property ProzessTask() As String
            Get
                Return m_ProzessTask
            End Get
            Set(ByVal Value As String)
                m_ProzessTask = Value
            End Set
        End Property
 
        Public Property ProzessFlow() As String
            Get
                Return m_ProzessFlow
            End Get
            Set(ByVal Value As String)
                m_ProzessFlow = Value
            End Set
        End Property
 
        Public Property CreatedBy() As String
            Get
                Return m_CreatedBy
            End Get
            Set(ByVal Value As String)
                m_CreatedBy = Value
            End Set
        End Property
 
....
 
#End Region
 
 
....
 
End Class
Damit kann man dann folgendes tun:
objProzess.ProzessName = Me.txt_ProzessName.Text
        objProzess.ProzessFlow = Me.txt_ProzessFlow.Text
        objProzess.ProzessTask = Me.txt_ProzessTask.Text
        objProzess.CreatedDate = Today
 
 
        Dim db As com.db4o.ObjectContainer = com.db4o.Db4oFactory.OpenFile( _
          Application.StartupPath & "\Data\Test.yap")
        Try
            ' do it with db4o
            db.Set(objProzess)
....
Toll, das Object (Klasse/Datensatz) ist gespeichert.

Jetzt möchte ich den einem Prozess einen SubProzess zuordnen. UND das kapier ich halt im Moment nicht.
Weil dieser Teil der Klasse so nicht funktioniert.


 Public Function IsComponentOf(ByVal assembly As ProzessAssembly) As Boolean
            Return assembly.HasChildComponent(Me)
        End Function
 
        Public Function CreateSubProzess(ByVal objectContainer As _
          ObjectContainer) As Prozess
 
            Dim objProzess As New Prozess
            objProzess.m_SubProzesse = objectContainer.Ext().Collections( _
              ).NewLinkedList()
            Return objProzess
 
        End Function
sowas dann wie:
            Dim objSubProzess As DBObjects.Prozess = New  DBObjects.Prozess
            objSubProzess.ProzessNI = System.Guid.NewGuid.ToString()
            objSubProzess.ProzessName = Me.txt_ProzessName.Text & " " & _
              objSubProzess.ProzessNI
 
            objProzess.CreateSubProzess(objSubProzess)
Wobei eigentlich die guid (ursprünglich mal der unique Identifier) nicht nötig ist, da db4o jedem serialisiertem Objekt eine interne ID zuweist.
Und db4o kann auch cascadierend serialisieren.

Sector Twelve, or to Infinity and Beyond, whichever comes first.!

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ein bisschen offtopic aber trotzdem: Objektorientierte Daten...1.266UR14.03.06 10:33
Re: Ein bisschen offtopic aber trotzdem: Objektorientierte D...725spike2414.03.06 14:11
Re: Ein bisschen offtopic aber trotzdem: Objektorientierte D...717UR14.03.06 19:00

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-2025 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