T
Tim Gaunt
Hi,
I'm hoping that someone will be able to help me with this one, I'm
developing an application which basically inserts a load of data into the
database ready for validation at a later date, I wrote an INSERT statement
that works fine however today I decided that as part of the application
upgrade it should be return the record ID so I wrote the following which I
admit is a little messy at places but it works. However when I added all the
fields it's now returning the error "Arguments are of the wrong type, are
out of acceptable range, or are in conflict with one another". I've been
going through it for a while now any can't work out why its happening, has
anyone got any ideas?
Cheers.
Tim
---------------
CODE
---------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/delayed.asp" -->
<!--#include file="adovbs.inc" -->
<%
If Request.Form("SaveForm")<>"" Then
%>
<%
Function InsertRecord(tblName, ArrFlds, ArrValues)
' This function recieves a tablename and an Array of
' Fieldnames and an Array of field Values.
' It returns the ID of the record that has been inserted.
' Turn error handling on.
On Error Resume Next
dim cnnInsert, rstInsert, thisID
Dim MM_delayed_STRING
MM_delayed_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=d:\Delay\DELAYED.mdb"
' Object instantiation.
Set cnnInsert = Server.CreateObject ("ADODB.Connection")
Set rstInsert = Server.CreateObject ("ADODB.Recordset")
' Open our connection to the database.
cnnInsert.open MM_delayed_STRING
' Open our Table (using the tblName that we passed in).
rstInsert.Open tblName, cnnInsert, adOpenKeyset, adLockOptimistic,
adCmdTable
' Call the AddNew method.
rstInsert.AddNew ArrFlds, ArrValues
' Commit the changes.
rstInsert.Update
' Retrieve the ID.
thisID = rstInsert("CFNID")
If Err.number = 0 Then
' If the Err.number = 0 then close everything and
' return the ID.
rstInsert.Close
Set rstInsert = Nothing
cnnInsert.close
Set cnnInsert = Nothing
InsertRecord = thisID
Else
' Woops, an error occurred, close everything and display an
' error message to the user.
rstInsert.Close
Set rstInsert = Nothing
cnnInsert.close
Set cnnInsert = Nothing
' Call our re-useable Error handler function.
call myErrorHandler()
End If
End Function
Function DField(dtf)
If (Request.Form(dtf)<>"") Then
DField = "#" & Request.Form(dtf) & "#"
Else
DField = "Null"
End If
End Function
Function ChkBox(chk)
If (Request.Form(chk)<>"") Then
ChkBox = Request.Form(chk)
Else
ChkBox = "Null"
End If
End Function
Function TxtField(txt)
TxtField = Replace(Request.Form(txt),"'","''")
End Function
%>
<%
Dim ThisRecordID, arr1, arr2
arr1 = Array("PasID", "Pref_Name", "Pat_Alerts", "Home_Access",
"Home_Hazards", "GP_Email", "Ref_Name", "Ref_Team", "Ref_Add1", "Ref_Add2",
"Ref_Add3", "Ref_Add4", "Ref_AddPC", "Ref_Tel", "Ref_Email", "Ref_Type",
"Ref_Sign", "Ref_SignDate", "RRA", "PACIO", "ONEI", "AOFC", "HAI_Att12m",
"HAI_Date1", "HAI_Reason1", "HAI_Ward1", "HAI_Date2", "HAI_Reason2",
"HAI_Ward2", "HAI_Date3", "HAI_Reason3", "HAI_Ward3", "HAI_Date4",
"HAI_Reason4", "HAI_Ward4", "ANSPSU", "EC_Forename", "EC_Surname",
"EC_Relation", "EC_Add1", "EC_Add2", "EC_Add3", "EC_Add4", "EC_AddPC",
"EC_ConNum", "MC_Forename", "MC_Surname", "MC_Relation", "MC_Add1",
"MC_Add2", "MC_Add3", "MC_Add4", "MC_AddPC", "MC_ConNum", "MC_CAO",
"MC_CACom", "MC_AIType", "MC_AIOther", "MC_AICom", "Pat_User", "CC_AssDur",
"CC_AssPre", "CC_AssReas", "AI_ComSup", "AI_PFL", "AI_Occ", "AI_OccDet",
"AI_PropType", "AI_PropTen", "AI_CliGroup1", "AI_CliGroup2", "AI_PropLive",
"ExDisDate")
arr2 = Array(TxtField("PasID") & ", " & TxtField("Pref_Name") & ", " &
TxtField("Pat_Alerts") & ", " & TxtField("Home_Access") & ", " &
TxtField("Home_Hazards") & ", " & TxtField("GP_Email") & ", " &
TxtField("Ref_Name") & ", " & TxtField("Ref_Team") & ", " &
TxtField("Ref_Add1") & ", " & TxtField("Ref_Add2") & ", " &
TxtField("Ref_Add3") & ", " & TxtField("Ref_Add4") & ", " &
TxtField("Ref_AddPC") & ", " & TxtField("Ref_Tel") & ", " &
TxtField("Ref_Email") & ", " & TxtField("Ref_Type") & ", " &
TxtField("Ref_Sign") & ", " & DField("Ref_SignDate") & ", " &
TxtField("RRA") & ", " & TxtField("PACIO") & ", " & TxtField("ONEI") & ", "
& TxtField("AOFC") & ", " & TxtField("HAI_Att12m") & ", " &
DField("HAI_Date1") & ", " & TxtField("HAI_Reason1") & ", " &
TxtField("HAI_Ward1") & ", " & DField("HAI_Date2") & ", " &
TxtField("HAI_Reason2") & ", " & TxtField("HAI_Ward2") & ", " &
DField("HAI_Date3") & ", " & TxtField("HAI_Reason3") & ", " &
TxtField("HAI_Ward3") & ", " & DField("HAI_Date4") & ", " &
TxtField("HAI_Reason4") & ", " & TxtField("HAI_Ward4") & ", " &
TxtField("ANSPSU") & ", " & TxtField("EC_Forename") & ", " &
TxtField("EC_Surname") & ", " & TxtField("EC_Relation") & ", " &
TxtField("EC_Add1") & ", " & TxtField("EC_Add2") & ", " &
TxtField("EC_Add3") & ", " & TxtField("EC_Add4") & ", " &
TxtField("EC_AddPC") & ", " & TxtField("EC_ConNum") & ", " &
TxtField("MC_Forename") & ", " & TxtField("MC_Surname") & ", " &
TxtField("MC_Relation") & ", " & TxtField("MC_Add1") & ", " &
TxtField("MC_Add2") & ", " & TxtField("MC_Add3") & ", " &
TxtField("MC_Add4") & ", " & TxtField("MC_AddPC") & ", " &
TxtField("MC_ConNum") & ", " & ChkBox("MC_CAO") & ", " &
TxtField("MC_CACom") & ", " & TxtField("MC_AIType") & ", " &
TxtField("MC_AIOther") & ", " & TxtField("MC_AICom") & ", " &
TxtField("Pat_User") & ", " & ChkBox("CC_AssDur") & ", " &
ChkBox("CC_AssPre") & ", " & TxtField("CC_AssReas") & ", " &
ChkBox("AI_ComSup") & ", " & TxtField("AI_PFL") & ", " & TxtField("AI_Occ")
& ", " & TxtField("AI_OccDet") & ", " & TxtField("AI_PropType") & ", " &
TxtField("AI_PropTen") & ", " & TxtField("AI_CliGroup1") & ", " &
TxtField("AI_CliGroup2") & ", " & TxtField("AI_PropLive") & ", " &
DField("ExDisDate"))
ThisRecordID = InsertRecord("ContactAssesment", arr1, arr2)
Response.Write ThisRecordID
%>
<%
End If
%>
<html>
<head>
<title>Assesment Added</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="VBScript" Runat="Server">
Sub myErrorHandler()
If Err.Number <> 0 Then
'Declare CDONTS related variables.
Dim objCDO
Dim strName
Dim strBody
Dim errTitle
'Declare error page related variables.
Dim pageURL
Dim theDate
Dim mailto
Dim mailfrom
Dim backto
backto = Request.ServerVariables ("HTTP_REFERER")
pageURL = Request.ServerVariables ("SCRIPT_NAME")
theDate = Now
mailto = "(e-mail address removed)"
mailfrom = "(e-mail address removed)"
errTitle = "Error reported on page: " & pageURL & " at " & theDate
' Display information to the user informing them that an error has
occurred..
Response.Write "<DIV ALIGN=""center"">" & vbCrLf
Response.Write "<TABLE>" & vbCrLf
Response.Write "<TR BGCOLOR=""Maroon"">" & vbCrLf
Response.Write "<TH COLSPAN=""2"">The following error has
occurred:</TH>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Error number:</TH>" & vbCrLf
Response.Write "<TD>" & Err.Number & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Error description:</TH>" & vbCrLf
Response.Write "<TD>" & Err.Description & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Error source:</TH>" & vbCrLf
Response.Write "<TD>" & Err.Source & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Page:</TH>" & vbCrLf
Response.Write "<TD>" & pageURL & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Date/Time:</TH>" & vbCrLf
Response.Write "<TD>" & Now & "</TD>" & vbCrLf
Response.Write "</TR>" & vbCrLf
Response.Write "</TABLE>" & vbCrLf
Response.Write "<P>An e-mail has been sent to the webmaster"
Response.Write " advising of the error.</P>" & vbCrLf
Response.Write "<P>We apologize for any inconvenience</P>" & vbCrLf
Response.Write "<P><a href=""" & backto & """>" & vbCrLf
Response.Write "Click here to return to the previous page</a></P>" &
vbCrLf
Response.Write "</DIV>" & vbCrLf
' Send a fault report to the administration people (*that's you
* ).
Set objCDO=server.CreateObject("CDONTS.NewMail")
objCDO.To = mailto
objCDO.From = mailfrom
objCDO.Subject = errTitle
objCDO.Importance = 2
' Build a string for the body of the e-mail, detailing information
' about the error information (which we get by interrogating the
properties
' of the Err object and also display information obtained from the
' ServerVariables this will help with debugging.
strBody = "The following error has occurred:" & vbCrLf
strBody = strBody & "Error number: " & Err.Number & vbCrLf
strBody = strBody & "Error description: " & Err.Description & vbCrLf
strBody = strBody & "Error source: " & Err.Source & vbCrLf
strBody = strBody & "========================" & vbCrLf & vbCrLf
'Display the ServerVariables
strBody = strBody & "Information ServerVariables collection:" &
vbCrLf & vbCrLf
For Each strName In Request.ServerVariables
strBody = strBody & strName & " - " &
Request.ServerVariables(strName) & vbCrLf
Next
objCDO.Body = strBody
objCDO.Send 'Send the e-mail
Set objCDO = Nothing 'Tidy up
' End Processing.
Response.End
End If
End Sub
</Script>
</head>
<body>
Record added for <%= Request.Form("PasID") %>
</body>
</html>
I'm hoping that someone will be able to help me with this one, I'm
developing an application which basically inserts a load of data into the
database ready for validation at a later date, I wrote an INSERT statement
that works fine however today I decided that as part of the application
upgrade it should be return the record ID so I wrote the following which I
admit is a little messy at places but it works. However when I added all the
fields it's now returning the error "Arguments are of the wrong type, are
out of acceptable range, or are in conflict with one another". I've been
going through it for a while now any can't work out why its happening, has
anyone got any ideas?
Cheers.
Tim
---------------
CODE
---------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/delayed.asp" -->
<!--#include file="adovbs.inc" -->
<%
If Request.Form("SaveForm")<>"" Then
%>
<%
Function InsertRecord(tblName, ArrFlds, ArrValues)
' This function recieves a tablename and an Array of
' Fieldnames and an Array of field Values.
' It returns the ID of the record that has been inserted.
' Turn error handling on.
On Error Resume Next
dim cnnInsert, rstInsert, thisID
Dim MM_delayed_STRING
MM_delayed_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=d:\Delay\DELAYED.mdb"
' Object instantiation.
Set cnnInsert = Server.CreateObject ("ADODB.Connection")
Set rstInsert = Server.CreateObject ("ADODB.Recordset")
' Open our connection to the database.
cnnInsert.open MM_delayed_STRING
' Open our Table (using the tblName that we passed in).
rstInsert.Open tblName, cnnInsert, adOpenKeyset, adLockOptimistic,
adCmdTable
' Call the AddNew method.
rstInsert.AddNew ArrFlds, ArrValues
' Commit the changes.
rstInsert.Update
' Retrieve the ID.
thisID = rstInsert("CFNID")
If Err.number = 0 Then
' If the Err.number = 0 then close everything and
' return the ID.
rstInsert.Close
Set rstInsert = Nothing
cnnInsert.close
Set cnnInsert = Nothing
InsertRecord = thisID
Else
' Woops, an error occurred, close everything and display an
' error message to the user.
rstInsert.Close
Set rstInsert = Nothing
cnnInsert.close
Set cnnInsert = Nothing
' Call our re-useable Error handler function.
call myErrorHandler()
End If
End Function
Function DField(dtf)
If (Request.Form(dtf)<>"") Then
DField = "#" & Request.Form(dtf) & "#"
Else
DField = "Null"
End If
End Function
Function ChkBox(chk)
If (Request.Form(chk)<>"") Then
ChkBox = Request.Form(chk)
Else
ChkBox = "Null"
End If
End Function
Function TxtField(txt)
TxtField = Replace(Request.Form(txt),"'","''")
End Function
%>
<%
Dim ThisRecordID, arr1, arr2
arr1 = Array("PasID", "Pref_Name", "Pat_Alerts", "Home_Access",
"Home_Hazards", "GP_Email", "Ref_Name", "Ref_Team", "Ref_Add1", "Ref_Add2",
"Ref_Add3", "Ref_Add4", "Ref_AddPC", "Ref_Tel", "Ref_Email", "Ref_Type",
"Ref_Sign", "Ref_SignDate", "RRA", "PACIO", "ONEI", "AOFC", "HAI_Att12m",
"HAI_Date1", "HAI_Reason1", "HAI_Ward1", "HAI_Date2", "HAI_Reason2",
"HAI_Ward2", "HAI_Date3", "HAI_Reason3", "HAI_Ward3", "HAI_Date4",
"HAI_Reason4", "HAI_Ward4", "ANSPSU", "EC_Forename", "EC_Surname",
"EC_Relation", "EC_Add1", "EC_Add2", "EC_Add3", "EC_Add4", "EC_AddPC",
"EC_ConNum", "MC_Forename", "MC_Surname", "MC_Relation", "MC_Add1",
"MC_Add2", "MC_Add3", "MC_Add4", "MC_AddPC", "MC_ConNum", "MC_CAO",
"MC_CACom", "MC_AIType", "MC_AIOther", "MC_AICom", "Pat_User", "CC_AssDur",
"CC_AssPre", "CC_AssReas", "AI_ComSup", "AI_PFL", "AI_Occ", "AI_OccDet",
"AI_PropType", "AI_PropTen", "AI_CliGroup1", "AI_CliGroup2", "AI_PropLive",
"ExDisDate")
arr2 = Array(TxtField("PasID") & ", " & TxtField("Pref_Name") & ", " &
TxtField("Pat_Alerts") & ", " & TxtField("Home_Access") & ", " &
TxtField("Home_Hazards") & ", " & TxtField("GP_Email") & ", " &
TxtField("Ref_Name") & ", " & TxtField("Ref_Team") & ", " &
TxtField("Ref_Add1") & ", " & TxtField("Ref_Add2") & ", " &
TxtField("Ref_Add3") & ", " & TxtField("Ref_Add4") & ", " &
TxtField("Ref_AddPC") & ", " & TxtField("Ref_Tel") & ", " &
TxtField("Ref_Email") & ", " & TxtField("Ref_Type") & ", " &
TxtField("Ref_Sign") & ", " & DField("Ref_SignDate") & ", " &
TxtField("RRA") & ", " & TxtField("PACIO") & ", " & TxtField("ONEI") & ", "
& TxtField("AOFC") & ", " & TxtField("HAI_Att12m") & ", " &
DField("HAI_Date1") & ", " & TxtField("HAI_Reason1") & ", " &
TxtField("HAI_Ward1") & ", " & DField("HAI_Date2") & ", " &
TxtField("HAI_Reason2") & ", " & TxtField("HAI_Ward2") & ", " &
DField("HAI_Date3") & ", " & TxtField("HAI_Reason3") & ", " &
TxtField("HAI_Ward3") & ", " & DField("HAI_Date4") & ", " &
TxtField("HAI_Reason4") & ", " & TxtField("HAI_Ward4") & ", " &
TxtField("ANSPSU") & ", " & TxtField("EC_Forename") & ", " &
TxtField("EC_Surname") & ", " & TxtField("EC_Relation") & ", " &
TxtField("EC_Add1") & ", " & TxtField("EC_Add2") & ", " &
TxtField("EC_Add3") & ", " & TxtField("EC_Add4") & ", " &
TxtField("EC_AddPC") & ", " & TxtField("EC_ConNum") & ", " &
TxtField("MC_Forename") & ", " & TxtField("MC_Surname") & ", " &
TxtField("MC_Relation") & ", " & TxtField("MC_Add1") & ", " &
TxtField("MC_Add2") & ", " & TxtField("MC_Add3") & ", " &
TxtField("MC_Add4") & ", " & TxtField("MC_AddPC") & ", " &
TxtField("MC_ConNum") & ", " & ChkBox("MC_CAO") & ", " &
TxtField("MC_CACom") & ", " & TxtField("MC_AIType") & ", " &
TxtField("MC_AIOther") & ", " & TxtField("MC_AICom") & ", " &
TxtField("Pat_User") & ", " & ChkBox("CC_AssDur") & ", " &
ChkBox("CC_AssPre") & ", " & TxtField("CC_AssReas") & ", " &
ChkBox("AI_ComSup") & ", " & TxtField("AI_PFL") & ", " & TxtField("AI_Occ")
& ", " & TxtField("AI_OccDet") & ", " & TxtField("AI_PropType") & ", " &
TxtField("AI_PropTen") & ", " & TxtField("AI_CliGroup1") & ", " &
TxtField("AI_CliGroup2") & ", " & TxtField("AI_PropLive") & ", " &
DField("ExDisDate"))
ThisRecordID = InsertRecord("ContactAssesment", arr1, arr2)
Response.Write ThisRecordID
%>
<%
End If
%>
<html>
<head>
<title>Assesment Added</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="VBScript" Runat="Server">
Sub myErrorHandler()
If Err.Number <> 0 Then
'Declare CDONTS related variables.
Dim objCDO
Dim strName
Dim strBody
Dim errTitle
'Declare error page related variables.
Dim pageURL
Dim theDate
Dim mailto
Dim mailfrom
Dim backto
backto = Request.ServerVariables ("HTTP_REFERER")
pageURL = Request.ServerVariables ("SCRIPT_NAME")
theDate = Now
mailto = "(e-mail address removed)"
mailfrom = "(e-mail address removed)"
errTitle = "Error reported on page: " & pageURL & " at " & theDate
' Display information to the user informing them that an error has
occurred..
Response.Write "<DIV ALIGN=""center"">" & vbCrLf
Response.Write "<TABLE>" & vbCrLf
Response.Write "<TR BGCOLOR=""Maroon"">" & vbCrLf
Response.Write "<TH COLSPAN=""2"">The following error has
occurred:</TH>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Error number:</TH>" & vbCrLf
Response.Write "<TD>" & Err.Number & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Error description:</TH>" & vbCrLf
Response.Write "<TD>" & Err.Description & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Error source:</TH>" & vbCrLf
Response.Write "<TD>" & Err.Source & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Page:</TH>" & vbCrLf
Response.Write "<TD>" & pageURL & "</TD>" & vbCrLf
Response.Write "</TR><TR>" & vbCrLf
Response.Write "<TH>Date/Time:</TH>" & vbCrLf
Response.Write "<TD>" & Now & "</TD>" & vbCrLf
Response.Write "</TR>" & vbCrLf
Response.Write "</TABLE>" & vbCrLf
Response.Write "<P>An e-mail has been sent to the webmaster"
Response.Write " advising of the error.</P>" & vbCrLf
Response.Write "<P>We apologize for any inconvenience</P>" & vbCrLf
Response.Write "<P><a href=""" & backto & """>" & vbCrLf
Response.Write "Click here to return to the previous page</a></P>" &
vbCrLf
Response.Write "</DIV>" & vbCrLf
' Send a fault report to the administration people (*that's you
* ).
Set objCDO=server.CreateObject("CDONTS.NewMail")
objCDO.To = mailto
objCDO.From = mailfrom
objCDO.Subject = errTitle
objCDO.Importance = 2
' Build a string for the body of the e-mail, detailing information
' about the error information (which we get by interrogating the
properties
' of the Err object and also display information obtained from the
' ServerVariables this will help with debugging.
strBody = "The following error has occurred:" & vbCrLf
strBody = strBody & "Error number: " & Err.Number & vbCrLf
strBody = strBody & "Error description: " & Err.Description & vbCrLf
strBody = strBody & "Error source: " & Err.Source & vbCrLf
strBody = strBody & "========================" & vbCrLf & vbCrLf
'Display the ServerVariables
strBody = strBody & "Information ServerVariables collection:" &
vbCrLf & vbCrLf
For Each strName In Request.ServerVariables
strBody = strBody & strName & " - " &
Request.ServerVariables(strName) & vbCrLf
Next
objCDO.Body = strBody
objCDO.Send 'Send the e-mail
Set objCDO = Nothing 'Tidy up
' End Processing.
Response.End
End If
End Sub
</Script>
</head>
<body>
Record added for <%= Request.Form("PasID") %>
</body>
</html>