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

📄 share-script.asp

📁 AspMaker调用的自定义包
💻 ASP
📖 第 1 页 / 共 3 页
字号:
	table = "<!--##=TABLE.TblName##-->"

	' Get key value
	Dim sKey
	sKey = ""
	<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		sFldName = FIELD.FldName
		sFldVar = FIELD.FldVar
		If FIELD.FldIsPrimaryKey Then
	##-->
	If sKey <> "" Then sKey = sKey & ","
	sKey = sKey & rsnew.Fields("<!--##=sFldName##-->")
	<!--##
		End If
		If FIELD.FldAutoIncrement Then
	##-->
	<!--##=sFldVar##--> = rsnew.Fields("<!--##=sFldName##-->")
	<!--##
		End If
	Next
	##-->

<!--## If TABLE.TblAuditTrail Then ##-->
	' Write Audit Trail
	Dim filePfx, curDate, curTime, id, user, action, field, keyvalue, oldvalue, newvalue
	Dim i
	filePfx = "event"
	curDate = ewZeroPad(Year(Date), 4) & "/" & ewZeroPad(Month(Date), 2) & "/" & ewZeroPad(Day(Date), 2)
	curTime = ewZeroPad(Hour(Time), 2) & ":" & ewZeroPad(Minute(Time), 2) & ":" & ewZeroPad(Second(Time), 2)
	id = Request.ServerVariables("SCRIPT_NAME")
	user = CurrentUserID
	action = "A"

	<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldType <> 205 Then
	##-->

	'<!--##= FIELD.FldName##--> Field
	field = "<!--##=FIELD.FldName##-->"
	keyvalue = sKey: oldvalue = ""
	<!--##
			If FIELD.FldType = 201 Or FIELD.FldType = 203 Then ' Memo Field
	##-->
	newvalue = "<MEMO>"
	<!--##
			Else
	##-->
	newvalue = rsnew.Fields(field).Value
	<!--##
			End If
	##-->
	Call ewWriteAuditTrail(filePfx, curDate, curTime, id, user, action, table, field, keyvalue, oldvalue, newvalue)
	<!--##
		End If
	Next
	##-->
<!--## End If ##-->

<!--## If TABLE.TblSendMailOnAdd Then ##-->
	' Send Email
	Dim sSenderEmail, sReceiverEmail
	sSenderEmail = "<!--##=PROJ.SecSenderEmail##-->" ' sender email
	sReceiverEmail = "<!--##=PROJ.RecipientEmail##-->" ' receiver email
	If sSenderEmail <> "" And sReceiverEmail <> "" Then
		Call LoadEmail("notify.txt")
		sEmailFrom = Replace(sEmailFrom, "<!--$From-->", sSenderEmail) ' Replace Sender
		sEmailTo = Replace(sEmailTo, "<!--$To-->", sReceiverEmail) ' Replace Receiver
		sEmailSubject = Replace(sEmailSubject, "<!--$Subject-->", table & " record inserted") ' Replace Subject
		sEmailContent = Replace(sEmailContent, "<!--table-->", table)
		sEmailContent = Replace(sEmailContent, "<!--key-->", sKey)
		sEmailContent = Replace(sEmailContent, "<!--action-->", "Inserted")
		Call Send_Email(sEmailFrom, sEmailTo, sEmailCc, sEmailBcc, sEmailSubject, sEmailContent, sEmailFormat)
	End If
<!--## End If ##-->

End Sub
%>
<!--## End If ##-->
<!--## If CTRL.CtrlID = "delete" Then ##-->
<%
'-------------------------------------------------------------------------------
' Function LoadRecordCount
' - Load Record Count based on input sql criteria sqlKey

Function LoadRecordCount(sqlKey)

	On Error Resume Next
	Dim rs, sSql, sFilter

	sFilter = sqlKey

<!--##
If bTableHasUserIDFld Or bMasterTableHasUserIDFld Then
##-->
	If CurrentUserID <> "-1" And CurrentUserID <> "" Then ' Non system admin
