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

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

  • 相关阅读:
    常用函数
    PostgreSql那点事(文件读取写入、命令执行的办法)
    如何检测Windows中的横向渗透攻击
    小米笔记本pro版bios经常找不到硬盘
    grunt教程
    nodejs廖雪峰大神教程
    ClickOnce是什么?如何使用?
    asp.net中的ORA-12154: TNS: 无法解析指定的连接标识符
    未能加载文件或程序集 ICSharpCode.SharpZipLib
    PL/SQL 循环
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/14805216.html
Copyright © 2011-2022 走看看