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

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

  • 相关阅读:
    Windows下IIS+PHP 5.2的安装与配置
    windows下安装、卸载mysql服务
    电脑变绿色
    libmysql.dll是否真的要拷贝到c:\windows目录下呢?
    用PHPnow搭建PHP+MYSQL网站开发环境
    VPS初始化及Nginx+MySQL+PHP/PHPMyAdmin安装优化cnblogs
    二级域名三级域名设置方法
    一句简单命令重启nginx
    上海世博会门票
    无法载入 mysql 扩展
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/14805216.html
Copyright © 2020-2023  润新知