麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > XML > 正文

用ASP、VB和XML建立互聯(lián)網(wǎng)應(yīng)用程序(3)

2024-09-05 20:55:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
假設(shè)在我們前面所說(shuō)的例子中,我們想在應(yīng)用程序中顯示區(qū)域的左半邊顯示客戶(hù)的姓名列表,再在每個(gè)客戶(hù)姓名后面加上兩個(gè)鏈接:purchase history和recent purchase。當(dāng)用戶(hù)點(diǎn)擊其中的一個(gè)鏈接,客戶(hù)程序就會(huì)運(yùn)行一個(gè)存儲(chǔ)過(guò)程并在右邊區(qū)域顯示出結(jié)果。 為了顯示這個(gè)想法的靈活性,我想讓用于返回?cái)?shù)據(jù)的三個(gè)操作單元執(zhí)行不同的工作過(guò)程,它們都調(diào)用getdata.asp。首先,通過(guò)調(diào)用custorderhist來(lái)運(yùn)行一個(gè)存儲(chǔ)過(guò)程,返回客戶(hù)的purchase history,它搜索northwind數(shù)據(jù)庫(kù)(為了方便起見(jiàn)我使用ms sql中自帶的數(shù)據(jù)庫(kù))并返回一個(gè)數(shù)據(jù)集。用于返回recent purchase 的查詢(xún)語(yǔ)句運(yùn)行一個(gè)叫recentpurchasebycustomerid的存儲(chǔ)過(guò)程,來(lái)接收輸入的customerid參數(shù)并通過(guò)productname參數(shù)返回最近顧客購(gòu)買(mǎi)的商品名。定義其處理過(guò)程相應(yīng)sql語(yǔ)句如下:

  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

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

  set xhttp = createobject ("msxml2.xmlhttp")
  xhttp.open "post", "http://localhost/myweb/ getdata.asp", false
  xhttp.send s

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

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

  <command>
   <commandtext>

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

  </commandtext>
   <returnsvalues>true</returnsvalues>
  </command>

  你可以為每一個(gè)參數(shù)使用一個(gè)<param>元素,來(lái)添加參數(shù)。每個(gè)<param>元素有五個(gè)子元素:name,type,direction,size和value。子元素的順序可以隨意調(diào)換,但是所有的元素都應(yīng)當(dāng)有不能缺少,我通常按照定義一個(gè)ado對(duì)象的值的順序來(lái)定義它們。舉例來(lái)說(shuō),custorderhist存儲(chǔ)過(guò)程需要一個(gè)customid參數(shù),所以用來(lái)創(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>"

  注意,前面的代碼都是客戶(hù)端代碼,ado常量是不在客戶(hù)端定義的-這就是它們?yōu)槭裁词褂茫? %>標(biāo)記圍起來(lái)的原因。服務(wù)器在發(fā)送響應(yīng)之前使用正確的值取代它們。getdata.asp頁(yè)有一個(gè)response.contenttype,它的屬性為"text/xml",這樣,你就可以使用responsexml屬性來(lái)返回結(jié)果了。當(dāng)請(qǐng)求返回紀(jì)錄,你就可以創(chuàng)建一個(gè)recordset對(duì)象并且使用xmlhttp來(lái)打開(kāi)它:

  dim r
   set r = createobject("adodb.recordset")
   r.open xhttp.responsexml

  當(dāng)查詢(xún)語(yǔ)句返回?cái)?shù)據(jù)時(shí),通過(guò)設(shè)置xmlhttprequest對(duì)象的responsexml屬性來(lái)創(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ù)使用別的國(guó)家的文字,你可能需要把編碼屬性用相應(yīng)的編碼替換,例如對(duì)于大部分歐洲語(yǔ)言,可以使用iso-8859-1

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

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

最大的網(wǎng)站源碼資源下載站,

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品亚洲免费 | 亚洲一区二区三区精品在线观看 | 香蕉久久久久久 | 国产精品欧美日韩一区二区 | 久久精品国产一区二区电影 | 4p一女两男做爰在线观看 | 欧美视屏一区二区 | 在线日韩亚洲 | 一区二区三区在线播放视频 | 国产精品6区 | 国产三级在线观看a | 九九热精品视频在线播放 | 亚洲一区二区中文字幕在线观看 | 国产黄色一区二区 | 色网站综合 | 亚洲第一色婷婷 | 欧美一级高潮片免费的 | 91福利社在线 | 亚洲人成在线播放网站 | 久久最新网址 | 久久久久久久久久久久久久国产 | 国产一区二区三区视频在线观看 | 天天看成人免费毛片视频 | av在线等| 国产毛毛片一区二区三区四区 | 久久精品亚洲一区二区三区观看模式 | 国产精品久久久久影院老司 | 日韩视频在线观看免费视频 | 久久久久久免费 | 日本一区二区在线看 | 久久久久av69精品 | 蜜桃传媒视频麻豆第一区免费观看 | 国产98色| 九九热精品在线视频 | 亚洲九九色 | 欧美一级黄色片免费观看 | 护士hd欧美free性xxxx | 久成人| 日日草夜夜 | 91九色蝌蚪国产 | 欧美日韩国产中文字幕 |