|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的xml|程序|互联网假定在我们后面所说的例子中,我们想在使用程序中显现地区的左半边显现客户的姓名列表,再在每一个客户姓名前面加上两个链接:PurchaseHistory和RecentPurchase。当用户点击个中的一个链接,客户程序就会运转一个存储历程并在右侧地区显现出了局。为了显现这个设法的天真性,我想让用于前往数据的三个操纵单位实行分歧的事情历程,它们都挪用getData.asp。起首,经由过程挪用CustOrderHist来运转一个存储历程,前往客户的PurchaseHistory,它搜刮Northwind数据库(为了便利起见我利用MSSQL中自带的数据库)并前往一个数据集。用于前往RecentPurchase的查询语句运转一个叫RecentPurchaseByCustomerID的存储历程,来吸收输出的CustomerID参数并经由过程ProductName参数前往比来主顾购置的商品名。界说其处置历程响应SQL语句以下:
CREATEPROCEDURERecentPurchaseByCustomerID@CustomerIDnchar(5),@ProductNamenchar(40)outputASSELECT@ProductName=(SELECTtop1ProductNameFROMProductsINNERJOIN([OrderDetails]INNERJOINOrdersONOrders.OrderID=[OrderDetails].OrderID)ONProducts.ProductID=[OrderDetails].ProductIDWHEREOrders.OrderDate=(SELECTMAX(orders.orderdate)FROMOrders
whereCustomerID=@CustomerID)ANDOrders.CustomerID=@CustomerID)GO
不论你的查询语句中含有静态SQL语句仍是含有前往纪录集的存储历程或是输入一个前往值,其处置POST动静的办法是一样的:
setxhttp=createObject("msxml2.XMLHTTP")
xhttp.open"POST","http://localhost/myWeb/getData.asp",False
xhttp.sends
好了,如今让我们看一看怎样发送和吸收数据
客户真个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字符串的代码为:
dims
s="<?xmlversion=""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来翻开它:
DimR
setR=createObject("ADODB.Recordset")
R.openxhttp.responseXML
当查询语句前往数据时,经由过程设置XMLHTTPRequest工具的responseXML属性来创立一个DOMDocument:
Dimxml
setxml=xhttp.responseXML
输入参数的XML字符串的每一个前往值都包括一个元素,它们都是根元素<values>的间接子元素,比方:
<?xmlversion=""1.0""encoding=""gb2312""?>
<values>
<paramname>value</paramname>
<paramname>value</paramname>
</values>
假如你的数据利用其余国度的笔墨,你大概必要把编码属性用响应的编码交换,比方关于年夜部分欧洲言语,可使用ISO-8859-1
客户端页面利用前往的数据来格局化一个HTML字符串用于显现,如:
document.all("details").innerHTML=<一些格局化的HTML字符串>
</p>源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码 |
|