日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[BTS]BizTalk2006 SqlAdapter UpdateGram的Update用法

發布時間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BTS]BizTalk2006 SqlAdapter UpdateGram的Update用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用UpdateGram更新表中的數據

目錄
  • 開發環境
  • 開發目的
  • 開發過程
  • 總結
  • 問題

開發環境

  • Windows2003 SP2
  • SqlServer 2005
  • BizTalik2006
  • VisualStudio2005

開發目的

  • 學習在SqlAdapter的UpdateGram中,使用Update用法
  • 驗證Update中特殊字符的賦值的方法

開發過程

  • 新建項目后,點擊"Add Generated Items",啟動生成向導。


  • 選中"Add Adapter Metadata"的"Add Adapter Metadata"后,點擊確定


  • 選擇已經注冊了的Adapter,我這里只有Sql。然后配置要連接的數據庫。


  • 接下來要求您設置數據庫連接字符串。


  • 在彈出的數據庫配置對話框中,配置數據連接方式。


  • 配置好后,進行下一步。


  • 配置生成的Schema的Namespace,端口類型,根節點。
    Namespace:自己輸入喜歡的名稱
    Port Type:我要用UpdateGram,所以用SendPort
    Root Element Name:請求、響應的根節點


  • 選擇我期待已久的UpdateGram


  • 選擇我要實現的Update功能,要操作的表及字段(這些字段可以在后面的Schema中修改)


  • Finish了!


  • 向導開始自動生成代碼了


  • 生成后,在項目中會多出下面兩個文件(不用解譯了吧)


  • 打開流程文件,開始添加一個端口


  • 啟動了端口配置向導


  • 輸入端口名稱


  • 選擇由向導自動生成的端口


  • 配置端口的綁定信息


  • 又Finish了


  • 配置結束后的效果


  • 直接在流程中添加接收、發送,然后與端口進行連接
    添加后會自動生成對應要使用到的消息Message_1,Message_2(先不要改名,后面會用到)


  • 當然,還要有一個流程的接收端口
    配置一個接收端口(如果配置不用多講了吧)
    添加一個接收,然后與剛剛添加的接收端口做連接
    把接收的Active屬性設置為Tree(啟用狀態)
    接收的消息為了簡單,直接用20步時,自動生成的Message_1


  • 添加物理發送端口
    在BizTalk Explore中,添加一個發送端口


  • 端口類型設置為發送請求并接收響應


  • 設置發送端口名稱


  • 配置發送端口的地址
    ConectionString:可以用配置向導自動生成
    Namespace:在7中設置的Namespace
    Response Root:在7中設置的Response Root Name


  • 配置完成后的效果


  • 另忘了還要設置發送端口的Pipeline,全部用Xml***的


  • 打開項目中的Schema


  • 這里發現,ID的位置有問題,不應該在After中,把ID移到了Before中


    至此,完成上面所有的操作后,啟動BizTalk部署,并完成流程的綁定、啟動過程(具體步驟略)。

  • 生成一個Schema的實例,并做了一個Sample(XmlSpy的顯示效果)如下


  • 在目的表中,添加下面的數據
    注意第一條,與30中的Before相對應


  • 將30中的xml,發到流程的接收位置處
    注:接收位置我配置了一個文件接收端口,這是為了測試方便。配置方法略。
    觀察表中的數據表發,發現數據已經按照要求,被更新了。


  • 如果輸入的Xml中,Before數據與表中數據對應不上,會報下面的錯誤


    事件類型: 警告
    事件來源: BizTalk Server 2006
    事件種類: BizTalk Server 2006
    事件 ID: 5740
    日期: 2007-11-5
    事件: 16:39:26
    用戶: N/A
    計算機: BIZTALK001
    描述:
    The adapter "SQL" raised an error message. Details "HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted " <Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"><?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted "?></Root>".

  • 錯誤2


    事件類型: 警告
    事件來源: BizTalk Server 2006
    事件種類: BizTalk Server 2006
    事件 ID: 5743
    日期: 2007-11-5
    事件: 16:39:26
    用戶: N/A
    計算機: BIZTALK001
    描述:
    The adapter failed to transmit message going to send port "UpdateGram_Out" with URL "SQL://BIZTALK001/Test01/". It will be retransmitted after the retry interval specified for this Send Port. Details:"HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted " <Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"><?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted "?></Root>".
  • 總結

    • 如果對BizTalk已經比較熟悉,全部過程不會超過30分鐘
    • 更新數據中包含的特殊字符,請用XML的轉意字符串表求(如:"'&><)
    • 字段中的換行都被替換掉了(還需要繼續研究)
    • 如果沒有After的定義,那么此操作將把該記錄刪除(實現Delete操作)
    • 如果沒有Before,只有After,就實現了Insert操作
    • Before中的字段不用全部顯示出來(比如只有一個ID也可以)
    • Before中的字段如果要求為Null,那么也同樣不用標記出來
    • 此操作就象"update table set f1=v1, f2=v2, f3=v3,... where f1=v01 and f2=v02 and ..."

    問題

    • 換行如何解決?
    • 出現的兩個錯誤,如何解決?
    • 如何批量Update?

    特此感謝Kent在技術上的支持!

    轉載請注明作者及出處

    轉載于:https://www.cnblogs.com/xuzhong/archive/2007/11/06/950698.html

    總結

    以上是生活随笔為你收集整理的[BTS]BizTalk2006 SqlAdapter UpdateGram的Update用法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。