sql-server-2008 - Lotus Domino NotesSQL ODBC 和 SQL 2008 查询

标签 sql-server-2008 odbc lotus-notes lotus-domino openquery

我正在努力从几个不同的来源获取相同的信息,但在尝试使用 NotesSQL 和 SQL 2008 时遇到了障碍。我正在尝试做的是从 Domino 上的几个不同 View 中检索信息服务器。一个 View 是默认 View ,另一个是创建的 View 。

我使用的一种方法是 Powershell,我从中获取数据库,然后选择 View ,获取第一个文档,然后遍历我需要的其余 View 抓取字段。我选择的 View 是People View 。

我试图使用 SQL 2008 复制同样的东西,使用 NotesSQL 驱动程序,设置 ODBC 连接,然后创建到该 Notes 数据库的链接服务器。我正在使用以下查询从人员 View 中进行选择:

select * from openquery(MyNotesServer,'Select * from People')

但是,从该 View 返回的内容并不是我在使用 Powershell 时能够看到的内容,然后遍历该 View 中返回的文档。 Powershell 在其中显示 100 多列,而 SQL 仅返回 5 列。此外,它们被命名为“_12”、“17”等。一些字段(可能是自定义的,我不知道)有一个有意义的名称。在显示的字段中,我可以按名称(“_12”等)选择它们,但不能选择其他任何内容。行数 (SQL) 与 View 中的文档数相同 (Powershell $view.Allentries.Count)。

查询创建的 View (3 个字段):

select * from openquery(MyNotesServer,'Select * from MyCreatedView')

返回该 View 中的所有字段,并按照它们在 View 中的名称命名。

在查询人员 View 的 T-SQL 中,您如何获取我在 Powershell 脚本中发现的列的名称?它们似乎没有被命名为相同的东西,那么当您从 View 中 select * 时,您如何检索超过 5 的返回值?我已经通读了 Notes 文档和示例,但无法弄清楚什么映射到哪里。

这背后的原因是想利用 SQL 和 notes.id 文件而不是运行脚本。另外,我想利用已经存在的全局 View ,而不是只有作者才能访问的 View 。

最佳答案

您可以使用select * from Person。 Person 是表单名称,而不是 View 名称。 Notes 和 Domino 不是关系型的。 NSF 文件是一个文档数据库。其中的 View 是已经具有隐式选择的预建索引。即,“人员” View 选择使用“人员”表单创建的所有文档。

上述查询绕过了 View 的使用,将为您提供使用 Person 表单创建的所有文档的所有字段。

实际上,仔细想想,更好的查询应该是 select * from Person where type='Person'。这是因为 Domino 中的人员 View 在其选择公式中使用 type="Person" 而不是 form="Person"。理论上可以使用 Person 表单创建文档,但将 Type 字段设置为不同的值。这种变体将确保您始终获得与在 Person View 中看到的相同的列表。

但是:在任何一种情况下,它都是低效的。 NotesSQL 驱动程序必须进行完整的数据库搜索,而不是简单地读取现有 View 的索引。它将使用 Notes 公式 SELECT Form="Person"& Type="Person"进行搜索。 我真的不推荐这样做,除非您查询的是小型 Domino Directory 数据库。

最佳做法是创建一个包含您真正需要的所有字段的 View ,然后针对该 View 执行查询。

关于sql-server-2008 - Lotus Domino NotesSQL ODBC 和 SQL 2008 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364018/

相关文章:

SQL Server Management Studio - 如何在不删除表的情况下更改字段类型

python - 如何使用 pyodbc 从所有 odbc 兼容数据库获取结果?

java - 使用 ODBC 和 MS Access 时出现主键冲突错误代码

web-services - 如何在 Lotus Notes 中使用 RESTful Web 服务

lotus-notes - 编辑文档时 UNID 无效

sql - 在 MSSQL 中将每个数值增加 15%

sql-server - 尝试使用动态 SQL 连接 SQL Server 2008 中的列名

json - Domino 数据服务 - 更改富文本字段中附加文件的名称

asp.net - 检查 site.master 页面中的状况

通过 docker 的 Rstudio 无法读取/etc/.odbc.ini,只能读取 ~/.odbc.ini