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

📄 share-script.asp

📁 AspMaker调用的自定义包
💻 ASP
📖 第 1 页 / 共 3 页
字号:
<!--##session aspfunction##-->
<!--## If ewCond_HasFileField() And ((CTRL.CtrlID = "list" And TABLE.TblInlineEdit) Or CTRL.CtrlID = "add" Or CTRL.CtrlID = "edit" Or CTRL.CtrlID = "register") Then ' Blob Field Exists ##-->
<%
'-------------------------------------------------------------------------------
' Function RequestBlobData
' - Handle mult-part data (for file upload)
' - Variables setup: sAction, field variables, EW_Max_File_Size

Function RequestBlobData()

	Dim rawData, separator, lenSeparator, dict
	Dim currentPos, inStrByte, tempValue, mValue, value
	Dim intDict, begPos, endPos
	Dim nameN, isValid, nameValue, midValue
	Dim rawStream

	If Request.TotalBytes > 0 Then

		Set rawStream = Server.CreateObject("ADODB.Stream")
		rawStream.Type = 1 'adTypeBinary
		rawStream.Mode = 3 'adModeReadWrite
		rawStream.Open
		rawStream.Write Request.BinaryRead(Request.TotalBytes)
		rawStream.Position = 0
		rawData = rawStream.Read

		separator = MidB(rawData, 1, InStrB(1, rawData, ChrB(13)) - 1)
		lenSeparator = LenB(separator)

		Set dict = Server.CreateObject("Scripting.Dictionary")
		currentPos = 1
		inStrByte = 1
		tempValue = ""

		While inStrByte > 0
			inStrByte = InStrB(currentPos, rawData, separator)
			mValue = inStrByte - currentPos

			If mValue > 1 Then
				value = MidB(rawData, currentPos, mValue)

				Set intDict = Server.CreateObject("Scripting.Dictionary")

				begPos = 1 + InStrB(1, value, ChrB(34))
				endPos = InStrB(begPos + 1, value, ChrB(34))

				nameN = MidB(value, begPos, endPos - begPos)

				isValid = True

				If InStrB(1, value, stringToByte("Content-Type")) > 1 Then

					begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
					endPos = InStrB(begPos + 1, value, ChrB(34))

					If endPos > 0 Then
						intDict.Add "FileName", ConvertToText(rawStream, currentPos + begPos - 2, endPos - begPos, MidB(value, begPos, endPos - begPos))
						begPos = 14 + InStrB(endPos + 1, value, StringToByte("Content-Type:"))
						endPos = InStrB(begPos, value, ChrB(13))
						intDict.Add "ContentType", ConvertToText(rawStream, currentPos + begPos - 2, endPos - begPos, MidB(value, begPos, endPos - begPos))
						begPos = endPos + 4
						endPos = LenB(value)
						nameValue = MidB(value, begPos, ((endPos - begPos) - 1))
					Else
						endPos = begPos + 1
						isValid = False
					End If

				Else
					nameValue = ConvertToText(rawStream, currentPos + endPos + 3, mValue - endPos - 4, MidB(value, endPos + 5))
				End If

				If isValid = True Then
					If dict.Exists(byteToString(nameN)) Then
						Set intDict = dict.Item(byteToString(nameN))
						If Right(intDict.Item("Value"), 2) = vbCrLf Then
							intDict.Item("Value") = Left(intDict.Item("Value"), Len(intDict.Item("Value"))-2)
						End If
						intDict.Item("Value") = intDict.Item("Value") & ", " & nameValue
					Else
						intDict.Add "Value", nameValue
						intDict.Add "Name", nameN
						dict.Add byteToString(nameN), intDict
					End If
				End If

			End If

			currentPos = lenSeparator + inStrByte
		Wend
		rawStream.Close
		Set rawStream = Nothing

		' Get action
<!--## If CTRL.CtrlID = "list" Then ##-->
		sAction = getValue(dict, "a_list")
<!--## ElseIf CTRL.CtrlID = "add" Then ##-->
		sAction = getValue(dict, "a_add")
<!--## ElseIf CTRL.CtrlID = "edit" Then ##-->
		sAction = getValue(dict, "a_edit")
<!--## ElseIf CTRL.CtrlID = "register" Then ##-->
		sAction = getValue(dict, "a_register")
<!--## End If ##-->

		EW_Max_File_Size = getValue(dict, "EW_Max_File_Size")

