📄 delete-script.asp
字号:
<!--##session aspheader##-->
<%
Response.Buffer = True
<!--## If PROJ.OptionExplicit Then ##-->
Dim sKey, bSingleDelete, arRecKey, sRecKey
Dim sDbWhere
Dim nRecCount, sItemRowClass
<!--## End If ##-->
' Load Key Parameters
sKey = "": bSingleDelete = True
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldIsPrimaryKey Then
sFldVar = FIELD.FldVar
sFldVar2 = Mid(sFldVar, 3)
bNumericKey = (ewGetFieldType(FIELD.FldType) = 1)
##-->
<!--##=sFldVar##--> = Request.QueryString("<!--##=sFldVar2##-->")
If <!--##=sFldVar##--> <> "" Then
<!--## If bNumericKey Then ##-->
If Not IsNumeric(<!--##=sFldVar##-->) Then
Response.Redirect "<!--##=fn_list##-->" ' prevent sql injection
End If
<!--## End If ##-->
If sKey <> "" Then sKey = sKey & ","
sKey = sKey & <!--##=sFldVar##-->
Else
bSingleDelete = False
End If
<!--##
End If
Next
##-->
If Not bSingleDelete Then
sKey = Request.Form("key_d")
End If
If sKey = "" Or IsNull(sKey) Then Response.Redirect "<!--##=fn_list##-->"
arRecKey = Split(sKey&"", ",")
i = 0
Do While i <= UBound(arRecKey)
sDbWhere = sDbWhere & "("
<!--##
iKeyIdx = 0
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldIsPrimaryKey Then
sFldName = FIELD.FldName
sFldQuoteS = FIELD.FldQuoteS
sFldQuoteE = FIELD.FldQuoteE
sFldVar = FIELD.FldVar
sFldVar2 = Mid(sFldVar, 3)
bNumericKey = (ewGetFieldType(FIELD.FldType) = 1)
##-->
' Remove spaces
sRecKey = Trim(arRecKey(i+<!--##=iKeyIdx##-->))
<!--## If bNumericKey Then ##-->
If Not IsNumeric(sRecKey) Then
Response.Redirect "<!--##=fn_list##-->" ' prevent sql injection
End If
<!--## End If ##-->
' Build the SQL
sDbWhere = sDbWhere & "<!--##=Quote(DB.DBQuoteS & sFldName & DB.DBQuoteE)##-->=<!--##=sFldQuoteS##-->" & AdjustSql(sRecKey) & "<!--##=sFldQuoteE##--> AND "
<!--##
iKeyIdx = iKeyIdx + 1
End If
Next
##-->
If Right(sDbWhere, 5) = " AND " Then sDbWhere = Left(sDbWhere, Len(sDbWhere)-5) & ") OR "
i = i + <!--##=iKeyIdx##-->
Loop
If Right(sDbWhere, 4) = " OR " Then sDbWhere = Left(sDbWhere, Len(sDbWhere)-4)
' Get action
sAction = Request.Form("a_delete")
If sAction = "" Or IsNull(sAction) Then
<!--## If bInlineDelete Then ##-->
sAction = "D" ' Delete record directly
<!--## Else ##-->
sAction = "I" ' Display record
<!--## End If ##-->
End If
' Open connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
<!--## If InStr(1,DB.DBDBMSName,"ORA",vbTextCompare) > 0 And TABLE.TblBlob Then ##-->
' For Oracle database, use connection string for proper handling of BLOB field
xDb_Conn_Str = xDb_Conn_Str_Ora_Blob
<!--## End If ##-->
conn.Open xDb_Conn_Str
Select Case sAction
Case "I": ' Display
If LoadRecordCount(sDbWhere) <= 0 Then
conn.Close ' Close Connection
Set conn = Nothing
Response.Clear
Response.Redirect "<!--##=fn_list##-->"
End If
Case "D": ' Delete
If DeleteData(sDbWhere) Then
Session(ewSessionMessage) = "<!--##@DeleteSuccess##-->"
conn.Close ' Close Connection
Set conn = Nothing
Response.Clear
Response.Redirect "<!--##=fn_list##-->"
End If
End Select
%>
<!--##/session##-->
<!--##session htmtable##-->
<p><span class="aspmaker"><!--##@Delete##--> <!--##$TABLE.TblType##-->: <!--##=TABLE.TblCaption##--><br><br><a href="<!--##=fn_list##-->"><!--##@BackToList##--></a></span></p>
<%
If Session(ewSessionMessage) <> "" Then
%>
<p><span<!--##=ewCSSMsg##-->><%= Session(ewSessionMessage) %></span></p>
<%
Session(ewSessionMessage) = "" ' Clear message
End If
%>
<form action="<!--##=fn_delete##-->" method="post">
<p>
<input type="hidden" name="a_delete" value="D">
<input type="hidden" name="key_d" value="<%= sKey %>">
<table<!--##=ewCSSTableClass##-->>
<tr<!--##=ewCSSTableHeaderClass##-->>
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldGenerate And FIELD.FldList Then
##-->
<td valign="top"><span<!--##=ewCSSCaptionSpanClass##-->><!--##=FIELD.FldCaption##--></span></td>
<!--##
End If
Next
##-->
</tr>
<%
nRecCount = 0
i = 0
Do While i <= UBound(arRecKey)
nRecCount = nRecCount + 1
' Set row color
sItemRowClass = <!--##=DoubleQuote(ewCSSTableRowClass, 1)##-->
<!--##If PROJ.TblAltColor Then##-->
' Display alternate color for rows
If nRecCount Mod 2 <> 0 Then
sItemRowClass = <!--##=DoubleQuote(ewCSSTableAltRowClass, 1)##-->
End If
<!--##End If##-->
<!--##
iKeyIdx = 0
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldIsPrimaryKey Then
sFldName = FIELD.FldName
sFldQuoteS = FIELD.FldQuoteS
sFldQuoteE = FIELD.FldQuoteE
sFldVar = FIELD.FldVar
sFldVar2 = Mid(sFldVar, 3)
##-->
sRecKey = Trim(arRecKey(i+<!--##=iKeyIdx##-->))
<!--##=sFldVar##--> = sRecKey
<!--##
iKeyIdx = iKeyIdx + 1
End If
Next
##-->
If LoadData() Then
%>
<tr<%=sItemRowClass%>>
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldGenerate And FIELD.FldList Then
##-->
<td><span<!--##=ewCSSItemSpanClass##-->><!--##=FieldView##--></span></td>
<!--##
End If
Next
##-->
</tr>
<%
End If
i = i + <!--##=iKeyIdx##-->
Loop
%>
</table>
<p>
<input type="submit" name="Action" value="<!--##@DeleteBtn##-->">
</form>
<%
conn.Close ' Close Connection
Set conn = Nothing
%>
<!--##/session##-->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -