472,122 Members | 1,467 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,122 software developers and data experts.

error handling

One problem with the code bellow is after this code

conn.qDupUser p1,rs

I added:

set rs = nothing

to test the error handling capability.

What happen is the code bellow gets executed

If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

along with the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
THE CODE:
If request.queryString("Action") = 2 then
p1 = Trim(request.form("username"))
p2 = Trim(request.form("password"))
p3 = Trim(request.form("type"))
If (p1 <> "" and p2 <> "") AND (Len(p1)<=12 and Len(p2)<=12) then
on error resume next
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("/db/upload/stelladb.mdb") & ";"
set rs = Server.CreateObject("ADODB.Recordset")
conn.qDupUser p1,rs
set rs = nothing
If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else
arParms = Array(p1,p2,p3)
sql = "INSERT INTO Account([Username],[Password],[Type]) VALUES(?,?,?)"
RunQueryString sql, arParms
End if
if Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
Else
response.write "<center><font class='error'>Error: Invalid username or
password</font></center><br><br>"
End if
End if
How do I solve the problem?

Eugene Anthony

*** Sent via Developersdex http://www.developersdex.com ***
Jun 22 '06 #1
4 1818

Eugene Anthony wrote:
One problem with the code bellow is after this code

conn.qDupUser p1,rs

I added:

set rs = nothing

to test the error handling capability.

What happen is the code bellow gets executed

If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

along with the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
THE CODE:
If request.queryString("Action") = 2 then
p1 = Trim(request.form("username"))
p2 = Trim(request.form("password"))
p3 = Trim(request.form("type"))
If (p1 <> "" and p2 <> "") AND (Len(p1)<=12 and Len(p2)<=12) then
on error resume next
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("/db/upload/stelladb.mdb") & ";"
set rs = Server.CreateObject("ADODB.Recordset")
conn.qDupUser p1,rs
set rs = nothing
If rs(0) = 1 then


I'm not quite sure what your problem is, because you haven't exactly
described it very well, but in the 4 lines above, you have declared a
recordset object, opened it, set it to nothing and then tried to
reference it.

Obviously, since you have set rs = nothing, anything that belongs to rs
is also set to nothing, including rs(0).

--
Mike Brind

Jun 22 '06 #2
I purposely set rs = nothing

to test the error handling capability and what happen is the code
bellow gets executed

If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

followed by the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0

so I am getting two error msg which is wrong. Only one error msg is to
be displayed.
Eugene Anthony wrote:
One problem with the code bellow is after this code

conn.qDupUser p1,rs

I added:

set rs = nothing

to test the error handling capability.

What happen is the code bellow gets executed

If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

along with the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
THE CODE:
If request.queryString("Action") = 2 then
p1 = Trim(request.form("username"))
p2 = Trim(request.form("password"))
p3 = Trim(request.form("type"))
If (p1 <> "" and p2 <> "") AND (Len(p1)<=12 and Len(p2)<=12) then
on error resume next
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("/db/upload/stelladb.mdb") & ";"
set rs = Server.CreateObject("ADODB.Recordset")
conn.qDupUser p1,rs
set rs = nothing
If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else
arParms = Array(p1,p2,p3)
sql = "INSERT INTO Account([Username],[Password],[Type]) VALUES(?,?,?)"
RunQueryString sql, arParms
End if
if Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
Else
response.write "<center><font class='error'>Error: Invalid username or
password</font></center><br><br>"
End if
End if
How do I solve the problem?

Eugene Anthony

*** Sent via Developersdex http://www.developersdex.com ***


Jun 23 '06 #3
On Error Resume Next tells the VBScript engine to ignore errors and
continue with the next line of code. Details of the last error
encountered are stored in the Err object. Previous error information
is lost. On Error Goto 0 switches off On Error Resume Next, so code
continues executing normally until it reaches another error.

More information:
http://blogs.msdn.com/ericlippert/ar...19/217244.aspx

--
Mike Brind

