Problem in Returning Recordset in ASP

V

vinodkus

I M BEGINNER IN ASP
I WANT TO RETURN TOTAL RECORDS FROM A TABLE.
THERE ARE TWO FORMS CLASS1.ASP AND CLASS2.ASP
THROUGH FIRST FORM I JUST POST THE NAME OF TABLE
SO I M WRITING THE CODE OF CLASS2.ASP

<!--#Include File = "Include/iecon.inc"-->
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<title>New Page 1</title>
</head>
<body>
<%
dim rs,rs1

class AddNum

public function showRecordCount()
tbl = Request.Form("txtTbl")
rs = con.execute("select count(*) from "&tbl)
end function

public function returnRS
tbl = Request.Form("txtTbl")
rs1 = con.execute("select * from "&tbl)
end function

end class

dim obj
set obj = new AddNum

obj.showRecordCount
Response.write("<br>")

Response.write ("Total Record is " & rs(0))
%>

<div align="left">
<table border="1" cellpadding="0" cellspacing="0" style="border-
collapse: collapse" bordercolor="#111111" width="248" height="52"
id="AutoNumber1">
<tr>
<td width="114" height="52">Addition Of Two Number using Object</
td>
<td width="128" height="52"><input type = text name = txtAdd
size="20" value = <%=a%>></td>
</tr>
</table>
</div>
<table border="1" cellpadding="0" cellspacing="0" style="border-
collapse: collapse" bordercolor="#111111" width="48%"
id="AutoNumber2">
<tr>
<td width="33%">Column1 </td>
<td width="33%">Column2</td>
<td width="34%">Column3</td>
</tr>
<%
obj.returnRS
if not rs1.eof then '/*********LINE NO 66 *****************/
while not rs1.eof
%>
<tr>
<td width="33%"><%=rs1(0)%> &nbsp;</td>
<td width="33%"><%=rs1(1)%> &nbsp;</td>
<td width="34%"><%=rs1(2)%> &nbsp;</td>
</tr>
<%
rs1.movenext
wend
end if
%>
</table>
</body>
</html>

MY ERROR IS
Error Type:
Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method: 'eof'
/vkasp/aspClass/class2.asp, line 66

BUT WHEN I COMMENT THE IF AND WHILE LOOP PROCEDURE IT GIVES THE FIRST
RECORD BUT I WANT ALL RECORD FROM TABLE.
WHAT IS PROBLEM
PLEASE HELP ME
THANKS
 
B

Bob Barrows [MVP]

I M BEGINNER IN ASP

Please stop shouting.
I WANT TO RETURN TOTAL RECORDS FROM A TABLE.
THERE ARE TWO FORMS CLASS1.ASP AND CLASS2.ASP

Total records?? I think (hope) you mean "count of the total records". In
ASP, unless you have some means to limit the number of rows in a table, you
should never be thinking about retrieving all the records in a table. Always
use a WHERE clause to limit your results. If that is not possible, use the
TOP n operator.
THROUGH FIRST FORM I JUST POST THE NAME OF TABLE
SO I M WRITING THE CODE OF CLASS2.ASP
dim rs,rs1

class AddNum

public function showRecordCount()
tbl = Request.Form("txtTbl")
rs = con.execute("select count(*) from "&tbl)


You are missing the "Set" keyword here - you are dealing with an object
variable, not scalar.

end function

What is this function supposed to do? Simply open the recordset and assign
it to the global rs variable? If so, why use a function? A sub would be more
suited for this given that you aren't returning any values from the
procedure.
public function returnRS
tbl = Request.Form("txtTbl")
rs1 = con.execute("select * from "&tbl)

Again, you are missing the "Set" keyword here - you are dealing with an
object variable, not scalar.
end function

Again, a function that does not return anything! This is bizarre. Also, the
misguided use of selstar! ALWAYS (my turn to shoult) specify the names of
the fields you wish to retrieve. http://www.aspfaq.com/show.asp?id=2096
end class

dim obj
set obj = new AddNum
obj.showRecordCount
Response.write("<br>")

Response.write ("Total Record is " & rs(0))
<%
obj.returnRS
if not rs1.eof then '/*********LINE NO 66 *****************/

MY ERROR IS
Error Type:
Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method: 'eof'
/vkasp/aspClass/class2.asp, line 66

BUT WHEN I COMMENT THE IF AND WHILE LOOP PROCEDURE IT GIVES THE FIRST
RECORD

Really? I'm amazed. Without the Set keyword, rs1 should not even be a
recordset. Here is how I would recode this class (I would be passing the
list of field names for the select clause but I won't get into that).

<%
dim rs, sTbl
sTbl=Request.Form("txtTbl") 'only access collections once

class AddNum

public function showRecordCount(con, tbl)
dim rsLocal, sql
sql="select count(*) from " & tbl
set rsLocal= con.execute(sql,,1)
showRecordCount = rsLocal(0)
rsLocal.close
end function

public function returnRS(con, tbl)

dim sql
sql="select * from " & tbl
Set returnRS = con.execute(sql,,1)
end function

end class

dim obj
set obj = new AddNum

Response.write("<br>")

Response.write "Total Record is " & _
obj.showRecordCount(con,sTbl)

Set rs = obj.returnRS(con, sTbl)
'The IF statement is not necessary since you are not
'doing anything (it seems) if EOF is true

Do Until rs.EOF
...
Loop
%>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top