使用HTTPService与Asp的伪Web服务通讯,完成数据库操作

使用HTTPService与Asp的伪Web服务通讯,完成数据库操作

我提供一个asp的伪服务思想:

clientReq.xml:
-------------------------------------------------------------------------------------------------

1<testpacket>
2<msgtype>GetvalueReq</msgtype>
3<version>1.0</version>
4</testpacket>

Index.mxml:
-------------------------------------------------------------------------------------------------

1<mx:model id="mReq" source="clientReq.xml"></mx:model>
1<mx:httpservice contenttype="application/xml" id="hs" method="POST" resultformat="xml" showbusycursor="true" url="http://asp/TestServer.asp">
2<mx:request>
3<xml>{mReq}</xml>
4</mx:request>
5</mx:httpservice>

TestServer.asp:
-------------------------------------------------------------------------------------------------
主要有获得数据包,解析数据包,指定操作,返回数据四步

1。获得提交的数据包
Set oDom = Server.CreateObject("Msxml2.DOMDocument")
oDom.Load Request

2。解析数据包,获得MsgType
sMsgType = Trim(oDom.selectSingleNode("//MsgType").text)
Select Case sMsgType
Case "GetvalueReq"
Call Getvalue
'Case "DeletevalueReq"
' Call Deletevalue
Case "InsertvalueReq"
' Call Insertvalue(oDom)
'Case "UpdatevalueReq"
' Call Updatevalue
'Else Case
' Call ShowErrMsg
End Select

3。指定操作,此处完成Getvalue操作,其中有很多可以做成公共的模块供其他函数使用
sConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("Message.mdb")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open sConn
sSql = "select * from Message order by ID desc"
Set oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Open sSql, oConn, 1, 1

'构造无记录xml文档
If oRs.Eof And oRs.Bof Then
sXml = "

" & vbCrLf &_
"

1<testpacket>" &amp; vbCrLf &amp;_   
2" <msgtype>SystemResp</msgtype>" &amp; vbCrLf &amp;_   
3" <version>1.0</version>" &amp; vbCrLf &amp;_   
4" <result>0</result>" &amp; vbCrLf &amp;_   
5"</testpacket>

"
End If

'构造有记录xml文档
If Not (oRs.Eof And oRs.Bof) Then
Do While Not oRs.Eof
sTmpXml = sTmpXml & "

1<messages>" &amp; vbCrLf &amp;_   
2"<name>" &amp; oRs("Name") &amp; "</name>" &amp; vbCrLf &amp;_   
3"<age>" &amp; oRs("Age") &amp; "</age>" &amp; vbCrLf &amp;_   
4"<sex>" &amp; oRs("Sex") &amp; "</sex>" &amp; vbCrLf &amp;_   
5"<msg>" &amp; oRs("Msg") &amp; "</msg>" &amp; vbCrLf &amp;_   
6"</messages>

" & vbCrLf
oRs.MoveNext
Loop
sXml = "

" & vbCrLf &_
"

1<testpacket>" &amp; vbCrLf &amp;_   
2" <msgtype>SystemResp</msgtype>" &amp; vbCrLf &amp;_   
3" <version>1.0</version>" &amp; vbCrLf &amp;_   
4" <result>1</result>" &amp; vbCrLf &amp; sTmpXml &amp;_   
5"</testpacket>

"
End If

4.返回数据
Set oDom = Server.CreateObject("Msxml2.DOMDocument")
oDom.LoadXML(sXml)
oDom.Save(Response)
Set oDom = Nothing

Message.mdb
-------------------------------------------------------------------------------------------------
数据库名:Message.mdb
数据表名:Message
数据字段:字段 类型
ID 自动编号
Name 文本
Age 数字
Sex 文本
Msg 备注

执行结果:
-------------------------------------------------------------------------------------------------
我是设置HTTPService的resultFormat="text"时,看显示的结果

本主题包含附件: sf_2004111813537.jpg (23359bytes)



CSDN BLOG: http://blog.csdn.net/stefli

stefli 's MP3: http://stefli.88ip.net/Flex/mp3Player.swf

Published At
Categories with Web编程
Tagged with
comments powered by Disqus