帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
ASP、VB和XML建互联网应用程序3
作者:佚名 发布时间:2005-04-02 来源:不详
 用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字符串>
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·ASP、VB和XML建互联网应用程序1  (2005-04-02)
 ·ASP、VB和XML建互联网应用程序2  (2005-04-02)
 ·ASP教程19:最新的ASP、IIS安全漏  (2005-04-02)
 ·最新的ASP、IIS安全漏洞  (2005-03-12)
 ·购建ASP、CGI、PHP+MySQL运行环境  (2005-03-12)
 ·购建ASP、CGI、PHP+MySQL运行环境  (2005-03-12)
 ·用ASP、VB和XML建立互联网应用程  (2005-03-12)
 ·用ASP、VB和XML建立互联网应用程  (2005-03-12)
 ·用ASP、VB和XML建立互联网应用程  (2005-03-12)
 ·用ASP、VB和XML建立互联网应用程  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统