Announcement

Collapse
No announcement yet.

SQLDMO funktioniert mit SQL-Server 2008 nicht mehr

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

  • SQLDMO funktioniert mit SQL-Server 2008 nicht mehr

    Hallo zusammen,
    ich habe bisher die SQL-Server-Verbindung unter SQL-Server 2000 und die Ansprechbarkeit einer Datenbank wie folgt getestet:

    Code:
    Dim connServer As SQLDMO.SQLServer
      Dim connDB As SQLDMO.Databases 
    Dim blnDBOnline as Boolean 
      
      Set connServer = New SQLServer
      
      Err.Clear
      On Error Resume Next
      connServer.LoginTimeout = 10
      
        Err.Clear
        connServer.LoginSecure = False
        connServer.Connect MyServer, "MyUser", "MyPWD"
      
      If Err Then
        connServer.Close
        Set connServer = Nothing
        errMsg = "Es kann keine Verbindung zum SQL-Server hergestellt werden !"
        Err.Clear
        Exit Function
      End If
    
      ServerName = connServer.NetName
      
      If Err = 0 Then
        Err.Clear
        Set connDB = connServer.Databases
        On Error Resume Next
        For inti = 1 To connDB.Count
          If connDB(inti).Name = PstrDBName Then
            If connDB(inti).Status = SQLDMODBStat_Normal Then
              blnDBOnline = True
            End If
            Exit For
          End If
        Next
        Set connDB = Nothing
        connServer.Close
        Set connServer = Nothing

    Das funktioniert so für SQL-Server 2008 nicht mehr. Kennt jemand eine andere Möglichkeit?

    Bin für jeden Tipp dankabr

  • #2
    Was für eine Fehlermeldung kommt.

    Ich würde darauf Tippen das eine Firewall blockiert.

    Comment


    • #3
      Hallo,
      es kommt folgende FEhlermeldung:

      [Microsoft][ODBC SQL Server Driver][SQL Server]Sie müssen die Verbindung zu diesem Server über SQL Server Management Studio oder über SQL Server Management Objects (SMO) herstellen.

      Comment


      • #4
        So wie es aussieht wirst du deine Programme auf SMO umstellen müssen.

        Comment


        • #5
          OK.
          Ich habe auch schon gegoogled... aber habe für VB6 nichts gefunden....
          Ich bin mir nicht sicher, aber was ich gefunden habe ist frameworkbasiert.

          Wie könnte ich SMO unter VB6 nutzen, was benötige ich für Verweise?

          Comment


          • #6
            OK.
            Ich habe mir was unter ADODB zusammengebastelt.
            Code:
            Function DBConnection(ByRef errMsg As String, ByRef Connected As Boolean, nLoop As Byte, Optional ByRef ServerName As String) As Boolean
              Dim connServer As ADODB.Connection
              Dim byti As Byte
              Dim blnDBOnline As Boolean
              Dim SName() As String
            
              DBConnection = False
              Connected = False
              blnDBOnline = False
            
              Screen.MousePointer = vbHourglass
              
              Set connServer = New ADODB.Connection
              
              Err.Clear
              On Error Resume Next
              connServer.ConnectionTimeout = 10
              byti = 0
              Do
                Err.Clear
                With connServer
                    .Provider = "SQLNCLI.1"
                    .Properties("Persist Security Info").Value = False
                    .Properties("Data Source").Value = PstrServer
                    .Properties("User ID").Value = "DBLogin"
                    .Properties("Password").Value = "checklogin"
                    
                    .Open
                    If .State = adStateOpen Then
                      SName() = Split(PstrServer, "\")
                      ServerName = SName(0)
                      .Close
                    End If
                End With
                If Err Then Wait (1)
                byti = byti + 1
              Loop Until Err = 0 Or byti >= nLoop
            
              If Err Then
                Screen.MousePointer = vbDefault
                If connServer.State = adStateOpen Then connServer.Close
                Set connServer = Nothing
                errMsg = "Es kann keine Verbindung zum SQL-Server hergestellt werden !" & vbCrLf & Err.Description
                Err.Clear
                Connected = False
                DBConnection = False
                Exit Function
              End If
              
              If Err = 0 Then
                Err.Clear
                On Error Resume Next
                With connServer
                    .Provider = "SQLNCLI.1"
                    .Properties("Persist Security Info").Value = False
                    .Properties("Initial Catalog").Value = PstrDBName
                    .Properties("Data Source").Value = PstrServer
                    .Properties("User ID").Value = "DBLogin"
                    .Properties("Password").Value = "checklogin"
                    
                    .Open
                     If .State = adStateOpen Then blnDBOnline = True
                    .Close
                End With
                Err.Clear
                If blnDBOnline = True Then
                  Connected = True
                  DBConnection = True
                ElseIf blnDBOnline = False Then
                  errMsg = "Datenbank " & PstrDBName & " nicht verbunden !"
                  Connected = False
                  DBConnection = False
                End If
              Else
                connServer.Close
                Set connServer = Nothing
                Connected = False
                DBConnection = False
              End If
              
              Screen.MousePointer = vbDefault
            End Function
            Wenn jemand noch eine bessere Lösung hat würde ich mir die auch gern mal ansehen....

            Vielleicht hat noch jemand eine Idee, wie ich den Servernamen besser auslesen kann...

            Bin noch für weitere Tipps dankbar...

            Comment

            Working...
            X