JairoMarques
asked on
SQLDMO error in Test Case 31 for Windows Vista
Hi Experts,
I´m trying to certificate my application to Windows Vista.
I´m using SQLDMO in a Visual Basic 6 application, but I´m having trouble in Test Case 31.
In the Test Code below I receive the message:
-2147483645-Automation error One or more arguments are invalid
Private Sub Command1_Click()
Dim oNameList As Object
Dim oApplication As Object
Dim n As Integer
On Error GoTo Erro
Screen.MousePointer = vbHourglass
Set oApplication = CreateObject("SQLDMO.Appli cation")
Set oNameList = oApplication.ListAvailable SQLServers
Set oApplication = Nothing
Combo1.Clear
For n = 1 To oNameList.Count
Combo1.AddItem oNameList(n)
Next n
Combo1.ListIndex = 0
Set oNameList = Nothing
Screen.MousePointer = vbDefault
Exit Sub
Erro:
Screen.MousePointer = vbDefault
MsgBox Err.Number & "-" & Err.Description
Set oApplication = Nothing
Set oNameList = Nothing
End Sub
Private Sub Form_Load()
Combo1.Clear
End Sub
AppVerifier log:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<avrf:logfile xmlns:avrf="Application Verifier">
<avrf:logSession TimeStarted="2007-04-05 : 11:33:05" PID="3996" Version="2">
<avrf:logEntry Time="2007-04-05 : 11:33:09" LayerName="Locks" StopCode="0x211" Severity="Error">
<avrf:message>Critical section is already initialized.</avrf:message >
<avrf:parameter1>1c454d60 - Critical section address.</avrf:parameter1>
<avrf:parameter2>59bcfe0 - Critical section debug info address.</avrf:parameter2>
<avrf:parameter3>4386cc - First initialization stack trace. Use dps to dump it if non-NULL</avrf:parameter3>
<avrf:parameter4>0 - Not used.</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfbasics!VfBas icsStopMes sage+8e</a vrf:trace>
<avrf:trace>vfbasics!AVrfp Initialize CriticalSe ctionCommo n+116</avr f:trace>
<avrf:trace>vfbasics!AVrfp RtlInitial izeCritica lSection+1 2</avrf:tr ace>
<avrf:trace>SQLDMO!DllRegi sterServer +1e42b8</a vrf:trace>
<avrf:trace>SQLDMO!+1c174b b6</avrf:t race>
<avrf:trace>SQLDMO!+1c174c c7</avrf:t race>
<avrf:trace>SQLDMO!DllRegi sterServer +1e62c3</a vrf:trace>
<avrf:trace>verifier!Verif ierStopMes sage+ea9</ avrf:trace >
<avrf:trace>vrfcore!VfCore StandardDl lEntryPoin tRoutine+1 27</avrf:t race>
<avrf:trace>vfbasics!AVrfp StandardDl lEntryPoin tRoutine+1 0e</avrf:t race>
<avrf:trace>ntdll!RtlRelea seSRWLockE xclusive+3 d</avrf:tr ace>
<avrf:trace>ntdll!RtlAcqui rePebLock+ 429</avrf: trace>
<avrf:trace>ntdll!RtlAcqui rePebLock+ 6f3</avrf: trace>
<avrf:trace>ntdll!LdrLoadD ll+116</av rf:trace>
<avrf:trace>vfbasics!AVrfp LdrLoadDll +5c</avrf: trace>
<avrf:trace>kernel32!LoadL ibraryExW+ f9</avrf:t race>
<avrf:trace>ole32!CoGetTre atAsClass+ 32c</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ 216</avrf: trace>
<avrf:trace>ole32!CoRegist erChannelH ook+3821</ avrf:trace >
<avrf:trace>ole32!CoRegist erChannelH ook+3736</ avrf:trace >
<avrf:trace>ole32!CoRegist erChannelH ook+35fc</ avrf:trace >
<avrf:trace>ole32!CoGetTre atAsClass+ 9ae</avrf: trace>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1dc9 </avrf:tra ce>
<avrf:trace>ole32!CoGetTre atAsClass+ b21</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ a96</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ 60d</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ 5be</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ b84</avrf: trace>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1dc9 </avrf:tra ce>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1e8f </avrf:tra ce>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1dc9 </avrf:tra ce>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1cf1 </avrf:tra ce>
<avrf:trace>ole32!CoTaskMe mAlloc+65e </avrf:tra ce>
<avrf:trace>ole32!CoCreate InstanceEx +38</avrf: trace>
<avrf:trace>ole32!CoCreate Instance+3 4</avrf:tr ace>
<avrf:trace>MSVBVM60!rtcCr eateObject 2+432</avr f:trace>
<avrf:trace>TC31!+401fb6</ avrf:trace >
<avrf:trace>MSVBVM60!IID_I VbaHost+23 6db</avrf: trace>
<avrf:trace>TC31!+4019b4</ avrf:trace >
<avrf:trace>MSVBVM60!IID_I VbaHost+23 9dc</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+23 e43</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+24 00f</avrf: trace>
<avrf:trace>MSVBVM60!EbLib raryUnload +dce1</avr f:trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2e 7f8</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+31 174</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2f bdb</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2f 61c</avrf: trace>
<avrf:trace>MSVBVM60!BASIC _DISPINTER FACE_GetTI Count+1cd8 b</avrf:tr ace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2e 7f8</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+31 174</avrf: trace>
<avrf:trace>USER32!GetMess ageW+6e</a vrf:trace>
<avrf:trace>USER32!GetMess ageW+146</ avrf:trace >
<avrf:trace>USER32!GetDesk topWindow+ 10a</avrf: trace>
<avrf:trace>USER32!SendMes sageW+49</ avrf:trace >
<avrf:trace>USER32!DrawFra me+6e2</av rf:trace>
<avrf:trace>USER32!DrawFra me+7f7</av rf:trace>
<avrf:trace>USER32!DrawFra me+816</av rf:trace>
<avrf:trace>USER32!EditWnd Proc+3fe</ avrf:trace >
<avrf:trace>USER32!GetMess ageW+6e</a vrf:trace>
<avrf:trace>USER32!GetMess ageW+146</ avrf:trace >
<avrf:trace>USER32!CallWin dowProcW+7 5</avrf:tr ace>
<avrf:trace>USER32!CallWin dowProcA+1 b</avrf:tr ace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2e a31</avrf: trace>
<avrf:trace>MSVBVM60!EbLib raryUnload +dfb7</avr f:trace>
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2007-04-05 : 11:33:09" LayerName="Locks" StopCode="0x201" Severity="Error">
<avrf:message>Unloading DLL containing an active critical section.</avrf:message>
<avrf:parameter1>1c454d60 - Critical section address.</avrf:parameter1>
<avrf:parameter2>4386cc - Critical section initialization stack trace.</avrf:parameter2>
<avrf:parameter3>4624fe8 - DLL name address.</avrf:parameter3>
<avrf:parameter4>1c0b0000 - DLL base address.</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfbasics!VfBas icsStopMes sage+8e</a vrf:trace>
<avrf:trace>vfbasics!AVrfp FreeMemLoc kChecks+17 c</avrf:tr ace>
<avrf:trace>vfbasics!AVrfp FreeMemNot ify+39</av rf:trace>
<avrf:trace>vfbasics!AVrfp DllUnloadC allback+2c </avrf:tra ce>
<avrf:trace>ntdll!RtlAppli cationVeri fierStop+6 63</avrf:t race>
<avrf:trace>ntdll!RtlDelet eAce+296d< /avrf:trac e>
<avrf:trace>ntdll!LdrUnloa dDll+46</a vrf:trace>
<avrf:trace>ntdll!TpWaitFo rWork+180< /avrf:trac e>
<avrf:trace>ntdll!LdrLoadD ll+116</av rf:trace>
<avrf:trace>vfbasics!AVrfp LdrLoadDll +5c</avrf: trace>
<avrf:trace>kernel32!LoadL ibraryExW+ f9</avrf:t race>
<avrf:trace>ole32!CoGetTre atAsClass+ 32c</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ 216</avrf: trace>
<avrf:trace>ole32!CoRegist erChannelH ook+3821</ avrf:trace >
<avrf:trace>ole32!CoRegist erChannelH ook+3736</ avrf:trace >
<avrf:trace>ole32!CoRegist erChannelH ook+35fc</ avrf:trace >
<avrf:trace>ole32!CoGetTre atAsClass+ 9ae</avrf: trace>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1dc9 </avrf:tra ce>
<avrf:trace>ole32!CoGetTre atAsClass+ b21</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ a96</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ 60d</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ 5be</avrf: trace>
<avrf:trace>ole32!CoGetTre atAsClass+ b84</avrf: trace>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1dc9 </avrf:tra ce>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1e8f </avrf:tra ce>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1dc9 </avrf:tra ce>
<avrf:trace>ole32!CoRegist erInitiali zeSpy+1cf1 </avrf:tra ce>
<avrf:trace>ole32!CoTaskMe mAlloc+65e </avrf:tra ce>
<avrf:trace>ole32!CoCreate InstanceEx +38</avrf: trace>
<avrf:trace>ole32!CoCreate Instance+3 4</avrf:tr ace>
<avrf:trace>MSVBVM60!rtcCr eateObject 2+432</avr f:trace>
<avrf:trace>TC31!+401fb6</ avrf:trace >
<avrf:trace>MSVBVM60!IID_I VbaHost+23 6db</avrf: trace>
<avrf:trace>TC31!+4019b4</ avrf:trace >
<avrf:trace>MSVBVM60!IID_I VbaHost+23 9dc</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+23 e43</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+24 00f</avrf: trace>
<avrf:trace>MSVBVM60!EbLib raryUnload +dce1</avr f:trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2e 7f8</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+31 174</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2f bdb</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2f 61c</avrf: trace>
<avrf:trace>MSVBVM60!BASIC _DISPINTER FACE_GetTI Count+1cd8 b</avrf:tr ace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2e 7f8</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+31 174</avrf: trace>
<avrf:trace>USER32!GetMess ageW+6e</a vrf:trace>
<avrf:trace>USER32!GetMess ageW+146</ avrf:trace >
<avrf:trace>USER32!GetDesk topWindow+ 10a</avrf: trace>
<avrf:trace>USER32!SendMes sageW+49</ avrf:trace >
<avrf:trace>USER32!DrawFra me+6e2</av rf:trace>
<avrf:trace>USER32!DrawFra me+7f7</av rf:trace>
<avrf:trace>USER32!DrawFra me+816</av rf:trace>
<avrf:trace>USER32!EditWnd Proc+3fe</ avrf:trace >
<avrf:trace>USER32!GetMess ageW+6e</a vrf:trace>
<avrf:trace>USER32!GetMess ageW+146</ avrf:trace >
<avrf:trace>USER32!CallWin dowProcW+7 5</avrf:tr ace>
<avrf:trace>USER32!CallWin dowProcA+1 b</avrf:tr ace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2e a31</avrf: trace>
<avrf:trace>MSVBVM60!EbLib raryUnload +dfb7</avr f:trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+2e 7f8</avrf: trace>
<avrf:trace>MSVBVM60!IID_I VbaHost+31 174</avrf: trace>
<avrf:trace>USER32!GetMess ageW+6e</a vrf:trace>
<avrf:trace>USER32!GetMess ageW+146</ avrf:trace >
<avrf:trace>USER32!IsWindo w+14d</avr f:trace>
</avrf:stackTrace>
</avrf:logEntry>
</avrf:logSession>
</avrf:logfile>
I´m trying to certificate my application to Windows Vista.
I´m using SQLDMO in a Visual Basic 6 application, but I´m having trouble in Test Case 31.
In the Test Code below I receive the message:
-2147483645-Automation error One or more arguments are invalid
Private Sub Command1_Click()
Dim oNameList As Object
Dim oApplication As Object
Dim n As Integer
On Error GoTo Erro
Screen.MousePointer = vbHourglass
Set oApplication = CreateObject("SQLDMO.Appli
Set oNameList = oApplication.ListAvailable
Set oApplication = Nothing
Combo1.Clear
For n = 1 To oNameList.Count
Combo1.AddItem oNameList(n)
Next n
Combo1.ListIndex = 0
Set oNameList = Nothing
Screen.MousePointer = vbDefault
Exit Sub
Erro:
Screen.MousePointer = vbDefault
MsgBox Err.Number & "-" & Err.Description
Set oApplication = Nothing
Set oNameList = Nothing
End Sub
Private Sub Form_Load()
Combo1.Clear
End Sub
AppVerifier log:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<avrf:logfile xmlns:avrf="Application Verifier">
<avrf:logSession TimeStarted="2007-04-05 : 11:33:05" PID="3996" Version="2">
<avrf:logEntry Time="2007-04-05 : 11:33:09" LayerName="Locks" StopCode="0x211" Severity="Error">
<avrf:message>Critical section is already initialized.</avrf:message
<avrf:parameter1>1c454d60 - Critical section address.</avrf:parameter1>
<avrf:parameter2>59bcfe0 - Critical section debug info address.</avrf:parameter2>
<avrf:parameter3>4386cc - First initialization stack trace. Use dps to dump it if non-NULL</avrf:parameter3>
<avrf:parameter4>0 - Not used.</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfbasics!VfBas
<avrf:trace>vfbasics!AVrfp
<avrf:trace>vfbasics!AVrfp
<avrf:trace>SQLDMO!DllRegi
<avrf:trace>SQLDMO!+1c174b
<avrf:trace>SQLDMO!+1c174c
<avrf:trace>SQLDMO!DllRegi
<avrf:trace>verifier!Verif
<avrf:trace>vrfcore!VfCore
<avrf:trace>vfbasics!AVrfp
<avrf:trace>ntdll!RtlRelea
<avrf:trace>ntdll!RtlAcqui
<avrf:trace>ntdll!RtlAcqui
<avrf:trace>ntdll!LdrLoadD
<avrf:trace>vfbasics!AVrfp
<avrf:trace>kernel32!LoadL
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoTaskMe
<avrf:trace>ole32!CoCreate
<avrf:trace>ole32!CoCreate
<avrf:trace>MSVBVM60!rtcCr
<avrf:trace>TC31!+401fb6</
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>TC31!+4019b4</
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!EbLib
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!BASIC
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!GetDesk
<avrf:trace>USER32!SendMes
<avrf:trace>USER32!DrawFra
<avrf:trace>USER32!DrawFra
<avrf:trace>USER32!DrawFra
<avrf:trace>USER32!EditWnd
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!CallWin
<avrf:trace>USER32!CallWin
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!EbLib
</avrf:stackTrace>
</avrf:logEntry>
<avrf:logEntry Time="2007-04-05 : 11:33:09" LayerName="Locks" StopCode="0x201" Severity="Error">
<avrf:message>Unloading DLL containing an active critical section.</avrf:message>
<avrf:parameter1>1c454d60 - Critical section address.</avrf:parameter1>
<avrf:parameter2>4386cc - Critical section initialization stack trace.</avrf:parameter2>
<avrf:parameter3>4624fe8 - DLL name address.</avrf:parameter3>
<avrf:parameter4>1c0b0000 - DLL base address.</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfbasics!VfBas
<avrf:trace>vfbasics!AVrfp
<avrf:trace>vfbasics!AVrfp
<avrf:trace>vfbasics!AVrfp
<avrf:trace>ntdll!RtlAppli
<avrf:trace>ntdll!RtlDelet
<avrf:trace>ntdll!LdrUnloa
<avrf:trace>ntdll!TpWaitFo
<avrf:trace>ntdll!LdrLoadD
<avrf:trace>vfbasics!AVrfp
<avrf:trace>kernel32!LoadL
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoGetTre
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoRegist
<avrf:trace>ole32!CoTaskMe
<avrf:trace>ole32!CoCreate
<avrf:trace>ole32!CoCreate
<avrf:trace>MSVBVM60!rtcCr
<avrf:trace>TC31!+401fb6</
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>TC31!+4019b4</
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!EbLib
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!BASIC
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!GetDesk
<avrf:trace>USER32!SendMes
<avrf:trace>USER32!DrawFra
<avrf:trace>USER32!DrawFra
<avrf:trace>USER32!DrawFra
<avrf:trace>USER32!EditWnd
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!CallWin
<avrf:trace>USER32!CallWin
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!EbLib
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>MSVBVM60!IID_I
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!GetMess
<avrf:trace>USER32!IsWindo
</avrf:stackTrace>
</avrf:logEntry>
</avrf:logSession>
</avrf:logfile>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Having said that, there's the possibility that no servers are found in which case the line
Combo1.ListIndex = 0
would result in error.
Can you try the following code and see if you still get error. If so, on what line does the error occur?
Private Sub Command1_Click()
Dim oNameList As SQLDMO.NameList
Dim n As Long
On Error GoTo Erro
1000 Screen.MousePointer = vbHourglass
1010 Set oNameList = SQLDMO.Application.ListAva
1020 Combo1.Clear
1030 If oNameList.Count > 0 Then
1040 For n = 1 To oNameList.Count
1050 Combo1.AddItem oNameList(n)
1060 Next n
End If
1070 Set oNameList = Nothing
1080 If Combo1.ListCount > 0 Then
1090 Combo1.ListIndex = 0
End If
1100 Screen.MousePointer = vbDefault
Exit Sub
Erro:
1110 Screen.MousePointer = vbDefault
1120 MsgBox Err.Number & "-" & Err.Description & vbCrLf & "at line " & Erl
1130 Set oNameList = Nothing
End Sub
Private Sub Form_Load()
Combo1.Clear
End Sub