仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 395|回复: 8
打印 上一主题 下一主题

[学习教程] ASP教程之用ASP、VB和XML创建互联网使用程序(4)

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:56:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,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:37 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
爱飞 该用户已被删除
板凳
发表于 2015-1-26 20:02:08 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
再现理想 该用户已被删除
地板
发表于 2015-2-4 20:19:36 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
柔情似水 该用户已被删除
5#
发表于 2015-2-10 06:30:34 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
再见西城 该用户已被删除
6#
发表于 2015-2-28 23:26:01 | 只看该作者
掌握asp的特性而且一定要知道为什么。
谁可相欹 该用户已被删除
7#
发表于 2015-3-10 10:24:22 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
只想知道 该用户已被删除
8#
发表于 2015-3-17 06:11:16 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-23 22:59:45 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 14:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表