*solved* Custom errors and duplicates (Full Version)

All Forums >> [Web Development] >> ASP and Database



Message


lovduv -> *solved* Custom errors and duplicates (2/20/2007 2:30:52)

I am trying to have a custom error if a uaer puts in a duplicate name. My database is set and no duplicates are inserted. Now I need the custom error.... after some searching I saw a reply by spooky directing me here http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=106
and I am trying to use the last code:
   <%
' I assume you have a connection open...
objConn.Errors.Clear ' just to be safe, clear out any existing errors

On Error Resume Next ' then IGNORE errors!
catConn.Execute("INSERT INTO whateverTable (field1,field2,field3) Values(777,'whatever','and more')")
On Error GoTo 0 ' turn off the ignoring of errors!

' now see if we got any errors from the insert!
For Each oops In catConn.Errors
    If oops.number = -2147217900 Then
        Response.Write "That item already exists in that table!<BR>"
    Else
        Response.Write "Unexpected error: " & oops.number & " -- " & oops.description 
    End If
Next
%> 


But I am using front page web bots to submit to DB with a simple form and I am not sure where to put this code?




BeTheBall -> RE: Custom errors and duplicates (2/20/2007 8:46:53)

I think you will find this a better solution for your needs:

http://www.spiderwebwoman.com/thingumajig/tweaks.htm#customerr




lovduv -> RE: Custom errors and duplicates (2/20/2007 13:04:04)

Be the Ball you always seem to be the one helping me [;)] ...well occasionaly spooky chimes in too..lol
Thanks Guys!

So I tried putting in the code you suggested but I am throwing an error:

Microsoft VBScript compilation error '800a03f4'

Expected 'If'

/_fpclass/fpdbform.inc, line 134

End Select


I think I just put the "end select" in the wrong place, heres my "Function FP_DumpError" in "fpdbform.inc":


Function FP_DumpError(strErrorUrl, strMsg)
	On Error Resume Next
	Dim fp_Debug
	fp_Debug = False
	If Err.Number <> 0 Then
		fp_conn.Close
		Session.CodePage = Session("FP_OldCodePage")
		Session.LCID = Session("FP_OldLCID")
		If strErrorUrl <> "" Then
			Response.Redirect strErrorUrl
		Else
		Select Case Err.Number
		Case -2147217873
		Response.Write "Sorry, this item already exists in the database. Hit the <Back> button of your browser and try again."
		Case Else

			Response.Write "<b> " & Server.HTMLEncode(strMsg) & "</b><p>"
			if fp_Debug Then
				Response.Write "Error Description: " & Server.HTMLEncode(Err.Description) & "<p>"
				Response.Write "Error Number: " & Server.HTMLEncode(Err.Number)  & "<p>"
				Response.Write "Error Source: " & Server.HTMLEncode(Err.Source) & "<p>"
		End Select
			End If
			Response.End
		End If
	End if
End Function





lovduv -> RE: Custom errors and duplicates (2/20/2007 13:10:50)

Ok I moved it from here:
End Select
End If
Response.End
End If

To here:

End If
Response.End
End Select
End If

Now I have no error, but it still goes to my confirmation page? However in my DB I changed the indexed to (yes, no duplicates) so it does not add the duplicate record, but it does not let the user know that their input failed for trying to put in a duplicate, as it goes to my confirmation page?
Do I need someting in the form?




rubyaim -> RE: Custom errors and duplicates (2/20/2007 15:56:04)

Hi, Spooky helped me out with a similar thing last year. I ended up not using the fpdbform.inc as I'm really too chicken to muck with the FP files [&:]

On your form page, that posts to the database, you could try something like:

If err.number <> 0 then
response.write "<p>Error - Whatever</p>"
response.end
Err.Clear
End If


Here is the thread that sorted me out.

Hope this helps.




lovduv -> RE: Custom errors and duplicates (2/20/2007 16:27:52)

Unfortunetly that didn't work anyone else
This is the code for the form page:

<%

