使用新特性NotesQueryResultsProcessor查询数据进行结果处理

大家好,才是真的好。

今天我们讲点开发。

NotesQueryResultsProcessor(简称QRP)是Domino Designer 12.0版本中的新特性,你可以理解它是一个查询结果,用代码生成,使用完毕之后会自动抛弃。

这样的好处就是不会在某些特定的查询情况下,要求管理员或开发人员新建一个Notes视图,这是一种用后即抛视图,不仅可以满足查询功能,而且可以提高我们数据库访问性能,更可以跨库访问和查询等。

即可以从一个或多个Notes数据库中查询所需要的文档结果,如下图所示:
使用新特性NotesQueryResultsProcessor查询数据进行结果处理_第1张图片
如果需要,QRP查询后的结果,还可以生成视图(默认会在一段时间内自动删除),或者你需要的JSON数据,如下图:
使用新特性NotesQueryResultsProcessor查询数据进行结果处理_第2张图片
QRP的主要方法有AddCollection、AddColumn、AddDominoQuery、AddFormula、、ExecuteToJSON、ExecuteToView等;如果要使用该类,必须要先使用AddCollection添加数据集合,然后使用AddColumn添加至少一个列对象,最后可以执行ExecuteToJSON(将结果转换为JSON)或ExecuteToView(将结果生成视图)方法。

比如我们在BBS应用中,新建一个LS代理程序,如下图:
使用新特性NotesQueryResultsProcessor查询数据进行结果处理_第3张图片
撰写如下代码:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim qrp As NotesQueryResultsProcessor
Dim jn As NotesJSONNavigator

Set db=session.Currentdatabase
Set qrp = db.Createqueryresultsprocessor()
'将当前数据库中所有文档都存放到查询结果里
Call qrp.Addcollection(db.Alldocuments, "res_01")
'文档中包含Subject字段,我们这里添加一个Subject列
Call qrp.Addcolumn("Subject","","",SORT_ASCENDING,False,FALSE)
Set jn=qrp.Executetojson()
MsgBox jn.Stringify()

然后我们在Notes前端进行执行:
使用新特性NotesQueryResultsProcessor查询数据进行结果处理_第4张图片
就可以看到转换为JSON数据的结果:
使用新特性NotesQueryResultsProcessor查询数据进行结果处理_第5张图片
是不是非常简单实用?

今天我们就介绍到这里。更多文章可关注微信公号:协作者

你可能感兴趣的:(Notes,Domino,新特性,Domino,Designer,QRP查询)