当前位置:软件学习 > 其它软件 >>

如何删除DB中的所有附件(不要删除文档)

不好意思的问一个简单的问题.
用什么方法可以删除DB中所有文档的附件.文档不要删除.
用代理程序? 还是怎么操作? --------------------编程问答-------------------- 客户端和代理都可以做,应该遍历All视图中所有文档删除附件就可以 --------------------编程问答-------------------- 如楼上所言。顶一下。 --------------------编程问答-------------------- 谢谢楼上二位的回答,不好意思在下初学.
是否能指点下具体操作.没做过.谢谢 --------------------编程问答-------------------- 谢谢楼上二位的回答,不好意思在下初学.
是否能指点下具体操作.没做过.谢谢 --------------------编程问答-------------------- 建立一个视图,包含数据库中的所有文件。
用set tempdoc=view.getfirstdocument 和set tempdoc=view.getnextdocument(tempdoc)遍历所有文件。
对每个文件,用
forall o in tempdoc.Embeddedobjects
set ojt=tempdoc.GetEmbeddedObject(o)
call ojt.remove()


这段程序我没写出来调试,你自己完善下吧。 --------------------编程问答-------------------- 简单,designer 帮助:

This script removes all file attachments from a document.
Dim doc As NotesDocument
'...set value of doc...
Call doc.RemoveItem( "$FILE" )
Call doc.Save( True, True ) --------------------编程问答-------------------- 楼上,如果是C/S模式的,你那样会不会有问题? --------------------编程问答-------------------- 回Ppmmjjyy你这样的话好像是只针对一个文档的吧.? 

回Oliverfive.谢谢你的提示.

我用代理写这个.可以吗? 您看有什么要补充的.不好意思,我是初学者.
我不敢乱试,因为我这个DB中的资料很重要.我怕误删了.

Dim tempdoc As NotesDocument

set tempdoc=view.getfirstdocument
forall o in tempdoc.Embeddedobjects
set ojt=tempdoc.GetEmbeddedObject(o)
call ojt.remove()
set tempdoc=view.getnextdocument(tempdoc) --------------------编程问答-------------------- 有些代码需要再补充完整,比如:forall后面的结束语句等等。
ppmmjjyy的如果是B/S下,应该也可以的。因为,如果是B/S的话,附件会存放在$file下,按他那方法应该也可以。当然,我都没有试过的。
建议你把原来的数据库拷贝出来做测试。
如果对lotus还不熟悉,不放心的话,可以把代码写完后,发给我,我帮你看下。e-mail:wulingfan@skccsystems.cn --------------------编程问答-------------------- 我用另一个DB试过了.不行.说Script错误. --------------------编程问答-------------------- 建个简单操作的代理,用公式写一句:FIELD $FILE := @DeleteField;,然后在视图中全选文档执行,就可以了。 --------------------编程问答-------------------- 试一下下面的代码:
          Forall  rtitem  In doc.Items '获取文档doc中所有的条目
               If ( rtitem.Type = RICHTEXT ) Then
                    If Not(Isempty(rtitem.EmbeddedObjects)) Then
                         Forall o In rtitem.EmbeddedObjects
                              If ( o.Type = EMBED_ATTACHMENT ) Then
                                   Call o.Remove
                                   Call doc.Save( False, True )
                              End If
                         End Forall
                    End If
               End If
          End Forall --------------------编程问答-------------------- 上面的代码怎么像是我写的呢 --------------------编程问答--------------------
引用 13 楼 lqzmrlc 的回复:
上面的代码怎么像是我写的呢


哎--,那也太巧了。 --------------------编程问答-------------------- ^^^^^^^^^^^^^^^^^^^^^^^
补充:企业软件 ,  Lotus
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,