国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > XML > 正文

用ASP、VB和XML建立互聯網應用程序(3)

2024-09-05 20:55:42
字體:
來源:轉載
供稿:網友
假設在我們前面所說的例子中,我們想在應用程序中顯示區域的左半邊顯示客戶的姓名列表,再在每個客戶姓名后面加上兩個鏈接: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 [email protected]) and [email protected]) 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字符串>

最大的網站源碼資源下載站,

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鱼台县| 门源| 德州市| 景宁| 龙州县| 哈巴河县| 黄山市| 三穗县| 常熟市| 华蓥市| 灵寿县| 顺义区| 黄陵县| 旬邑县| 精河县| 罗平县| 阳高县| 同仁县| 平度市| 芷江| 辽宁省| 潜江市| 宝坻区| 丰原市| 洞头县| 德州市| 文成县| 拜泉县| 金寨县| 山阳县| 城固县| 永川市| 信丰县| 栾川县| 通道| 专栏| 菏泽市| 渝中区| 青冈县| 建瓯市| 深圳市|