On Error Resume Next
Session("FP_OldCodePage") = Session.CodePage
Session("FP_OldLCID") = Session.LCID
Session.CodePage = 65001
Err.Clear

strErrorUrl = ""

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
If Request.Form("VTI-GROUP") = "0" Then
	Err.Clear

	Set fp_conn =  Server.CreateObject("ADODB.Connection")
	FP_DumpError strErrorUrl, "Cannot create connection"

	Set fp_rs = Server.CreateObject("ADODB.Recordset")
	FP_DumpError strErrorUrl, "Cannot create record set"

	fp_conn.Open Application("stuff_ConnectionString")
	FP_DumpError strErrorUrl, "Cannot open database"

	fp_rs.Open "Results", fp_conn, 1, 3, 2 ' adOpenKeySet, adLockOptimistic, adCmdTable
	FP_DumpError strErrorUrl, "Cannot open record set"

	fp_rs.AddNew
	FP_DumpError strErrorUrl, "Cannot add new record set to the database"
	Dim arFormFields0(1)
	Dim arFormDBFields0(1)
	Dim arFormValues0(1)

	arFormFields0(0) = "nickname"
	arFormDBFields0(0) = "nickname"
	arFormValues0(0) = Request("nickname")

	FP_SaveFormFields fp_rs, arFormFields0, arFormDBFields0

	If Request.ServerVariables("REMOTE_HOST") <> "" Then
		FP_SaveFieldToDB fp_rs, Request.ServerVariables("REMOTE_HOST"), "Remote_computer_name"
	End If
	If Request.ServerVariables("HTTP_USER_AGENT") <> "" Then
		FP_SaveFieldToDB fp_rs, Request.ServerVariables("HTTP_USER_AGENT"), "Browser_type"
	End If
	FP_SaveFieldToDB fp_rs, Now, "Timestamp"

	fp_rs.Update
	FP_DumpError strErrorUrl, "Cannot update the database"

	fp_rs.Close
	fp_conn.Close

	Session("FP_SavedFields")=arFormFields0
	Session("FP_SavedValues")=arFormValues0
	Session.CodePage = Session("FP_OldCodePage")
	Session.LCID = Session("FP_OldLCID")
	Response.Redirect "gbthanks.asp"

End If
End If

Session.CodePage = Session("FP_OldCodePage")
Session.LCID = Session("FP_OldLCID")

%>



This is my form:
<form method="post" action="--WEBBOT-SELF--">
<!--webbot bot="SaveDatabase" SuggestedExt="asp" S-DataConnection="nickname" S-RecordSource="Results" U-Database-URL="xxxxxx" U-Confirmation-Url="thanks.asp" S-Builtin-Fields="REMOTE_HOST HTTP_USER_AGENT Timestamp" S-Builtin-DBFields="Remote_computer_name Browser_type Timestamp" S-Form-Fields="nickname" S-Form-DBFields="nickname" U-ASP-Include-Url="_fpclass/fpdbform.inc" startspan --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--#include file="_fpclass/fpdbform.inc"--><!--webbot bot="SaveDatabase" i-checksum="40548" endspan -->
<input name="gamertag" type="text" style="border: .2em #C0C0C0 inset; padding: .3em; width: 194px" /><br/>
<input name="Submit" type="image" src="Images/submitbutt.jpg" alt="Submit" value="submit"/>

</form>






rubyaim -> RE: Custom errors and duplicates (2/20/2007 16:50:16)

You may need to put that page on the Spooky diet - otherwise any changes you make will be overwritten by FrontPage.

This macro is very good, and Spooky has a tutorial for cleaning up a form to database page.

You have a lot more freedom to play when a DRW page has been dieted [:)]




lovduv -> RE: Custom errors and duplicates (2/20/2007 18:17:07)

Duhhhh I have redone this page so many times I forgot to put it on a diet-------
Ok gonna go mess with the error code now that it will save!




lovduv -> RE: Custom errors and duplicates (2/20/2007 18:26:36)

All right all right.....
Thank you Sally!!!!






Page: [1]

Valid CSS!




Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI
0.078125