从lotus数据库导出数据的最佳方法是什么,该数据库包含超过100k的文档,包含大量字段?不需要应用程序逻辑,只需存储在应用程序中的数据。数据库不包含每个文档的表单设计元素。林雷不是我们的选择。
答案 0 :(得分: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
答案 1 :(得分:0)
将数据作为XML获取到文件的有效且简单的方法是使用以下URL检索它:
/view?ReadViewEntries&Start=1&Count=1000
您将有一个代码以1000块为单位获取所有100K(此值可能会根据数据量进行调整,但如果它太大则服务器可能会挂起)。
视图包含所有文档,所有项目都包含在列中。
这种方法给服务器HTTP任务带来了很多负担,因此最好在安静的时间运行它。
如果您需要将数据传输到Excel,那么您必须查看当前代理并查看是否可以对其进行优化。