1

从包含超过 100k 个具有很多字段的文档的 Lotus 数据库中数据的最佳方法是什么?不需要应用程序逻辑,只需要存储在应用程序中的数据。数据库不包含每个文档的表单设计元素。LEI 不是我们的选择。

  1. 目前我们使用java代理导出数据到MS EXCEL,但是运行时间太长。
  2. 可能会更快,
  3. ...或者是否有任何可以足够快的替代解决方案?
4

2 回答 2

2

获取所有内容的最快方法可能是导出到 DXL,然后读取该 DXL 以获得所需的数据。

这是一些示例代码,用于导出数据库中记录的第一个选择(LotusScript 代理)。写入名为 C:\temp\data.xml 的文件。

Option Public
Option Declare

Sub Initialize
    Dim nsn As New NotesSession
    Dim ndb As NotesDatabase
    Dim ndc As NotesDocumentCollection
    Dim ndo As NotesDocument
    Dim ndxle As NotesDXLExporter
    Dim nst As NotesStream
    On Error Resume Next

    Set ndb = nsn.CurrentDatabase
    Set ndc = ndb.UnprocessedDocuments
    Set ndo = ndc.GetFirstDocument

    Set nst = nsn.createStream
    If (Not(nst.Open( "c:\temp\DATA.xml" ))) Then
        Print "Open File DATA.xml Failed" 
    End If
    nst.truncate

    Set ndxle = nsn.CreateDXLExporter (ndo, nst)

    ndxle.Convertnotesbitmapstogif = true ' Not always needed.

    Call ndxle.Process()
    MsgBox ndxle.Log
    Call nst.Close()
End Sub
于 2013-01-23T10:43:22.907 回答
0

将数据以 XML 格式保存到文件中的一种有效且简单的方法是使用如下 URL 检索它:

/view?ReadViewEntries&Start=1&Count=1000

您将有一个代码以 1000 块的形式获取所有 100K(此值可能会根据数据量进行调整,但如果它太大,服务器可能会挂起)。

该视图包含所有文档和所有项目作为列。

这种方法给服务器 HTTP 任务增加了很多负载,因此最好在安静的时间运行它。

如果您需要将数据导入 Excel,则必须查看当前代理,看看是否可以对其进行优化。

于 2013-01-23T10:12:57.513 回答