WEB开发网
开发学院软件开发C++ XML Web Service 数据交换 阅读

XML Web Service 数据交换

 2008-03-08 12:55:54 来源:WEB开发网   
核心提示:xml Web Service 数据交换 客户端调用服务器端的 Web 服务并传递包含数据的 DataSet (ds): PRivate Sub Synchronize() Dim username As String = "JohnS" Dim blnSUCcess As Boolean &
xml Web Service 数据交换 客户端调用服务器端的 Web 服务并传递包含数据的 DataSet (ds): PRivate Sub Synchronize()   Dim username As String = "JohnS"   Dim blnSUCcess As Boolean   ' 使用 XML Web Service 进行同步   Cursor.Current = Cursors.WaitCursor   Dim wsFeedback As New wsFeedback.feedback   blnSuccess = wsFeedback.InsertFeedback(ds, username)   Cursor.Current = Cursors.DefaultEnd Sub 服务器端的 Web 服务接受 DataSet 并将 XML 直接传递到 SQL Server 2000 存储的过程中,该过程使用 SQLXML(英文)和 OPENXML 解析 XML 并将新数据插入适当的表格。 <WebMethod()> _Public Function InsertFeedback(ByVal ds As DataSet, ByVal username As   String) As Boolean   Dim con As New SqlConnection(connectionstring)   Dim cmd As New SqlCommand("p_Feedback_i", con)   cmd.CommandType = CommandType.StoredProcedure   ' 设置参数   Dim prmXML As SqlParameter = cmd.Parameters.Add("@XML",     SqlDBType.NText)   prmXML.Direction = ParameterDirection.Input   prmXML.Value = ds.GetXml
   Dim prmUsername As SqlParameter = cmd.Parameters.Add("@Username",     SqlDbType.NVarChar)   prmUsername.Direction = ParameterDirection.Input   prmUsername.Value = username   Try   con.Open()     cmd.ExecuteNonQuery()   Catch ex As Exception     ' 处理、记录并重掷错误     Throw ex   Finally     con.Close()   End Try   Return True End Function The stored procedure inserts the new data: CREATE PROCEDURE p_Feedback_i  @XML ntext,  @Username nvarchar(50) AS SET NOCOUNT ON DECLARE @iDoc   integerDECLARE @Error  integer /* Create XML document. */EXEC sp_xml_preparedocument @iDoc OUTPUT, @XML
 /* Insert new records */INSERT INTO   Feedback    (    FeedbackID,    PlantSection,    Part,    DefectScope,    ScopeID,    DefectType,    RichInk,    Username    )SELECT   ID,    PlantSection,    Part,    DefectScope,    ScopeID,    DefectType,    RichInk,    @UsernameFROM OPENXML (@iDoc, '/DataSet/Feedback',2) WITH     (    ID  uniqueidentifier,    PlantSection  int,    Part    int,    DefectScope  int,    ScopeID  nvarchar(50),    DefectType  int,    RichInk    nvarchar(50)    ) SELECT @Error = @@ERRORIF (@Error <> 0)BEGIN  GOTO ErrorhandlerEND
 /* Remove the XML document*/EXEC sp_xml_removedocument @iDoc RETURN Errorhandler: IF NOT @iDoc IS NULL  EXEC sp_xml_removedocument @iDoc RAISERROR (@Error,16,1) RETURN 

Tags:XML Web Service

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接