Announcement

Collapse
No announcement yet.

DB-Server im Netzwerk finden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DB-Server im Netzwerk finden

    Hallo!

    Ich hab zwar schon mehrmals wegen SQL Server Fragen gestellt. Aber langsam wird es spezieller. :-)

    Ich möchte ein Programm entwickeln, dass mir alle SQL Server im Netzwerk anzeigt. Das Auslesen der Dienste lohnt sich nicht, da es nur lokal geht. SQLDMO kommt wohl nicht in frage, weil es auf dem Rechner auf dem ich es ausführen will installiert sein muss. ^^

    Also was nun? Ich könnte einen broadcast an das Netzwerk schicken, aber da muss ich wissen, ob nicht nur MSSQL über UDP antwortet. Hat da einer Erfahrung? Ich weiß, dass man bei MySQL auch den port per tcp ansprechen kann. Standardmäßig ist dieser auf 3306 eingestellt, aber den kann man ja selbst wählen. Oracle kann man über udp oder tcp ansprechen. Ist es möglich an eine liste von ports einen broadcast zu senden?

    Ich habe hier die perfekte Umgebung. Viele Rechner und nicht auf allen läuft MSSQL sondern andere DBs. :-)

    Hat jemand eine Idee, wie man das anpacken kann? :-D

  • #2
    NetServerEnum wäre eine Möglichkeit

    Comment


    • #3
      ich kann leider nicht auf netserverenum und auch nicht auf andere api-funktionen zugreifen. irgendwie funktioniert das nie. Da kommt immer eine accessviolationexception. :-(

      Comment


      • #4
        Dann hat deine Implementierung wohl einen Fehler.

        Ich verwende diese Funktion in Win32 und dort funktionieren sie. Poste doch etwas Code was du machst.

        Comment


        • #5
          also ich definiere erstmal diese variablen:
          Code:
          Private Const MAX_PREFERRED_LENGTH As Long = -1
          Private Const SV_TYPE_SQLSERVER As Long = &H4
          Dim bufptr As Long
          Dim dwEntriesread As Long
          Dim dwTotalentries As Long
          Dim dwResumehandle As Long
          Dim success As Long
          Dim cnt As Long
          und dann ruf ich die api-funktion auf:
          Code:
          success = NetServerEnum(0&, _
                                          100, _
                                          bufptr, _
                                          MAX_PREFERRED_LENGTH, _
                                          dwEntriesread, _
                                          dwTotalentries, _
                                          SV_TYPE_SQLSERVER, _
                                          0&, _
                                          dwResumehandle)
          und an der stelle kommt die accessviolationexception :-(

          Comment


          • #6
            Schau mal bei den VBNet'lern vorbei

            Comment


            • #7
              ich hab es genau so gemacht, wie dort beschrieben. :-)

              ausser, dass ich bei declare function NetServerEnum Lib "netapi32"

              buf as any nicht nehmen konnte, weil .net das nicht mehr unterstützt ^^

              Comment


              • #8
                kann mir einer einen code geben, wo das NetServerEnum funktioniert?

                Ich krieg das alleine nicht hin. :-(

                Comment


                • #9
                  Hallo,

                  auf der CodeProject-Webseite ("The Code Project - Free Source Code and Tutorials") liegt der Artikel »Retreiving a list of network computer names using C#«, in dem der Zugriff auf die Win32-API-Funktion NetServerEnum demonstriert wird. Der Artikel kann über die URL http://www.codeproject.com/cs/intern...kComputers.asp direkt abgerufen werden.

                  Comment

                  Working...
                  X