Runtime error "3704" not allowed when object is closed in VB6 when using SP using temporary tables

I am using sp_Missingdata stored procedure to get data and display in MSFlexGrid, but I get error like - Runtime error "3704" not resolved when closing object I have searched a lot on google and changed these things - 1. set NOCOUNT ON for stored procedure.
 2.set SET ANSI_WARNINGS OFF for the stored procedure.

Private Sub Command2_Click()
Dim cmd As ADODB.Command
  Dim sqlnew, dd
Set cmd = New ADODB.Command
 cmd.ActiveConnection = ArtmConn
 cmd.CommandType = adCmdStoredProc
 cmd.CommandText = "sp_missingData"

  Dim rsnew As ADODB.Recordset
  Set rsnew = New ADODB.Recordset
  Set rsnew = cmd.Execute


  If Not rsnew.EOF Then  <-- Error is occuring here
    Set tblSop.DataSource = rsnew
  End If
  rsnew.Close
  Set rsnew = Nothing

End Sub

      

Note. My SP is using a temporary table - here is my sp

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET NOCOUNT ON
GO
SET ANSI_WARNINGS OFF
GO

ALTER procedure [dbo].[sp_missingData] --exec [sp_missingData]
as begin
delete from tbl_missingData
select ol_code as outletNo, start as StartreceiptNo into #temp  from
(select l.s_ol_code as ol_code, l.sno + 1 as start
from vSalesNo as l
  left outer join vSalesNo as r on l.sno + 1 = r.sno and l.s_ol_code = r.s_ol_code
where r.sno is null) as tmpa inner join
(select s_ol_code, max(s_no) as s_no from sales group by s_ol_code) as tmpb
on s_ol_code = ol_code and start <= substring(s_no, 0, 11) where start!=0
union all
select ol_code as outletNo, start as EndreceiptNo   from
(select l.s_ol_code as ol_code, l.sno - 1 as start
from vSalesNo as l
  left outer join vSalesNo as r on l.sno - 1 = r.sno and l.s_ol_code = r.s_ol_code
where r.sno is null) as tmpa inner join
(select s_ol_code, max(s_no) as s_no from sales group by s_ol_code) as tmpb
on s_ol_code = ol_code and start <= substring(s_no, 0, 11) where start!=0
order by ol_code, start;
insert into tbl_missingData
SELECT * FROM
    (SELECT ROW_NUMBER() 
        OVER (ORDER BY outletNo) AS rownumber, 
        * 
    FROM #temp) AS Documents

select *,dbo.countOfIds(outletNo,rowNumber) as rpNo into #temp1 from tbl_missingData where outletno!='9163'
select * from #temp1
end

      

When running SP, the following result set appears, I want to display it in MSFlexGrid

1   101 6381    p1
2   101 6472    p2
3   101 6534    p3
4   101 6565    p4
5   102 292 p1
6   117 234 p1
7   121 385 p1
8   121 6874    p2
9   121 6917    p3
10  121 6936    p4
11  121 6941    p5
12  121 6953    p6
13  121 6963    p7
14  121 7044    p8
15  121 7047    p9
16  124 14  p1
17  126 279 p1
18  127 5685    p1
19  127 5693    p2
20  139 650 p1
21  139 652 p2
22  401 942 p1
23  401 946 p2
24  401 951 p3
25  401 951 p4
26  401 953 p5
27  401 953 p6
28  401 956 p7
29  401 965 p8
30  401 972 p9
31  401 972 p10
32  401 974 p11
33  401 975 p12
34  401 980 p13
35  401 986 p14
36  401 999 p15
37  401 1000    p16

      

Please help me with this, any suggestion / help is greatly appreciated.

+3


source to share


1 answer


You need SET NOCOUNT ON

in the body of the procedure as the first line, not outside the declaration, which only applies when the stored procedure changes.



+3


source







All Articles