質問

SharePoint OnlineのAccess Servicesにクエリを作成し、その結果をWebサービスまたは.NETのクライアントオブジェクトモデルを通じて表面的な方法はありますか。テーブルがリストとして表面されている方法と同様に?

背景

SharePoint OnlineのAccess Servicesを使用して表面化されたアクセスデータベースを持っています。 私はアクセスサービスから別のシステムにフィードするためのいくつかのデータを検索するというタスクを与えられました。

SQLで書かれた既存のクエリがあります(アクセスデータベースがオンラインの時から)非常に複雑で、CamlQueryに変換するか、または照会を作成するためにLINQを使用すると、その1)SQLに存在するすべての機能はありません.2)肥大化され、実行が遅くなり、維持するのが遅くなります。

簡略化された例クエリ:

select * 
from members m, info i 
where m.id = i.memberid
and year(m.date) = 1900 
UNION 
select *
from members m 
where m.id not in (select memberid from info) 
UNION 
select *
from members m, info i 
where m.id = i.memberid
and i.date_to = (select max(date_to) from info where memberid = i.memberid)
Order By m.Name
.

役に立ちましたか?

解決

I ended up doing this by using the C# client object model to import all the data from the relevant lists into an in-memory SQLite database, and then running a modified SQL query on the SQLite tables. As there wasn't that much data this was an acceptable method.

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top