用ASP、VB和XML建立互联网应用程序(3)

2016-01-29 17:27 5 1 收藏

用ASP、VB和XML建立互联网应用程序(3),用ASP、VB和XML建立互联网应用程序(3)

【 tulaoshi.com - ASP 】

  假设在我们前面所说的例子中,我们想在应用程序中显示区域的左半边显示客户的姓名列表,再在每个客户姓名后面加上两个链接:Purchase History和Recent Purchase。当用户点击其中的一个链接,客户程序就会运行一个存储过程并在右边区域显示出结果。 为了显示这个想法的灵活性,我想让用于返回数据的三个操作单元执行不同的工作过程,它们都调用getData.asp。首先,通过调用CustOrderHist来运行一个存储过程,返回客户的Purchase History,它搜索Northwind数据库(为了方便起见我使用MS SQL中自带的数据库)并返回一个数据集。用于返回Recent Purchase 的查询语句运行一个叫RecentPurchaseByCustomerID的存储过程,来接收输入的CustomerID参数并通过ProductName参数返回最近顾客购买的商品名。定义其处理过程相应SQL语句如下:

  CREATE PROCEDURE RecentPurchaseByCustomerID @CustomerID nchar(5), @ProductName nchar(40) output AS SELECT @ProductName = (SELECT top 1 ProductName FROM Products INNER JOIN ([Order Details] INNER JOIN Orders ON Orders.OrderID=[Order Details].OrderID) ON Products.ProductID = [Order Details].ProductID WHERE Orders.OrderDate = (SELECT MAX(orders.orderdate) FROM Orders
where CustomerID=@CustomerID) AND Orders.CustomerID=@CustomerID) GO

  不管你的查询语句中含有动态SQL语句还是含有返回记录集的存储过程或是输出一个返回值,其处理POST消息的方法是一样的:

  set xhttp = createObject ("msxml2.XMLHTTP")
  xhttp.open "POST", "http://localhost/myWeb/ getData.asp", False
  xhttp.send s

  好了,现在让我们看一看如何发送和接收数据

  客户端的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字符串的代码为:

  dim s
   s = "<?xml version=""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来打开它:

  Dim R
   set R = createObject("ADODB.Recordset")
   R.open xhttp.responseXML

  当查询语句返回数据时,通过设置XMLHTTPRequest对象的responseXML属性来创建一个DOMDocument:

  Dim xml
   set xml = xhttp.responseXML

  输出参数的XML字符串的每个返回值都包含一个元素,它们都是根元素<values>的直接子元素,例如:

  <?xml version=""1.0"" encoding=""gb2312""?>
  <values>
  <paramname>value</paramname>
   <paramname>value</paramname>
  </values>

  如果你的数据使用别的国家

来源:http://www.tulaoshi.com/n/20160129/1501397.html

延伸阅读
标签: Web开发
简介 Perl的普及与互联网的蓬勃发展有直接的关系。在互联网发展的早期,人们发现仅仅使用静态的HTML文档不能生成有效的交互式环境,于是引进了公用网关接口(CGI)的概念。Perl强大的功能和容易扩充的特性使得它成为开发CGI应用最自然的选择,并由此迅速地成为CGI脚本的首选语言。CGI本身并非十全十美。但由于得到了众多开发商的青睐,CGI的应...
标签: 理财 投资
今年 互联网 金融的发展用“异军突起”来形容是最贴切不过了,但是如何投资都有风险,咱们今天就来讲讲如何规避互联网金融雷区 现如今,投资者投资渠道狭窄。传统银行理财,因线下运营成本过高,收益普遍偏低。部分人选择投资收益过高的P2P个人借贷平台,但其中有些P2P平台盲目追求交易量扩张,忽视了其中蕴含的信用风险。...
标签: 育儿知识
你知道吗?宝宝大脑内有个互联网,它越密集,说明宝宝大脑发育越好。DHA是使这个互联网更发达的秘密武器,丰富的早教同样可以使它更完善。全球科学研究相继证实:人的大脑里,确实存在一个“互联网”。在深入探讨中,国际学术界普遍认为:“大脑互联网”的发达程度是脑部发育是否完善、聪明与否的重要体现。作为大脑最基本构成的单位,神经细胞...
网银、第三方支付、移动支付作为 互联网 支付的主要表现形式。互联网支付方式有哪些? 简介: 当支付遇到互联网,一场革命自然不可避免。成为现实的是传统的现金支付已经“退居二线”,各种在线支付方式成为人们日常消费的主要支付方式。银行推出的网银以及民营企业推出的各种各样的第三方支付平台大大方便了人们的生活...
♦ 引言   在上讲中,我们介绍了如何利用Record Store把数据保存在终端内。本讲,我们将阐述MIDP Java网络的相关功能。由于N800终端只能使用HTTP通信,所以我们将以HTTP为主要范例进行讲解。到目前为止,只能制作终端内的单机型应用程序,假如利用网络,连接网络服务器,那么就能够制作出多种应用程序。 1. 利用网络  ...

经验教程

355

收藏

94
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部