函数返回文档对象的问题
来源:互联网 发布:mac版inode安装教程 编辑:程序博客网 时间:2024/05/16 19:26
下面的函数是copyfunc() 拷贝一个文档到指定的数据库中,然后返回拷贝生成的文档。
Function copyfunc() As NotesDocument
Dim session As New notessession
Dim db As notesdatabase
Dim doc As notesdocument
Dim dbarc As notesdatabase
Set db = session.currentDatabase
filename = "a_"+DB.filename
Set dbarc = session.getDatabase(DB.server,"archive/"+filename,False)
Set doc = session.documentcontext
Set copyfunc = doc.CopyToDatabase(dbarc)
'Set copyfunc = testdoc
End Function
-------------------------------------------------------------------------------------------
但在调用该函数时出现一个问题。
Set testdoc = copyfunc()
If testdoc Is Nothing Then
Messagebox "111111111111"
End If
返回的文档对象testdoc是空的。用debug跟踪,在执行到函数中时,代码运行正常,文档拷贝并返回。但在返回到函数调用处后,testdoc文档对象“消失”。
1、为什么返回后没有了呢?是不是返回方式上有问题,于是将原来的函数返回对象的方式改为参数传递的方式。即Function copyfunc(testdoc as notesdocument)。跟踪调试时,问题仍然一样。
2、不是函数返回的问题,那么问题就在函数里面了,但函数执行过程看起来很正常啊。那么问题是在哪里呢?我联想到以前曾经遇到一些数据库对象没有打开的问题,会不会是函数在结束时,服务器清除了数据库对象,而导致返回的文档被关闭?于是改变函数体和参数,传递拷贝到的数据库对象到函数,经过处理后返回文档对象。经过测试正常。
结论,1、在处理其他数据库中的文档时,注意数据库对象和其文档对象处于同一代码中。如果不在同一代码中,其文档对象可能会无效。2、注意函数变量的生命期。在函数结束时,局部变量都将被清除。
- 函数返回文档对象的问题
- 函数的返回值和临时对象的问题
- 返回临时对象时的拷贝构造函数问题
- 【C++总结】关于函数返回对象析构的问题
- 函数返回对象和返回对象的引用的区别
- 函数返回值的问题
- 函数返回值的问题
- 函数返回值的问题
- Self Summary: C++函数返回引用和指针的问题,局部对象与new对象的问题
- 浅解返回值式的函数中临时对象的问题
- javascript中构造函数的返回值问题和new对象的过程
- javascript中构造函数的返回值问题和new对象的过程
- avascript中构造函数的返回值问题和new对象的过程
- 当函数返回对象的引用?
- c++返回函数局部对象的引用
- C++成员函数返回对象的引用
- 函数返回对象的有效区
- c++返回函数局部对象的引用
- Delphi中输入年、月、日及润年平年的判断
- 浅议虚拟方法
- C#中的字符串处理
- java dictionary
- MS-SQL手册
- 函数返回文档对象的问题
- 产品经理做什么事情?
- 电子书
- 2005.11.04-2005.11.06
- e点工作室的网站,我基本作成了!
- 开山了
- J2ME简单灵活实现手机中自动换行显示文本
- Blog样式定制
- MS Jet SQL for Access 2000中级篇 (I)