<!--##
	If bTableHasUserIDFld Then
		If bParentUserID Then
##-->
		sParentUserIDQuery = GetParentUserIDQuery(CurrentUserID)
		If sParentUserIDQuery <> "" Then
'***			sFilter = sFilter & " AND ((" & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID)) & ") OR (" & sParentUserIDQuery & "))"
			sFilter = sFilter & " AND ((" & ewSqlUserIDFilter & ") OR (" & sParentUserIDQuery & "))"
		Else
'***			sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
			sFilter = sFilter & " AND " & ewSqlUserIDFilter
		End If
		sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
		sFilter = Replace(sFilter, "#UserID", AdjustSql(CurrentUserID))
	<!--## Else ##-->
'***		sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
		sFilter = sFilter & " AND " & ewSqlUserIDFilter
		sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
		sFilter = Replace(sFilter, "#UserID", AdjustSql(CurrentUserID))
<!--##
		End If
	End If
	If bMasterTableHasUserIDFld Then
##-->
		sMasterUserIDQuery = GetMasterUserIDQuery(CurrentUserID)
		If sMasterUserIDQuery <> "" Then
	<!--##
	If Not bUseSubQuery Then
	##-->
			sTmpQuery = sMasterUserIDQuery
	<!--##
		For i = 0 to UBound(arMasterFldNames)
	##-->
			sTmpQuery = Replace(sTmpQuery, "#Key<!--##=i##-->", "<!--##=arDetailFldNames(i)##-->")
	<!--##
		Next
	##-->
			If sFilter <> "" Then sFilter = sFilter & " AND "
			sFilter = sFilter & sTmpQuery
	<!--##
	Else
		For i = 0 to UBound(arMasterFldNames)
	##-->
			If sFilter <> "" Then sFilter = sFilter & " AND "
			sTmpQuery = sMasterUserIDQuery
			sTmpQuery = Replace(sTmpQuery, "#MasterKey", "<!--##=arMasterFldNames(i)##-->")
			sTmpQuery = Replace(sTmpQuery, "#Key", "<!--##=arDetailFldNames(i)##-->")
			sFilter = sFilter & sTmpQuery
	<!--##
		Next
	End If
	##-->
		End If
<!--##
	End If
##-->
	End If
<!--##
End If
##-->

	sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "")

	Set rs = Server.CreateObject("ADODB.Recordset")
	rs.CursorLocation = <!--##=ewCursorLocation##-->
	rs.Open sSql, conn, 1, 2
	LoadRecordCount = rs.RecordCount
	rs.Close
	Set rs = Nothing
	
	If Err.Number <> 0 Then
		Session(ewSessionMessage) = Err.Description
	End If

End Function
%>
<%
'-------------------------------------------------------------------------------
' Function DeleteData
' - Delete Records based on input sql criteria sqlKey

Function DeleteData(sqlKey)

	On Error Resume Next
	Dim rs, sSql, sFilter
	Dim rsold

	sFilter = sqlKey

<!--##
If bTableHasUserIDFld Or bMasterTableHasUserIDFld Then
##-->
	If CurrentUserID <> "-1" And CurrentUserID <> "" Then ' Non system admin
<!--##
	If bTableHasUserIDFld Then
		If bParentUserID Then
##-->
		sParentUserIDQuery = GetParentUserIDQuery(CurrentUserID)
		If sParentUserIDQuery <> "" Then
'***			sFilter = sFilter & " AND ((" & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID)) & ") OR (" & sParentUserIDQuery & "))"
			sFilter = sFilter & " AND ((" & ewSqlUserIDFilter & ") OR (" & sParentUserIDQuery & "))"
		Else
'***			sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
			sFilter = sFilter & " AND " & ewSqlUserIDFilter
		End If
		sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
		sFilter = Replace(sFilter, "#UserID", AdjustSql(CurrentUserID))
	<!--## Else ##-->
'***		sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
		sFilter = sFilter & " AND " & ewSqlUserIDFilter
		sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
		sFilter = Replace(sFilter, "#UserID", AdjustSql(CurrentUserID))
