zoukankan      html  css  js  c++  java
  • 同步SharePoint List数据到关系数据库

    有时候客户有特殊需求需要将SharePoint List中的数据同步到关系型数据库中,而SharePoint数据实际上是保存在站点的Content Database中的,不能直接从Content Database取数据。

    下面有三种同步SP List数据通关系数据库中的方式:

    1. 使用SharePoint Object Model通过程序取SharePoint数据,需要现熟悉MS的SharePoint Object Model,方式简单但效率可能不好。(具体没有试过,不敢乱说)

    2. 分析Content Database

    MS将SharePoint Lists的所有数据都保存在一张表里(AllUserData),分析这张表就会发现,为了表的可扩展性,所有字段的命名都没有规则。分析这些字段和实际list字段的对应关系式一件很tough的事情,通过进一步分析你会发现其实List 的 每个Field都在Content 数据库中有对应的字段

    <Field Type="UserMulti" DisplayName="Employees" List="UserInfo" Required="TRUE" ShowField="ImnName" UserSelectionMode="PeopleOnly" UserSelectionScope="0" Mult="TRUE" Sortable="FALSE" ID="{2a8b9114-6948-46da-82fa-2797277e1f1e}" SourceID="{e71ce982-fd64-4c2f-98a8-787ac13c443b}" StaticName="Employees" Name="Employees" ColName="int1" RowOrdinal="0"/>

    这样一切都变得简单了,mapping对应的column 和 filed就可以开始数据同步了。

    3. 通过SharePoint WebServices。

    可以在http://<Site>/_vti_bin/Lists.asmx找到所有SP提供的WebSerivces,GetListItems 可以返回指定List的所有数据,而GetListItemChangesSinceToken更加神奇,传递一个时间戳,它会返回给你在此时间戳之后所有更新了的数据,当然包括添加、删除和修改了的数据。

    第二种效率最好,如果能有个支持增量同步的方案,这是个不错的选择。

  • 相关阅读:
    winfrom让窗体在屏幕右下角慢慢向上弹出
    winfrom的StatusStrip控件如何设置控件右对齐
    Winfrom通过Panel拖动无边框窗体
    优秀学习资源汇总
    hexo+github搭建博客跳坑
    博客园主题样式修改
    wxss无法调用本地资源图片
    微信小程序wx:for循环
    Git常用命令总结
    git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined)
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/14805216.html
Copyright © 2011-2022 走看看