<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldHtmlTag = "FILE" Then ' Blob Field
##-->
		fs_<!--##=FIELD.FldVar##--> = getFileSize(dict, "<!--##=FIELD.FldVar##-->")
		' Check the file size
		If fs_<!--##=FIELD.FldVar##--> > 0 And CLng(EW_Max_File_Size) > 0 Then
			If fs_<!--##=FIELD.FldVar##--> > CLng(EW_Max_File_Size) Then
				Response.Write Replace("<!--##@MaxFileSize##-->", "%s", EW_Max_File_Size)
				Response.End
			End If
		End If
		fn_<!--##=FIELD.FldVar##--> = getFileName(dict, "<!--##=FIELD.FldVar##-->")
		' Check the file type
		If Not ewUploadAllowedFileExt(fn_<!--##=FIELD.FldVar##-->) Then
			Response.Write "<!--##@WrongFileType##-->"
			Response.End
		End If
		ct_<!--##=FIELD.FldVar##--> = getFileContentType(dict, "<!--##=FIELD.FldVar##-->")
		<!--##=FIELD.FldVar##--> = getFileData(dict, "<!--##=FIELD.FldVar##-->")
		Call ewGetImageDimension(<!--##=FIELD.FldVar##-->, wd_<!--##=FIELD.FldVar##-->, ht_<!--##=FIELD.FldVar##-->)
		If wd_<!--##=FIELD.FldVar##--> < 0 Or ht_<!--##=FIELD.FldVar##--> < 0 Then
			wd_<!--##=FIELD.FldVar##--> = getValue(dict, "wd_<!--##=FIELD.FldVar##-->")
			ht_<!--##=FIELD.FldVar##--> = getValue(dict, "ht_<!--##=FIELD.FldVar##-->")
		End If
		a_<!--##=FIELD.FldVar##--> = getValue(dict, "a_<!--##=FIELD.FldVar##-->")
<!--##
		Else ' Non-Blob Field
##-->
		<!--##=FIELD.FldVar##--> = getValue(dict, "<!--##=FIELD.FldVar##-->")
<!--##
		End If
	Next
##-->

		If IsObject(intDict) Then
			intDict.RemoveAll
			Set intDict = Nothing
		End If

		dict.RemoveAll
		Set dict = Nothing

		RequestBlobData = True

	Else

		RequestBlobData = False

	End If

End Function
%>
<!--## End If ##-->
<!--## If ((CTRL.CtrlID = "list" And TABLE.TblInlineEdit) Or CTRL.CtrlID = "view" Or CTRL.CtrlID = "edit" Or Ctrl.CtrlID = "add" Or Ctrl.CtrlID = "delete") Then ##-->
<%
'-------------------------------------------------------------------------------
' Function LoadData
' - Load Data based on Key Value
' - Variables setup: field variables

Function LoadData()

	Dim rs, sSql, sFilter

	sFilter = ewSqlKeyWhere
<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldIsPrimaryKey Then
		sFldVar = FIELD.FldVar
		sFldVar2 = Mid(sFldVar, 3)
		If ewGetFieldType(FIELD.FldType) = 1 Then 'Numeric
##-->
	If Not IsNumeric(<!--##=sFldVar##-->) Then
		LoadData = False
		Exit Function
	End If
<!--##
		End If
##-->
	sFilter = Replace(sFilter, "@<!--##=sFldVar2##-->", AdjustSql(<!--##=sFldVar##-->)) ' Replace key value
<!--##
	End If
Next

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.Open sSql, conn
	If rs.Eof Then
		LoadData = False
	Else
		LoadData = True
		rs.MoveFirst

		' Get the field contents
<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
##-->
		<!--##=FIELD.FldVar##--> = rs("<!--##=FIELD.FldName##-->")
	<!--##
	If FIELD.FldType = 18 Or FIELD.FldType = 19 Then
	##-->
		<!--##=FIELD.FldVar##--> = ewConv(<!--##=FIELD.FldVar##-->, <!--##=FIELD.FldType##-->) ' Convert adUnsignedSmallInt/adUnsignedInt
	<!--##
	End If
	If FIELD.ImageWidthFld <> "" And FIELD.ImageHeightFld <> "" Then
	##-->
		' Get BLOB field width & height
		wd_<!--##=FIELD.FldVar##--> = rs("<!--##=FIELD.ImageWidthFld##-->")
		ht_<!--##=FIELD.FldVar##--> = rs("<!--##=FIELD.ImageHeightFld##-->")
	<!--##
	End If
Next
##-->
	End If

	rs.Close
	Set rs = Nothing

End Function
%>
<!--## End If ##-->
<!--##
If CTRL.CtrlID = "list" And TABLE.TblInlineEdit Then
	sFunctionName = "InlineEditData"
	bGenerate = True
ElseIf CTRL.CtrlID = "edit" Then
	sFunctionName = "EditData"
	bGenerate = True
Else
	bGenerate = False
End If
If bGenerate Then
##-->
<%
'-------------------------------------------------------------------------------
' Function <!--##=sFunctionName##-->
' - Edit Data based on Key Value
' - Variables used: field variables

Function <!--##=sFunctionName##-->()

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

	sFilter = ewSqlKeyWhere

<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldIsPrimaryKey Then
		sFldVar = FIELD.FldVar
		sFldVar2 = Mid(sFldVar, 3)
		If ewGetFieldType(FIELD.FldType) = 1 Then 'Numeric
##-->
	If Not IsNumeric(<!--##=sFldVar##-->) Then
		<!--##=sFunctionName##--> = False
		Exit Function
	End If
<!--##
		End If
##-->
	sFilter = Replace(sFilter, "@<!--##=sFldVar2##-->", AdjustSql(<!--##=sFldVar##-->)) ' Replace key value
<!--##
	End If
Next
##-->

<!--##
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
		<!--##=sFunctionName##--> = False
		Exit Function
	End If

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

	If rs.Eof Then
		<!--##=sFunctionName##--> = False ' Update Failed
	Else

<!--##
For i = 1 to TABLE.Fields.Count
	SET FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldGenerate And Not FIELD.FldHtmlTagReadOnly Then
	If (CTRL.CtrlID = "list" And FIELD.FldList And FIELD.FldEdit) Or (CTRL.CtrlID = "edit" And FIELD.FldEdit) Then ' InlineEdit / FldList + FldEdit, Edit / FldEdit
##-->
		' Field <!--##=FIELD.FldName##-->

⌨️ 快捷键说明

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