%@ LANGUAGE="VBScript" %>
<%
'-------------------------------------------------------------------------------
' Microsoft Visual InterDev - Data Form Wizard
'
' Action Page
'
' (c) 1997 Microsoft Corporation. All Rights Reserved.
'
' This file is an Active Server Page that contains the server script that
' handles filter, update, insert, and delete commands from the form view of a
' Data Form. It can also echo back confirmation of database operations and
' report errors. Some commands are passed through and redirected. Microsoft
' Internet Information Server 3.0 is required.
'
'-------------------------------------------------------------------------------
Dim strDFName
Dim strErrorAdditionalInfo
strDFName = "rs<%#TableShortName#%>"
%>
<%#ForeignKeyRS#%>
<%
If Not IsEmpty(Request("DataAction")) Then
strDataAction = Trim(Request("DataAction"))
Else
Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit"
End If
'------------------
' Action handler
'------------------
Select Case strDataAction
Case "List View"
Response.Redirect "<%#DataListFileName#%>"
Case "Cancel"
Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit"
Case "Filter"
On Error Resume Next
Session("rs<%#TableShortName#%>_Filter") = ""
Session("rs<%#TableShortName#%>_FilterDisplay") = ""
Session("rs<%#TableShortName#%>_Recordset").Filter = ""
Response.Redirect "<%#DataFormFileName#%>?FormMode=" & strDataAction
Case "New"
On Error Resume Next
Session("rs<%#TableShortName#%>_Filter") = ""
Session("rs<%#TableShortName#%>_FilterDisplay") = ""
Session("rs<%#TableShortName#%>_Recordset").Filter = ""
Response.Redirect "<%#DataFormFileName#%>?FormMode=" & strDataAction
Case "Find"
Session("rs<%#TableShortName#%>_PageSize") = 1 'So we don't do standard page conversion
Session("rs<%#TableShortName#%>_AbsolutePage") = CLng(Request("Bookmark"))
Response.Redirect "<%#DataFormFileName#%>"
Case "All Records"
On Error Resume Next
Session("rs<%#TableShortName#%>_Filter") = ""
Session("rs<%#TableShortName#%>_FilterDisplay") = ""
Session("rs<%#TableShortName#%>_Recordset").Filter = ""
Session("rs<%#TableShortName#%>_AbsolutePage") = 1
Response.Redirect "<%#DataFormFileName#%>"
Case "Apply"
On Error Resume Next
' Make sure we exit and re-process the form if session has timed out
If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then
Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit"
End If
Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset")
strWhere = ""
strWhereDisplay = ""
<%#BuildFilterHTML#%>
' Filter the recordset
If strWhere <> "" Then
Session("rs<%#TableShortName#%>_Filter") = strWhere
Session("rs<%#TableShortName#%>_FilterDisplay") = strWhereDisplay
Session("rs<%#TableShortName#%>_AbsolutePage") = 1
Else
Session("rs<%#TableShortName#%>_Filter") = ""
Session("rs<%#TableShortName#%>_FilterDisplay") = ""
End If
' Jump back to the form
If Err.Number = 0 Then Response.Redirect "<%#DataFormFileName#%>"
Case "Insert"
On Error Resume Next
' Make sure we exit and re-process the form if session has timed out
If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then
Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit"
End If
Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset")
rs<%#TableShortName#%>.AddNew
Do
<%#RecordsetFieldsInsert#%>
rs<%#TableShortName#%>.Update
Exit Do
Loop
If Err.Number <> 0 Then
If rs<%#TableShortName#%>.EditMode Then rs<%#TableShortName#%>.CancelUpdate
Else
If IsEmpty(Session("rs<%#TableShortName#%>_AbsolutePage")) Or Session("rs<%#TableShortName#%>_AbsolutePage") = 0 Then
Session("rs<%#TableShortName#%>_AbsolutePage") = 1
End If
' Requery static cursor so inserted record is visible
If rs<%#TableShortName#%>.CursorType = adOpenStatic Then rs<%#TableShortName#%>.Requery
Session("rs<%#TableShortName#%>_Status") = "Record has been inserted"
End If
Case "Update"
On Error Resume Next
' Make sure we exit and re-process the form if session has timed out
If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then
Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit"
End If
Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset")
If rs<%#TableShortName#%>.EOF and rs<%#TableShortName#%>.BOF Then Response.Redirect "<%#DataFormFileName#%>"
Do
<%#RecordsetFieldsUpdate#%>
If rs<%#TableShortName#%>.EditMode Then rs<%#TableShortName#%>.Update
Exit Do
Loop
If Err.Number <> 0 Then
If rs<%#TableShortName#%>.EditMode Then rs<%#TableShortName#%>.CancelUpdate
End If
Case "Delete"
On Error Resume Next
' Make sure we exit and re-process the form if session has timed out
If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then
Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit"
End If
Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset")
If rs<%#TableShortName#%>.EOF and rs<%#TableShortName#%>.BOF Then Response.Redirect "<%#DataFormFileName#%>"
rs<%#TableShortName#%>.Delete
' Proceed if no error
If Err.Number = 0 Then
' Requery static cursor so deleted record is removed
If rs<%#TableShortName#%>.CursorType = adOpenStatic Then rs<%#TableShortName#%>.Requery
' Move off deleted rec
rs<%#TableShortName#%>.MoveNext
' If at EOF then jump back one and adjust AbsolutePage
If rs<%#TableShortName#%>.EOF Then
Session("rs<%#TableShortName#%>_AbsolutePage") = Session("rs<%#TableShortName#%>_AbsolutePage") - 1
If rs<%#TableShortName#%>.BOF And rs<%#TableShortName#%>.EOF Then rs<%#TableShortName#%>.Requery
End If
End If
End Select
%>
<%
'
If Err Then %>
<%
' Add additional error information to clarify specific errors
Select Case Err.Number
Case -2147467259
strErrorAdditionalInfo = " This may be caused by an attempt to update a non-primary table in a view."
Case Else
strErrorAdditionalInfo = ""
End Select
%>
<%#FormName#%> Form
Message:
<%
Select Case strDataAction
Case "Insert"
Response.Write("Unable to insert the record into <%#TableName#%>.")
Case "Update"
Response.Write("Unable to post the updated record to <%#TableName#%>.")
Case "Delete"
Response.Write("Unable to delete the record from <%#TableName#%>.")
End Select
%>