Middels de NetAPI-declaration NetServerEnum haal ik de SQL-servers uit een domein op. Dit gaat op zivh goed, alleen laat hij de eerste 8 karakters zien ipv de volledig benaming.
hier een stukje code:
hier een stukje code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| Public Sub GetSQLServers()
On Error GoTo Err_GetSQLServers
Dim L As Long
Dim EntriesRead As Long
Dim TotalEntries As Long
Dim hResume As Long
Dim bufPtr As Long
Dim Level As Long
Dim PrefMaxLen As Long
Dim lType As Long
Dim Domain() As Byte
Dim I As Long
Dim sv100 As SV_100
Dim strDomain As String
Level = 100
PrefMaxLen = -1
lType = SV_TYPE_SQLSERVER
If (IsNull(Domain)) Or (Len(Format(Domain)) < 1) Then
TryAgain:
strDomain = "Paree" 'InputBox("Please enter your network's Domain Name", " DOMAIN NAME NEEDED", "MYCOMPANYDOMAIN")
DoEvents
Screen.MousePointer = vbHourglass
Domain = Trim$(strDomain) & vbNullChar
If Len(Format(Domain)) < 1 Then
' no value entered, or user cancelled
MsgBox "No Domain Name value entered," & vbCrLf & " or user cancelled", vbInformation, " Exiting Program"
Unload Me
End
Else
' use value entered in inputbox
Domain = strDomain & vbNullChar
End If
End If
L = NetServerEnum(ByVal 0&, _
Level, _
bufPtr, _
PrefMaxLen, _
EntriesRead, _
TotalEntries, _
lType, _
Domain(0), _
hResume)
If L = 0 Or L = 234& Then
For I = 0 To EntriesRead - 1
CopyMemory sv100, ByVal bufPtr, Len(sv100)
Debug.Print Pointer2StringW(sv100.Name)
cboServers.AddItem Pointer2StringW(sv100.Name)
bufPtr = bufPtr + Len(sv100)
Next I
End If
NetApiBufferFree bufPtr
Exit_GetSQLServers:
On Error GoTo 0
Exit Sub
Err_GetSQLServers:
Select Case Err
Case 0
Resume Next
Case Else
MsgBox "Error Code: " & Err.Number & vbCrLf & vbCrLf & Err.Description & vbCrLf & vbCrLf & Err.Source, vbInformation, "GetSQLServers - Advisory"
Resume Exit_GetSQLServers
End Select
End Sub |