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

2016-01-29 17:27 1 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>

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

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

延伸阅读
什么是 互联网 支付?今天我给大家分享一些互联网的相关知识,希望可以帮助到你。 什么是互联网支付:定义 网银、第三方支付、移动支付作为互联网支付的主要表现形式。互联网支付就属于那种需要特别“照顾”的。因为从微观层面上说,互联网支付直接涉及到用户的财产安全等切身利益,从宏观层面上,还关系到国家金融体系...
标签: 生活常识
互联网金融模式下,移动理财投资具有以下根本性特点:所有小额资金个人都可以参与到移动理财投资,进入全民理财的阶段;单独的会员制交易单位体系可能将不复存在。 移动互联网金融概念股-移动互联网资源 什么是移动互联网金融 移动互联网金融是传统金融行业与移动互联网相结合的新兴领域。移动互联网金融区别于传统金融服...
弥漫在中国各行业的心浮气躁,在互联网设计领域也不能幸免。 视觉设计在做交互设计的事,交互设计在做产品经理的事,产品经理在做老板的事,就是没人做自己专业领域的事,并且是沉下心来踏踏实实去追求做到极致。 大家都太浮躁。 比如,一个公司的网站,请了一堆设计师,都很忙。但是网站上一个输入框都丑了好多年,还继续在那丑着。问起来...
为了方便用户使用和使系统具有灵活性,大多数Win-dows应用程序将用户所做的选择以及各种变化的系统信息记录在初始化(INI)文件中。因此,当系统的环境发生变化时,可以直接修改INI文件,而无需修改程序。由此可见,INI文件对系统功能是至关重要的。本文将介绍采用VisualBasicforWindows(下称VB)开发Windows应用程序时如何读写INI文件。 ...
标签: 投资 理财
信息风险 这一点应该也是很多人知道并且担心的,而且互联网的信息共享性也确实让很多人感到担心。不仅是金融方面,在其他的方面我们也面临着信息被泄露而的风险吗,但是互联网金融和我们口袋里的钱息息相关。所以为了避免这一类的风险我们要尽量保护好自己的个人信息,不要随便打开一些链接网站,上传自己的照片和身份信息等等。 监管...

经验教程

610

收藏

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