solomon_13000 wrote:
I purposely set rs = nothing

to test the error handling capability and what happen is the code
bellow gets executed

If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

followed by the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0

so I am getting two error msg which is wrong. Only one error msg is to
be displayed.
Eugene Anthony wrote:
One problem with the code bellow is after this code

conn.qDupUser p1,rs

I added:

set rs = nothing

to test the error handling capability.

What happen is the code bellow gets executed

If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

along with the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
THE CODE:
If request.queryString("Action") = 2 then
p1 = Trim(request.form("username"))
p2 = Trim(request.form("password"))
p3 = Trim(request.form("type"))
If (p1 <> "" and p2 <> "") AND (Len(p1)<=12 and Len(p2)<=12) then
on error resume next
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("/db/upload/stelladb.mdb") & ";"
set rs = Server.CreateObject("ADODB.Recordset")
conn.qDupUser p1,rs
set rs = nothing
If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else
arParms = Array(p1,p2,p3)
sql = "INSERT INTO Account([Username],[Password],[Type]) VALUES(?,?,?)"
RunQueryString sql, arParms
End if
if Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
Else
response.write "<center><font class='error'>Error: Invalid username or
password</font></center><br><br>"
End if
End if
How do I solve the problem?

Eugene Anthony

*** Sent via Developersdex http://www.developersdex.com ***


Jun 23 '06 #4

"solomon_13000" <so***********@yahoo.com> wrote in message
news:11*********************@i40g2000cwc.googlegro ups.com...
I purposely set rs = nothing

to test the error handling capability and what happen is the code
bellow gets executed

If rs(0) = 1 then
Earlier in your code you set On Error Resume Next.

This line fails but that doesn't imply the whole If ... End If block is
skipped. Code execution just falls into the 'Then' portion and executes
that. I can't say whether it's guaranteed always to behave that way but at
least in VBScript it fairly certain.
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

followed by the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0

so I am getting two error msg which is wrong. Only one error msg is to
be displayed.

Frankly Error handling in VBScript stinks. Using a blanket On Error Resume
Next can often to lead to all sorts of strange an seemingly inexplicable
behaviour.

If you really must use it extract the specific lines that really need this
(there are usually only one or two lines that actually need this) and move
them into their own function. You can place the On Error Resume Next in
those functions.

Eugene Anthony wrote:
One problem with the code bellow is after this code

conn.qDupUser p1,rs

I added:

set rs = nothing

to test the error handling capability.

What happen is the code bellow gets executed

If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else

along with the code bellow

If Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
THE CODE:
If request.queryString("Action") = 2 then
p1 = Trim(request.form("username"))
p2 = Trim(request.form("password"))
p3 = Trim(request.form("type"))
If (p1 <> "" and p2 <> "") AND (Len(p1)<=12 and Len(p2)<=12) then
on error resume next
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("/db/upload/stelladb.mdb") & ";"
set rs = Server.CreateObject("ADODB.Recordset")
conn.qDupUser p1,rs
set rs = nothing
If rs(0) = 1 then
response.write "<center><font class='error'>Error: Username is
unavailable</font></center><br><br>"
conn.close
set conn = nothing
else
arParms = Array(p1,p2,p3)
sql = "INSERT INTO Account([Username],[Password],[Type]) VALUES(?,?,?)"
RunQueryString sql, arParms
End if
if Err.number <> 0 then
Response.Write "<center><font class='error'>" & Err.number & ":" &
Err.Description & "</font></center><br>"
end if
on Error goto 0
Else
response.write "<center><font class='error'>Error: Invalid username or
password</font></center><br><br>"
End if
End if
How do I solve the problem?

Eugene Anthony

*** Sent via Developersdex http://www.developersdex.com ***

Jun 23 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

12 posts views Thread by Christian Christmann | last post: by
3 posts views Thread by Stefan Johansson | last post: by
1 post views Thread by Metal Dave | last post: by
1 post views Thread by pob | last post: by
35 posts views Thread by jeffc226 | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.