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更加神奇,传递一个时间戳,它会返回给你在此时间戳之后所有更新了的数据,当然包括添加、删除和修改了的数据。

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

  • 相关阅读:
    JavaScript函数调用
    JS数据类型&&typeof&&其他
    JavaScript闭包底层解析
    test
    C# 网页自动填表自动登录 .
    C#中没有id 没有name C#怎么点击按钮
    网页中403错误的含义
    C# 按钮置顶和隐藏
    C# webBrowser 屏蔽网页JS脚本错误弹窗
    HTML5 canvas globalCompositeOperation 设置绘图的顺序
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/14805216.html
Copyright © 2011-2022 走看看