ASP网站制作之用ASP、VB和XML创建互联网使用程序(3)
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的xml|程序|互联网假定在我们后面所说的例子中,我们想在使用程序中显现地区的左半边显现客户的姓名列表,再在每一个客户姓名前面加上两个链接:PurchaseHistory和RecentPurchase。当用户点击个中的一个链接,客户程序就会运转一个存储历程并在右侧地区显现出了局。为了显现这个设法的天真性,我想让用于前往数据的三个操纵单位实行分歧的事情历程,它们都挪用getData.asp。起首,经由过程挪用CustOrderHist来运转一个存储历程,前往客户的PurchaseHistory,它搜刮Northwind数据库(为了便利起见我利用MSSQL中自带的数据库)并前往一个数据集。用于前往RecentPurchase的查询语句运转一个叫RecentPurchaseByCustomerID的存储历程,来吸收输出的CustomerID参数并经由过程ProductName参数前往比来主顾购置的商品名。界说其处置历程响应SQL语句以下:CREATEPROCEDURERecentPurchaseByCustomerID@CustomerIDnchar(5),@ProductNamenchar(40)outputASSELECT@ProductName=(SELECTtop1ProductNameFROMProductsINNERJOIN(INNERJOINOrdersONOrders.OrderID=.OrderID)ONProducts.ProductID=.ProductIDWHEREOrders.OrderDate=(SELECTMAX(orders.orderdate)FROMOrders
whereCustomerID=@CustomerID)ANDOrders.CustomerID=@CustomerID)GO
不论你的查询语句中含有静态SQL语句仍是含有前往纪录集的存储历程或是输入一个前往值,其处置POST动静的办法是一样的:
setxhttp=createObject("msxml2.XMLHTTP")
xhttp.open"POST","http://localhost/myWeb/getData.asp",False
xhttp.sends
好了,如今让我们看一看怎样发送和吸收数据
客户真个XML信息是由一个<command>元素和一些子元素构成:<commandtext>元素包括了存储历程的称号,<returnsdata>元素告知服务器,客户端是不是请求吸收前往数据,<param>元素包括参数信息。假如不利用参数的话,那末最复杂的发送字符串查询就象上面如许:
<command>
<commandtext>
存储历程或静态SQL语句
</commandtext>
<returnsvalues>True</returnsvalues>
</command>
你能够为每个参数利用一个<param>元素,来增加参数。每一个<param>元素有五个子元素:name,type,direction,size和value。子元素的按次能够随便互换,可是一切的元素都应该有不克不及短少,我一般依照界说一个ADO工具的值的按次来界说它们。举例来讲,CustOrderHist存储历程必要一个CustomID参数,以是用来创立发送到getData.asp的XML字符串的代码为:
dims
s="<?xmlversion=""1.0""?>"&vbcrlf
s=s&"<command><commandtext>"
s=s&"CustOrderHist"
s=s&"</commandtext>"
s=s&"<returnsdata>"&True</returnsdata>"
s=s&"<param>"
s=s&"<name>CustomerID</name>"
s=s&"<type><%=adVarChar%></type>"
s=s&"<direction>"&<%=adParamInput%></direction>"
s=s&"<size>"&len(CustomerID)&"</size>"
s=s&"<value>"&CustomerID&"</value>"
s=s&"</param>"
s=s&"</command>"
注重,后面的代码都是客户端代码,ADO常量是不在客户端界说的-这就是它们为何利用<%%>标志围起来的缘故原由。服务器在发送呼应之前利用准确的值代替它们。getData.asp页有一个Response.ContentType,它的属性为"text/xml",如许,你就能够利用ResponseXML属性来前往了局了。当哀求前往记录,你就能够创立一个Recordset工具而且利用XMLHTTP来翻开它:
DimR
setR=createObject("ADODB.Recordset")
R.openxhttp.responseXML
当查询语句前往数据时,经由过程设置XMLHTTPRequest工具的responseXML属性来创立一个DOMDocument:
Dimxml
setxml=xhttp.responseXML
输入参数的XML字符串的每一个前往值都包括一个元素,它们都是根元素<values>的间接子元素,比方:
<?xmlversion=""1.0""encoding=""gb2312""?>
<values>
<paramname>value</paramname>
<paramname>value</paramname>
</values>
假如你的数据利用其余国度的笔墨,你大概必要把编码属性用响应的编码交换,比方关于年夜部分欧洲言语,可使用ISO-8859-1
客户端页面利用前往的数据来格局化一个HTML字符串用于显现,如:
document.all("details").innerHTML=<一些格局化的HTML字符串>
</p>源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。 虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
页:
[1]