教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> VB >> 用ASP、VB和XML建立互联网应用程序(3) RSS订阅
用ASP、VB和XML建立互联网应用程序(3)
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
用ASP、VB和XML建立互联网应用程序(3)

假设在我们前面所说的例子中,我们想在应用程序中显示区域的左半边显示客户的姓名列表,再在每个客户姓名后面加
上两个链接: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>

  如果你的数据使用别的国家的文字,你可能需要把编码属性用相应的编码替换,例如对于大部分欧洲语言,可以使用
ISO-8859-1

  客户端页面使用返回的数据来格式化一个HTML字符串用于显示,如:

  document.all("details").innerHTML = <一些格式化的HTML字符串>

来源:upschool.cn
作者:
关键字:用ASP、VB
发表日期:2006-12-20 19:56:22

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:用ASP、VB和XML建立互联网应用程序(4)   下一篇:用ASP、VB和XML建立互联网应用程序(2)


2009-1-10 8:53:55
本文的相类似文章
  • 用ASP、VB和XML建立互联网应用程序(1)
  • 用ASP、VB和XML建立互联网应用程序(2)
  • 用ASP、VB和XML建立互联网应用程序(4)
  • 用ASP、VB和XML建立互联网应用程序(4)
  • 用ASP、VB和XML建立互联网应用程序(3)
  • 用ASP、VB和XML建立互联网应用程序(2)
  • 用ASP、VB和XML建立互联网应用程序(1)
  • 使用ASP、VB和XML建立运行于互联网上的应用程序
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com