六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用ASP、VB與XML創(chuàng)建互聯(lián)網(wǎng)應(yīng)用程序(3)

[摘要]假設(shè)在我們前面所說的例子中,我們想在應(yīng)用程序中顯示區(qū)域的左半邊顯示客戶的姓名列表,再在每個(gè)客戶姓名后面加上兩個(gè)鏈接:Purchase History和Recent Purchase。當(dāng)用戶點(diǎn)擊其中的一個(gè)鏈接,客戶程序就會(huì)運(yùn)行一個(gè)存儲(chǔ)過程并在右邊區(qū)域顯示出結(jié)果。 為了顯示這個(gè)想法的靈活性,我想讓用于...
假設(shè)在我們前面所說的例子中,我們想在應(yīng)用程序中顯示區(qū)域的左半邊顯示客戶的姓名列表,再在每個(gè)客戶姓名后面加上兩個(gè)鏈接:Purchase History和Recent Purchase。當(dāng)用戶點(diǎn)擊其中的一個(gè)鏈接,客戶程序就會(huì)運(yùn)行一個(gè)存儲(chǔ)過程并在右邊區(qū)域顯示出結(jié)果。 為了顯示這個(gè)想法的靈活性,我想讓用于返回?cái)?shù)據(jù)的三個(gè)操作單元執(zhí)行不同的工作過程,它們都調(diào)用getData.asp。首先,通過調(diào)用CustOrderHist來運(yùn)行一個(gè)存儲(chǔ)過程,返回客戶的Purchase History,它搜索Northwind數(shù)據(jù)庫(為了方便起見我使用MS SQL中自帶的數(shù)據(jù)庫)并返回一個(gè)數(shù)據(jù)集。用于返回Recent Purchase 的查詢語句運(yùn)行一個(gè)叫RecentPurchaseByCustomerID的存儲(chǔ)過程,來接收輸入的CustomerID參數(shù)并通過ProductName參數(shù)返回最近顧客購買的商品名。定義其處理過程相應(yīng)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

  不管你的查詢語句中含有動(dòng)態(tài)SQL語句還是含有返回記錄集的存儲(chǔ)過程或是輸出一個(gè)返回值,其處理POST消息的方法是一樣的:

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

  好了,現(xiàn)在讓我們看一看如何發(fā)送和接收數(shù)據(jù)

  客戶端的XML信息是由一個(gè)<command>元素和一些子元素組成:<commandtext>元素包含了存儲(chǔ)過程的名稱,<returnsdata>元素告訴服務(wù)器,客戶端是否要求接收返回?cái)?shù)據(jù),<param>元素包含參數(shù)信息。如果不使用參數(shù)的話,那么最簡單的發(fā)送字符串查詢就象下面這樣:

  <command>
   <commandtext>

  存儲(chǔ)過程或動(dòng)態(tài)SQL語句

  </commandtext>
   <returnsvalues>True</returnsvalues>
  </command>

  你可以為每一個(gè)參數(shù)使用一個(gè)<param>元素,來添加參數(shù)。每個(gè)<param>元素有五個(gè)子元素:name,type,direction,size和value。子元素的順序可以隨意調(diào)換,但是所有的元素都應(yīng)當(dāng)有不能缺少,我通常按照定義一個(gè)ADO對(duì)象的值的順序來定義它們。舉例來說,CustOrderHist存儲(chǔ)過程需要一個(gè)CustomID參數(shù),所以用來創(chuàng)建發(fā)送到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常量是不在客戶端定義的-這就是它們?yōu)槭裁词褂茫? %>標(biāo)記圍起來的原因。服務(wù)器在發(fā)送響應(yīng)之前使用正確的值取代它們。getData.asp頁有一個(gè)Response.ContentType,它的屬性為"text/xml",這樣,你就可以使用ResponseXML屬性來返回結(jié)果了。當(dāng)請(qǐng)求返回紀(jì)錄,你就可以創(chuàng)建一個(gè)Recordset對(duì)象并且使用XMLHTTP來打開它:

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

  當(dāng)查詢語句返回?cái)?shù)據(jù)時(shí),通過設(shè)置XMLHTTPRequest對(duì)象的responseXML屬性來創(chuàng)建一個(gè)DOMDocument:

  Dim xml
   set xml = xhttp.responseXML

  輸出參數(shù)的XML字符串的每個(gè)返回值都包含一個(gè)元素,它們都是根元素<values>的直接子元素,例如:

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

  如果你的數(shù)據(jù)使用別的國家的文字,你可能需要把編碼屬性用相應(yīng)的編碼替換,例如對(duì)于大部分歐洲語言,可以使用ISO-8859-1

  客戶端頁面使用返回的數(shù)據(jù)來格式化一個(gè)HTML字符串用于顯示,如:

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






主站蜘蛛池模板: 五月天激情婷婷大综合 | 日韩欧美在线综合网高清 | 亚洲国产日韩在线观看 | 亚洲国产成人影院播放 | 性感美女视频黄.免费网站 性感保姆正片 | 欧美在线观看一区二区 | 在线播放高清国语自产拍免费 | 欧美五月激情 | 亚洲高清二区 | 午夜精品久久久久久久 | 欧美性活生活视频 | 香蕉毛片a| 天天躁狠狠躁 | 视频在线观看40分钟免费 | 亚洲国产精品综合欧美 | 亚洲综合第一 | 日本另类αv欧美另类aⅴ | 青青草视频官网 | 日本a级片在线播放 | 日日做夜夜爱 | 亚洲欧美天堂综合久久 | 夜色爽爽 | 日韩国产欧美成人一区二区影院 | 最近日本免费观看视频 | 四虎影视在线影院4hu | 亚洲狼网站狼狼鲁亚洲下载 | 青青国产视频 | 青青青在线视频免费观看 | 日本中文在线视频 | 人人夜| 欧美性第一页 | 日本五级床片全部免费午夜 | 日韩美毛片| 日本高清视频一区二区三区 | 亚洲欧洲视频在线 | 欧美一级淫片免费播放40分钟 | 伊人剧场 | 亚洲欧洲一区二区三区 | 日本特黄特色aa大片免费 | 香蕉成人福利片视频在线下载 | 天堂网久久 |