关于notesvew.GetAllEntriesByKey的问题

function a() as notesviewentrycollection
    .
    .
    .
    set a=notesview.getallentriesbykey(key,true)
    msgbox a.count  '这个是有数量的
endfunction
通过这个方法无法返回一个notesviewentrycollection对象,似乎对象只能存在于方法中,方法结束对象会被释放,有什么解决方法吗?
参与20

16同行回答

jianmjjianmj其它??
问题不在于vc ,而是在于db,你需要将db 移动至 function外,这样你会惊喜发现vc.count 是正确的显示全部

问题不在于vc ,而是在于db,你需要将db 移动至 function外,这样你会惊喜发现vc.count 是正确的

收起
互联网服务 · 2015-11-18
浏览2770
Domino-斌少Domino-斌少软件开发工程师世强先进
定义全局变量,将function调整为sub,试试看~显示全部
定义全局变量,将function调整为sub,试试看~收起
微电子/半导体 · 2015-07-24
浏览1825
aili1wanaili1wan软件开发工程师广州瑞星
代码肯定没问题的,我都测试了,估计是你定义出错,要放在代码的(Declarations)里面显示全部
代码肯定没问题的,我都测试了,估计是你定义出错,要放在代码的(Declarations)里面收起
政府机关 · 2015-09-09
浏览2695
rzf006rzf006软件开发工程师华腾
回复 13# spyxy    12楼的思路我测试后是不可行的,无论vw是否为全局变量都无法获取,但是dc集合不同,即使没有把db定义为全局变量仍然可以获取到。显示全部
回复 13# spyxy


   12楼的思路我测试后是不可行的,无论vw是否为全局变量都无法获取,但是dc集合不同,即使没有把db定义为全局变量仍然可以获取到。收起
互联网服务 · 2015-08-06
浏览2672
rzf006rzf006软件开发工程师华腾
回复 12# aili1wan    虽然已经更换了其他的方式完成任务,但还是比较关心这个话题,我按照你给的思路测试了一下,发现还是不能获取到vc集合,及时vw、vc都定义为全局变量,代码如下:Option Public Option Declare Dim vc As NotesViewEntryCollection Dim vw As NotesView S...显示全部
回复 12# aili1wan


   虽然已经更换了其他的方式完成任务,但还是比较关心这个话题,我按照你给的思路测试了一下,发现还是不能获取到vc集合,及时vw、vc都定义为全局变量,代码如下:
Option Public
Option Declare

Dim vc As NotesViewEntryCollection
Dim vw As NotesView
Sub Initialize
        On Error GoTo er
        Dim vc As NotesViewEntryCollection
        Set vc=a()
        Print |方法外:| + CStr(vc.Count)
        Exit Sub 
er:
        Print Error & "----" & Erl 
End Sub
function a() As NotesViewEntryCollection
        On Error GoTo er
        Dim ss As New NotesSession
                
        Dim db As NotesDatabase
        Set db=ss.Currentdatabase
        Dim dc As NotesDocumentCollection
        Set vw=db.Getview("vwDaibanqingjia")
       
        Set vc=vw.GetAllEntriesByKey("Admin", True)
        Print "方法内:"+CStr(vc.count)+"
"         Exit Function er:         Print Error & "+++" & Erl End Function
但是使用db.search或vw.getalldocumentsbykey的方式获取dc集合的时候无论是否定义全局变量都是可以获得到的收起
互联网服务 · 2015-08-06
浏览2599
spyxyspyxy系统运维工程师意能软件
同12楼的思路。很早前发现取得vc\dc后,把上层view\db 取消后,vc\dc的内容就会清空。 所以之前说定义为全局变量,是指相关用到的变量都定义为全局变量,不用了再赋nothing.显示全部
同12楼的思路。
很早前发现取得vc\dc后,把上层view\db 取消后,vc\dc的内容就会清空。 所以之前说定义为全局变量,是指相关用到的变量都定义为全局变量,不用了再赋nothing.收起
软件开发 · 2015-08-05
浏览2564
aili1wanaili1wan软件开发工程师广州瑞星
问题原因:notesviewentrycollection属于view的附属,因此在函数返回notesviewentrycollection,请将view定义为公共对象。代码调整如下即可。Option PublicOption DeclareDim vw As NotesViewDim vc As NotesViewEntryCollectionSub Initialize      &nbs...显示全部
问题原因:notesviewentrycollection属于view的附属,因此在函数返回notesviewentrycollection,请将view定义为公共对象。代码调整如下即可。

Option Public
Option Declare
Dim vw As NotesView
Dim vc As NotesViewEntryCollection
Sub Initialize
        On Error GoTo er
        Call a()
        Print "方法外:"+CStr(vc.count)+"
"
        Exit Sub
er:
        Print Error & "----" & Erl
End Sub
Sub a()
        On Error GoTo er
        Dim ss As New NotesSession
        Dim db As NotesDatabase
        Set db=ss.Currentdatabase
        Set vw=db.Getview("view_BTTJ2")
        Set vc=vw.GetAllEntriesByKey("张三", True)
        Print "方法内:"+CStr(vc.count)+"
"
        Exit Sub
er:
        Print Error & "+++" & Erl
End Sub收起
政府机关 · 2015-07-31
浏览2596
clockmakerclockmaker项目经理
就是用List对象存数据,返回list。显示全部
就是用List对象存数据,返回list。收起
软件开发 · 2015-07-28
浏览2646
rzf006rzf006软件开发工程师华腾
回复 9# clockmaker    什么意思,不太明白,请指教下显示全部
回复 9# clockmaker


   什么意思,不太明白,请指教下收起
互联网服务 · 2015-07-27
浏览2790
clockmakerclockmaker项目经理
不要在这个上面转圈了,你把需要的数据放到map中带回来吧。显示全部
不要在这个上面转圈了,你把需要的数据放到map中带回来吧。收起
软件开发 · 2015-07-27
浏览2669

提问者

rzf006
软件开发工程师华腾
擅长领域: 安全

相关问题

相关资料

问题状态

  • 发布时间:2015-07-22
  • 关注会员:2 人
  • 问题浏览:17888
  • 最近回答:2015-11-18
  • X社区推广