仓酷云
标题:
ASP教程之用ASP、VB和XML创建互联网使用程序(4)
[打印本页]
作者:
若天明
时间:
2015-1-16 22:56
标题:
ASP教程之用ASP、VB和XML创建互联网使用程序(4)
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。xml|程序|互联网后面我们已先容了利用ASP和XML夹杂编程,那是由于ASP页面可以很简单让我们看清使用程序正在做甚么,可是你假如你不想利用ASP的话,你也能够利用任何你熟习的手艺往创立一个客户端程序。上面,我供应了一段VB代码,它的功效和ASP页面一样,也能够显现不异的数据,可是这个VB程序不会创立发送到服务器的XML字符串。它经由过程运转一个名叫Initialize的存储历程,从服务器取回XML字符串,来查询ClientCommands表的内容。
ClientCommands表包含两个域:command_name域和command_xml域。客户端程序必要三个特定的command_name域:getCustomerList,CustOrderHist和RecentPurchaseByCustomerID。每个命令的command_xml域包含程序发送到getData.asp页面的XML字符串,如许,就能够会合把持XML字符串了,就象存储历程名字所体现的意义一样,在发送XML字符串到getData.asp之前,客户端程序利用XMLDOM来设置存储历程的参数值。我供应的代码,包括了用于界说Initialize历程和用于创立ClientCommands表的SQL语句。
我供应的例程中还申明了怎样利用XHTTPRequest工具完成我在本文一入手下手时许下的答应:任何远程的呆板上的使用程序都能够会见getData.asp;固然,你也能够经由过程设置IIS和NTFS权限来限定会见ASP页面;你能够在服务器上而不是客户机上存储全局使用程序设置;你能够制止经由过程收集发送数据库用户名和暗码所带来的隐患性。另有,在IE中,使用程序能够只显现必要的数据而不必革新全部页面。
在实践的编程过程当中,你们应该利用一些办法使使用程序加倍有高效性。你能够把ASP中的关于获得数据的代码端搬到一个COM使用程序中往然后创立一个XSLT变更来显现前往的数据。好,我未几说了,如今你所要做的就是试一试吧!
OptionExplicit
PrivateRCommandsAsRecordset
PrivateRCustomersAsRecordset
PrivateRCustAsRecordset
PrivatesCustListCommandAsString
PrivateConstdataURL="http://localhost/XHTTPRequest/getData.asp"
PrivatearrCustomerIDs()AsString
PrivateEnumActionEnum
VIEW_HISTORY=0
VIEW_RECENT_PRODUCT=1
EndEnum
PrivateSubdgCustomers_Click()
DimCustomerIDAsString
CustomerID=RCustomers("CustomerID").Value
IfCustomerID<>""Then
IfoptAction(VIEW_HISTORY).ValueThen
CallgetCustomerDetail(CustomerID)
Else
CallgetRecentProduct(CustomerID)
EndIf
EndIf
EndSub
PrivateSubForm_Load()
Callinitialize
CallgetCustomerList
EndSub
Subinitialize()
从数据库前往命令名和响应的值
DimsXMLAsString
DimvRetAsVariant
DimFAsField
sXML="<?xmlversion=""1.0""?>"
sXML=sXML&"<command><commandtext>Initialize</commandtext>"
sXML=sXML&"<returnsdata>True</returnsdata>"
sXML=sXML&"</command>"
SetRCommands=getRecordset(sXML)
DoWhileNotRCommands.EOF
ForEachFInRCommands.Fields
Debug.PrintF.Name&"="&F.Value
Next
RCommands.MoveNext
Loop
EndSub
FunctiongetCommandXML(command_nameAsString)AsString
RCommands.MoveFirst
RCommands.Find"command_name="&command_name&"",,adSearchForward,1
IfRCommands.EOFThen
MsgBox"Cannotfindanycommandassociatedwiththename"&command_name&"."
ExitFunction
Else
getCommandXML=RCommands("command_xml")
EndIf
EndFunction
SubgetRecentProduct(CustomerIDAsString)
DimsXMLAsString
DimxmlAsDOMDocument
DimNAsIXMLDOMNode
DimproductNameAsString
sXML=getCommandXML("RecentPurchaseByCustomerID")
Setxml=NewDOMDocument
xml.loadXMLsXML
SetN=xml.selectSingleNode("command/param[name=CustomerID]/value")
N.Text=CustomerID
Setxml=executeSPWithReturn(xml.xml)
productName=xml.selectSingleNode("values/ProductName").Text
显现text域
txtResult.Text=""
Me.txtResult.Visible=True
dgResult.Visible=False
显现product名
txtResult.Text="比来的产物是:"&productName
EndSub
SubgetCustomerList()
DimsXMLAsString
DimiAsInteger
DimsAsString
sXML=getCommandXML("getCustomerList")
SetRCustomers=getRecordset(sXML)
SetdgCustomers.DataSource=RCustomers
EndSub
SubgetCustomerDetail(CustomerIDAsString)
找出列表中相干联的ID号
DimsXMLAsString
DimRAsRecordset
DimFAsField
DimsAsString
DimNAsIXMLDOMNode
DimxmlAsDOMDocument
sXML=getCommandXML("CustOrderHist")
Setxml=NewDOMDocument
xml.loadXMLsXML
SetN=xml.selectSingleNode("command/param[name=CustomerID]/value")
N.Text=CustomerID
SetR=getRecordset(xml.xml)
埋没text,由于它是一个纪录集
txtResult.Visible=False
dgResult.Visible=True
SetdgResult.DataSource=R
EndSub
FunctiongetRecordset(sXMLAsString)AsRecordset
DimRAsRecordset</p>大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧
作者:
精灵巫婆
时间:
2015-1-20 06:15
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者:
爱飞
时间:
2015-1-26 20:02
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者:
再现理想
时间:
2015-2-4 20:19
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者:
柔情似水
时间:
2015-2-10 06:30
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
作者:
再见西城
时间:
2015-2-28 23:26
掌握asp的特性而且一定要知道为什么。
作者:
谁可相欹
时间:
2015-3-10 10:24
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者:
只想知道
时间:
2015-3-17 06:11
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者:
飘飘悠悠
时间:
2015-3-23 22:59
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2