none
Modul die richtige Wahl? RRS feed

  • Frage

  • Ich wollte ein Modul nutzen, welches ein DataSet mit DB aus XML-Daten verwendet. Dieses Dataset soll als eine Instanz für die gesammte Anwendung gelten (bisher hab ich in jeden Formular eine eigene Instanz, was mich ganz kirre macht vor Fehlern). Würde das Funktionieren oder bin ich da auf den Holzweg?

    Des weiteren wollte ich in den Modul dann verschachtelte Prozeduren/Funktionen nutzen. Was ungefähr dann folgendes möglich machen soll (Data=Modulname)

    Data.Abfrage.Eigenschaften(21)

    Data.Abfrage.Name(18)

    Data.Aendere.Eigenschaft(21,"Mal was anderes")

    Data.Aendere.Name(18, "Fritz Günter)

    Die entsprechenden Funktionen und Prozduren stehen schon, möchte sie allerdings alle gebündelt im Modul haben und dann noch unterteilt in Abfrage, Aendere usw.

    Kann wer helfen?

    Samstag, 15. April 2006 22:59

Antworten

  • Hallo !

    Module werden in VB intern immer als Klasse mit shared members und methods umgesetzt.

    Wenn ich dein Bsp. oben richtig verstanden habe, könntest du das Ganze in etwa so umsetzten :

    public class data

        private shared ds as DataSet
        private shared xml as xmlDocument

        public class abfrage
            public shared sub eigenschaft (byVal value as integer)
                ' do something
            end sub

            public shared sub name (byVal value integer)
                ' do something
            end sub
        end class

        public class Aendere
            public shared sub eigenschaft (byVal value as integer, byVal strval as string)
                ' do something
            end sub

            public shared sub name (byVal value integer, byVal strval as string)
                ' do something
            end sub
        end class
    end class

    Das Dataset und XML musst du natürlich noch initialisieren etc.
    Ich hoffe, ich konnte helfen ... ;-)

    Gruß, Alexander

    Freitag, 19. Mai 2006 15:25

Alle Antworten

  • Du kannst ein DataSet immer als Shared oder in einem Modul definieren, damit nur eine einzige Instanz verfügbar ist.

    Du kannst dann aber auch das DataSet bzw. die DataTable direkt ändern ala

    Data.Tables(0).Rows(2)("Name") = "Jan"

    Mittwoch, 26. April 2006 15:32
  • VB akzeptiert scheinbar shared nicht in einen Modul
    Dienstag, 9. Mai 2006 16:38
  • In einem Modul sind standardmäßig alle Eigenschaften und Methoden Shared. In einer Klasse muss Shared explizit angegeben werden.
    Freitag, 19. Mai 2006 09:35
  • Hallo !

    Module werden in VB intern immer als Klasse mit shared members und methods umgesetzt.

    Wenn ich dein Bsp. oben richtig verstanden habe, könntest du das Ganze in etwa so umsetzten :

    public class data

        private shared ds as DataSet
        private shared xml as xmlDocument

        public class abfrage
            public shared sub eigenschaft (byVal value as integer)
                ' do something
            end sub

            public shared sub name (byVal value integer)
                ' do something
            end sub
        end class

        public class Aendere
            public shared sub eigenschaft (byVal value as integer, byVal strval as string)
                ' do something
            end sub

            public shared sub name (byVal value integer, byVal strval as string)
                ' do something
            end sub
        end class
    end class

    Das Dataset und XML musst du natürlich noch initialisieren etc.
    Ich hoffe, ich konnte helfen ... ;-)

    Gruß, Alexander

    Freitag, 19. Mai 2006 15:25