ASP教程之ASP中非数据库完成数据工具的界说及处置...
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;工具|数据|数据库说非数据库体例,有些托年夜,但在没无数据库的情形下,也算给了一个熬炼的好时机,更况且自己对有事没事就整数据库玩的体例是切齿腐心,有些时分,在资本无限及功效复杂的情形下,使用文件办理自己就可以很好的完成一个体系,又何须非用数据库不成呢?好的,开说ASP程序,ASP程序壮大的缘故原由次要在于COM工具的扩大,以是在一阵的思想风暴后,打起了一套组合拳:Scripting.FileSystemObject,Scripting.Dictionary和Msxml2.DOMDocument.4.0。
上面就以文件办理程序为例,对完成做扼要申明:
起首,是构想。
1.办理的数据工具是文件工具,而文件工具能够对应到XML中的某个结点
2.文件工具的布局,能够自行界说
3.文件工具的增添、删除、修正和查询
XML中充实使用Xpath,完成查询对照复杂,以是构想后成绩次要应当回结为XML结点的增编削的成绩,和工具布局的界说。增编削不用多说,关头是工具布局的自界说(在面向工具中就是类的声明)。
接上去,是完成。
一是布局文件
这里布局包含:英文名字,中文显现名,范例,显现模版(或参照),默许值等
实在就是相似schema的器材,然后把这些布局保留在一个文件中,良多操纵时就能够在轮回中主动处置了,好比显现一个文件时,就能够依照这个布局来显现一切属性字段。
以下为一个布局文件documentx.dna的树模内容:
*/DOCS=文件
*/DOCS/@VERSION=版本%%STRING%%...%%1.0.0.0
*/DOCS/DOC=文件
+/DOCS/DOC/@ID=标识%%STRING%%%%=UniqueID()
+/DOCS/DOC/@HOT=人气%%NUM%%%%0
/DOCS/DOC/TITLE=题目
/DOCS/DOC/DEPARTFROM=来文单元%%DICTIONARY%%department%%
/DOCS/DOC/@DONE=是不是处置终了%%BOOL%%%%
必要申明的是英文称号接纳Xpath的体例,是为了便利XML处置。
英文称号前加*号暗示为体系字段,同时也长短文件工具的属性字段
英文称号前加+暗示该字段对用户来讲是只读的,其值由体系指定。
别的前加*大概加+号也好,也有避免误删的缘故原由,由于*号或+号是不会显现给用户的。
用=号分开英文称号与其他部分,而其他部分顶用%%分开,顺次为中文显现名,该项范例,显现模版(或参照),默许值。
必要申明的是范例,假如范例为DICTIONARY的话,显现模版(或参照)或参照的为详细的DICTIONARY文件,DICTIONARY的保留情势,形同Delphi中TstringList的保留情势,用=号把关头字与值分开:
CS1=测试单元1
CS2=测试单元2
二是使用新建一个文件,申明显现的成绩
先看树模文件:
<%@LANGUAGE=VBSCRIPT%>
<%
DimsKey,sValue,Sign,Pos,AttrID,Values,F,FName,Count
%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metahttp-equiv="Content-Language"content="zh-cn">
</head>
<body>
<formmethod="POST"action="Documents!Save.asp">
<tableborder="0"width="100%"cellpadding="0"style="border-collapse:collapse">
<tr>
<tdbgcolor="#C0C0C0"><b>新建</b></td>
</tr>
<tr>
<td>
<tableborder="1"width="100%"cellspacing="0"cellpadding="0"style="border-collapse:collapse"bordercolor="#000000">
<tr>
<tdwidth="10%">项</td>
<td>值</td>
</tr>
<%
Count=0
DOCUMENTX为Scripting.Dictionary工具,为documentx.dna的内容
ForEachsKeyInDOCUMENTX
Sign=Left(sKey,1)
IfSign<>"*"Then
sValue=DOCUMENTX.Item(sKey)
Values=Split(sValue&"%%%%%%","%%")
Pos=InStrRev(sKey,"/")
AttrID=Right(sKey,Len(sKey)-Pos)
IfLeft(AttrID,1)="@"Then
AttrID=Mid(AttrID,2)&"_INLINE"也就是说@为通常是内置属性
EndIf
AttrID="ATTR_"&AttrID
%>
<tr>
<tdwidth="10%"><%=Values(0)%></td>
<td>
<%
IfSign="+"Then假如为只读属性
%>
<inputtype="hidden"name="<%=AttrID%>"value=""/>体系盘算:<%=Values(3)%>
<%
Else
依照范例举行显现
IfValues(1)="BOOL"Then
Response.Write"<inputtype=""checkbox""name="""&AttrID&"""value=""1""/>"
Else
IfValues(1)="DICTIONARY"Then
ENVIRONMENT为Scripting.Dictionary工具
ENVIRONMENT.Item(“ROOT”)中存储了该程序办理的根目次
FName=ENVIRONMENT.Item("ROOT")&"dictionary"&Values(2)&".dic"
%>
<selectname="<%=AttrID%>">
<%
IfFSO.FileExists(FName)Then
SetF=FSO.OpenTextFile(FName,1,False)
DoWhileNotF.AtEndOfStream
sValue=F.ReadLine
Pos=InStr(sValue,"=")
IfPos>0Then
Response.Write"<optionvalue="""&Left(sValue,Pos-1)&""">"&Right(sValue,Len(sValue)-Pos)&"</option>"
EndIf
Loop
F.Close
EndIf
%>
</select>
<%
Else
Response.Write"<inputtype=""textbox""name="""&AttrID&"""size=""30""/>"
EndIf
EndIf
EndIf
%>
</td>
</tr>
<%
Count=Count+1
EndIf
Next
%>
<tr>
<tdwidth="10%"></td>
<td></td>
</tr>
<tr>
<tdwidth="10%"></td>
<td></td>
</tr>
</table>
</td>
</tr>
<tr>
<tdbgcolor="#C0C0C0"align="right"valign="middle"><inputtype="submit"name="btnSave"value="保留"/><inputtype="button"name="btnReset"value="重输"/></td>
</tr>
</table>
</form>
</body>
</html>
三是使用代码申明xml存储的完成
<%@LANGUAGE=VBSCRIPT%>
<!--#includefile="System.inc.asp"-->
<!--#includefile="Document.inc.asp"-->
<%
System.inc.asp中包括UniqueID()函数
起首,猎取用户客户端提交的数据信息
DimPostData
SetPostData=Server.CreateObject("Scripting.Dictionary")
DimValues,Key,Value,AttrID,Pos,Sign
ForEachKeyI
帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页:
[1]