使用odbc和NotesSQL从.net应用程序导出Lotus Notes附件

本文关键字:Lotus Notes 附件 应用程序 net odbc NotesSQL 使用 | 更新日期: 2023-09-27 18:16:45

我尝试使用interop.domino.dll导出附件,但似乎这个dll不支持64位操作系统:https://www-304.ibm.com/support/docview.wss?uid=swg21454291这是代码:

    public void GetAttachments()
    {
        NotesSession session = new NotesSession();
        session.InitializeUsingNotesUserName("user", "password");
        NotesDbDirectory DbDirectory = session.GetDbDirectory("server");
        NotesDatabase NotesDB = DbDirectory.OpenMailDatabase();
        NotesDocumentCollection documents = NotesDB.UnprocessedDocuments;
        NotesDocument currentDocument = documents.GetFirstDocument();
        do
        {
            if (currentDocument.HasEmbedded  && currentDocument.IsValid && !currentDocument.IsDeleted)
            {
                List<NotesEmbeddedObject> items = currentDocument.EmbeddedObjects;
                items.ForEach(item => item.ExtractFile("C:''attachments''"));
            }
            currentDocument = documents.GetNextDocument(currentDocument);
        } while (currentDocument != null);
    }

所以现在我试图通过NotesSQL来完成这个任务。这可能吗?

使用odbc和NotesSQL从.net应用程序导出Lotus Notes附件

不,我不相信你可以通过NotesSQL获得附件。

然而,Domino COM类可以在64位操作系统上使用,但是它们必须从32位代码中调用,因此您必须在Visual Studio项目中正确设置选项以构建32位应用程序。

你是正确的,这些类在64位上是不被支持的。这是我多年来一直向IBM抱怨的事情,但是我可以告诉你,人们确实在使用它们,而且它们大多数都有效。只有几个已知的问题——特别是返回设计元素列表(例如表单、视图等)的方法已知存在问题。此外,根据机器上安装的内容和顺序,您可能会发现在使用这些类之前必须手动注册nlsxbe.dll。当然,如果你发现任何其他问题,你得自己解决。IBM不会帮你的。当然,社区——这里是StackOverflow、IBM的DeveloperWorks Notes和Domino论坛、OpenNTF以及其他各种地方——将尽最大努力提供帮助。但是缺少官方支持是你需要考虑的问题。

您可以考虑的另一种选择是Domino Data Service,它是Domino的REST API,但是您的Domino服务器需要是最新版本才能使用它。看到这里。

为什么不创建一个Lotusscript代理来将所有附件导出到驱动器中的一个文件夹中,然后将该文件夹复制/移动到您想要的另一台机器上呢?有兴趣知道不这样做的原因。

你可以创建一个简单的视图与附件url的列和使用"view?readviewentries"来加载。net应用程序中的附件url列表并下载附件。

你可以在url中使用Count和Start参数来读取下一个附件列表

为这工作,http任务需要运行和数据库ACL匿名需要是最小的读者访问。