<!--##
		End If
	End If
	If bMasterTableHasUserIDFld Then
##-->
		sMasterUserIDQuery = GetMasterUserIDQuery(CurrentUserID)
		If sMasterUserIDQuery <> "" Then
	<!--##
	If Not bUseSubQuery Then
	##-->
			sTmpQuery = sMasterUserIDQuery
	<!--##
		For i = 0 to UBound(arMasterFldNames)
	##-->
			sTmpQuery = Replace(sTmpQuery, "#Key<!--##=i##-->", "<!--##=arDetailFldNames(i)##-->")
	<!--##
		Next
	##-->
			If sFilter <> "" Then sFilter = sFilter & " AND "
			sFilter = sFilter & sTmpQuery
	<!--##
	Else
		For i = 0 to UBound(arMasterFldNames)
	##-->
			If sFilter <> "" Then sFilter = sFilter & " AND "
			sTmpQuery = sMasterUserIDQuery
			sTmpQuery = Replace(sTmpQuery, "#MasterKey", "<!--##=arMasterFldNames(i)##-->")
			sTmpQuery = Replace(sTmpQuery, "#Key", "<!--##=arDetailFldNames(i)##-->")
			sFilter = sFilter & sTmpQuery
	<!--##
		Next
	End If
	##-->
		End If
<!--##
	End If
##-->
	End If
