いくつかの異なるソースから同じ情報を取得しようとしていますが、NotesSQL と SQL 2008 を使用しようとして壁にぶつかりました。私がやろうとしているのは、Domino サーバーのいくつかの異なるビューから情報を取得することです。1 つのビューは既定のビューで、もう 1 つは作成されたビューです。
私が使用した方法の 1 つは Powershell です。ここでは、データベースを取得してビューを選択し、最初のドキュメントを取得してから、必要なフィールドを取得する残りのビューを反復処理します。私が選択したビューはPeopleビューです。
SQL 2008 を使用して、これと同じことを複製しようとしていました。NotesSQL ドライバーを使用し、ODBC 接続を設定してから、その Notes データベースへのリンク サーバーを作成しました。次のクエリを使用して、人物ビューから選択しています。
select * from openquery(MyNotesServer,'Select * from People')
ただし、このビューから返されるものは、Powershell を使用してそのビューで返されたドキュメントを反復処理したときに表示できるものではありません。Powershell では 100 列以上が表示されますが、SQL では 5 列しか返されません。さらに、「_12」、「17」などの名前が付けられています。一部のフィールド (カスタムの可能性がありますが、わかりません) には意味のある名前が付いています。表示されたフィールドのうち、名前 (「_12」など) で選択できますが、それ以外は選択できません。行数 (SQL) は、ビュー内のドキュメント数 (Powershell ) と同じ$view.Allentries.Count
です。
作成されたビューのクエリ (3 フィールド):
select * from openquery(MyNotesServer,'Select * from MyCreatedView')
そのビュー内のすべてのフィールドを返し、それらはビュー内にあるとおりに名前が付けられます。
People ビューを照会する T-SQL で、Powershell スクリプトで発見したように、そこにあることがわかっている列の名前をどのように取得しますか? それらは同じものに名前が付けられているようには見えませんselect *
。Notes のドキュメントと例を読みましたが、何がどこにマッピングされているかわかりません。
この背後にある理由は、スクリプトを実行する代わりに SQL と notes.id ファイルを利用したいということです。また、作成者のみがアクセスできるビューではなく、既存のグローバル ビューを利用したいと考えています。