⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delete-script.asp

📁 AspMaker调用的自定义包
💻 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 + -