<!--##
End If
##-->

	sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "")

	Set rs = Server.CreateObject("ADODB.Recordset")
	rs.CursorLocation = <!--##=ewCursorLocation##-->
	rs.Open sSql, conn, 1, 2
	If Err.Number <> 0 Then
		Session(ewSessionMessage) = Err.Description
		rs.Close
		Set rs = Nothing
		DeleteData = False
		Exit Function
	End If

	' Clone old rs object
	Set rsold = CloneRs(rs)

	' Call recordset deleting event
	DeleteData = Recordset_Deleting(rs)

	If DeleteData Then

		Do While Not rs.Eof
		<!--##
		For i = 1 to TABLE.Fields.Count
			SET FIELD = TABLE.Fields.Seq(i)
			If FIELD.FldType <> 205 And FIELD.FldHtmlTag="FILE" Then
				If PROJ.DeleteUploadedFile Then
					If FIELD.FldUploadPath <> "" Then
						sFldUploadPath = DoubleQuote(FIELD.FldUploadPath, 1)
					Else
						sFldUploadPath = "EW_UploadDestPath"
					End If
		##-->
			ewDeleteFile ewUploadPathEx(True, <!--##=sFldUploadPath##-->) & rs("<!--##=FIELD.FldName##-->")
		<!--##
				End If
			End If
		Next

		If bDynamicUserLevel And TABLE.TblName = DB.UserLevelTbl Then
			Set FIELD = TABLE.Fields(DB.UserLevelIdFld)
			sUserLevelIDFldVar = FIELD.FldVar
		##-->
			<!--##=sUserLevelIDFldVar##--> = rs("<!--##=DB.UserLevelIdFld##-->") ' Get user level id
		<!--##
		End If
		##-->
			rs.Delete
			If Err.Number <> 0 Then
				Session(ewSessionMessage) = Err.Description
				DeleteData = False
				Exit Do
			End If
		<!--##
		If bDynamicUserLevel And TABLE.TblName = DB.UserLevelTbl Then
			Set FIELD = TABLE.Fields(DB.UserLevelIdFld)
			sUserLevelIDFldVar = FIELD.FldVar
		##-->
			If Not IsNull(<!--##=sUserLevelIDFldVar##-->) Then
				conn.Execute("DELETE FROM " & ewUsrLvlPrivTbl & " WHERE " & ewUsrLvlPrivUsrLvlIdFld & " = " & <!--##=sUserLevelIDFldVar##-->) ' Delete user rights as well
			End If
		<!--##
		End If
		##-->

			rs.MoveNext
		Loop

	End If

	rs.Close
	Set rs = Nothing

	' Call recordset deleted event
	If DeleteData Then
		Call Recordset_Deleted(rsold)
	End If
	rsold.Close
	Set rsold = Nothing

End Function

'-------------------------------------------------------------------------------
' Recordset deleting event

Function Recordset_Deleting(rsold)
	On Error Resume Next
	' Please enter your customized codes here
	Recordset_Deleting = True
End Function

'-------------------------------------------------------------------------------
' Recordset deleted event

Sub Recordset_Deleted(rsold)
	On Error Resume Next
	Dim table
	table = "<!--##=TABLE.TblName##-->"

<!--## If TABLE.TblAuditTrail Or TABLE.TblSendMailOnDelete Then ##-->
	' Get key value
	Dim sKey
	sKey = ""
	<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldIsPrimaryKey Then
			sFldName = FIELD.FldName
	##-->
	If sKey <> "" Then sKey = sKey & ","
	sKey = sKey & rsold.Fields("<!--##=sFldName##-->")
	<!--##
		End If
	Next
	##-->
<!--## End If ##-->

<!--## If TABLE.TblAuditTrail Then ##-->
	' Write Audit Trail
	Dim filePfx, curDate, curTime, id, user, action, field, keyvalue, oldvalue, newvalue
	Dim i
	filePfx = "event"
	curDate = ewZeroPad(Year(Date), 4) & "/" & ewZeroPad(Month(Date), 2) & "/" & ewZeroPad(Day(Date), 2)
	curTime = ewZeroPad(Hour(Time), 2) & ":" & ewZeroPad(Minute(Time), 2) & ":" & ewZeroPad(Second(Time), 2)
	id = Request.ServerVariables("SCRIPT_NAME")
	user = CurrentUserID
	action = "D"

	rsold.MoveFirst
	Do While Not rsold.Eof

		<!--##
		For i = 1 to TABLE.Fields.Count
			Set FIELD = TABLE.Fields.Seq(i)
			If FIELD.FldType <> 205 Then
		##-->

		'<!--##= FIELD.FldName##--> Field
		field = "<!--##=FIELD.FldName##-->"
		keyvalue = sKey: newvalue = ""
		If rsold.Fields(field).Type = 201 Or rsold.Fields(field).Type = 203 Then ' Memo Field
			oldvalue = "<MEMO>"
		Else
			oldvalue = rsold.Fields(field).Value
		End If
		Call ewWriteAuditTrail(filePfx, curDate, curTime, id, user, action, table, field, keyvalue, oldvalue, newvalue)

		<!--##
			End If
		Next
		##-->

		rsold.MoveNext
	Loop
<!--## End If ##-->

<!--## If TABLE.TblSendMailOnDelete Then ##-->
	' Send Email
	Dim sSenderEmail, sReceiverEmail
	sSenderEmail = "<!--##=PROJ.SecSenderEmail##-->" ' sender email
	sReceiverEmail = "<!--##=PROJ.RecipientEmail##-->" ' receiver email
	rsold.MoveFirst
	Do While Not rsold.Eof
		If sSenderEmail <> "" And sReceiverEmail <> "" Then
			Call LoadEmail("notify.txt")
			sEmailFrom = Replace(sEmailFrom, "<!--$From-->", sSenderEmail) ' Replace Sender
			sEmailTo = Replace(sEmailTo, "<!--$To-->", sReceiverEmail) ' Replace Receiver
			sEmailSubject = Replace(sEmailSubject, "<!--$Subject-->", table & " record deleted") ' Replace Subject
			sEmailContent = Replace(sEmailContent, "<!--table-->", table)
			sEmailContent = Replace(sEmailContent, "<!--key-->", sKey)
			sEmailContent = Replace(sEmailContent, "<!--action-->", "Deleted")
			Call Send_Email(sEmailFrom, sEmailTo, sEmailCc, sEmailBcc, sEmailSubject, sEmailContent, sEmailFormat)
		End If

		rsold.MoveNext
	Loop
<!--## End If ##-->

End Sub
%>
<!--## End If ##-->
<!--##/session##-->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -