[x]
Posted via EE Mobile

Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again.

Question
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

8.0

NextRecordset: ADO 2.8 err.number = 3251

Asked by heartland-tech in Visual Basic Programming

I am receiving the same error.
I am calling a SP from a VB6 dll that returns 3 record sets. I receive the following:
?err.Number
 3251
?err.Description
Current provider does not support returning multiple record sets from a single execution.
My c:\program files\common files\system\msadc\msadce.dll is version 2.81.3010.0.
When I the SP in Query Analyzer, I receive no errors.
When I make the call to the local compiled dll (through a local vbs file),  I receive the same error as when debugging in VB6.  
So I gave a copy of my compiled dll to a coworker.
When my coworker makes the same call to the my dll (on his PC), he does not receive the error.
Next my coworker compiles the dll, he runs it, he does not receive the error.
He gives me the dll he compiles, I unregister my version, I register his version, I run the vbs file and sure enough I receive the error.

I appears to be an Issue with the version of ADO on my PC.  I checked for updates.
I still have not been able to run it without errors.

Does anyone have any suggestions?


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:
73:
Dim rsLocal As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim rs3 As New ADODB.Recordset
Dim o As Variant
 
On Error GoTo TheError
 
Set nDataLayer = CreateObject("Data.DataLayer_TransNone")
nDataLayer.Constructor DBSvrName, DBName
 
Set rsLocal = nDataLayer.RunSPReturnRS("Report", Array("@IDList", adVarChar, 4000, CStr(IDList)), _
Array("@bIncWithdrawn", adBoolean, 1, CBool(bIncWithDrawn)), _
Array("@uID", adInteger, 4, CLng(FID)))
 
For Each o In rsLocal.Fields
    rs1.Fields.Append o.Name, o.Type, o.DefinedSize, o.Attributes
Next
rs1.Open
If rsLocal.RecordCount > 0 Then
    rsLocal.MoveFirst
    
    Do Until rsLocal.EOF
        rs1.AddNew
        For Each o In rsLocal.Fields
            rs1.Fields(o.Name).Value = rsLocal.Fields(o.Name).Value
        Next
        rsLocal.MoveNext
    Loop
End If
 
'ALWAYS HIT ERROR HERE:
Set rsLocal = rsLocal.NextRecordset
 
For Each o In rsLocal.Fields
    rs2.Fields.Append o.Name, o.Type, o.DefinedSize, o.Attributes
Next
 
rs2.Open
If rsLocal.RecordCount > 0 Then
    rsLocal.MoveFirst
    
    Do Until rsLocal.EOF
        rs2.AddNew
        For Each o In rsLocal.Fields
            rs2.Fields(o.Name).Value = rsLocal.Fields(o.Name).Value
        Next
        rsLocal.MoveNext
    Loop
End If
 
Set rsLocal = rsLocal.NextRecordset
 
For Each o In rsLocal.Fields
    rs3.Fields.Append o.Name, o.Type, o.DefinedSize, o.Attributes
Next
 
rs3.Open
If rsLocal.RecordCount > 0 Then
    rsLocal.MoveFirst
    
    Do Until rsLocal.EOF
        rs3.AddNew
        For Each o In rsLocal.Fields
            rs3.Fields(o.Name).Value = rsLocal.Fields(o.Name).Value
        Next
        rsLocal.MoveNext
    Loop
End If
 
Set rsR = rs1
Set rsP = rs2
Set rsS = rs3
[+][-]09/30/09 10:08 AM, ID: 25460947Accepted Solution

View this solution now by starting your 30-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

About this solution

Zone: Visual Basic Programming
Sign Up Now!
Solution Provided By: heartland-tech
Participating Experts: 1
Solution Grade: A
 
[+][-]09/24/09 04:37 AM, ID: 25412164Expert Comment

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
 
Loading Advertisement...
20091111-EE-VQP-92 - Hierarchy / EE_QW_Related_20080208