About Document.SendStringToExecute()
我正在使用C#中的一个命令,我们根据某些条件初始化一组文档。它涉及正在创建、编辑和保存的文档队列。我们这样做的方式是创建文档,切换到它,然后使用隐藏命令SendStringToExecute()进行初始化,将其保存到文件中,然后检查队列中是否有更多的文档,并重复执行。这样,每个文档都在其自己的文档上下文中编辑,我们需要这样做,因为我无法深入了解它在大多数情况下都能正常工作,但很常见的情况是,它会以一种不可复制的方式随机崩溃。经过一些测试,当SendStringToExecute()的第二个布尔参数(即WrapupInactivateDoc)设置为true时,问题似乎消失了。然而,唯一的问题是SendStringToExecute()每次调用时都会抛出一个eInvalidInput错误,然后在所有命令完成时崩溃。这些文件在其他方面完好无损,这对我们的客户来说既不方便又不好
所以我想知道,wrapUpInactiveDoc=true实际上做了什么?
为什么会引发eInvalidInput异常,以及如何以不引发该错误的方式做到这一点。
**** Hidden Message ***** 后退一步...我们在谈论多少幅画?几十个?几百个? 最多可能是1或2打。或者只有少数。这真的取决于项目。
但是为了稳定,让我们假设最坏的情况。有可能有太多吗? 嗯,即使我在完成每个文档后关闭它,问题似乎也没有改变。 保存是在您的代码中完成的,还是通过代码完成的,取决于发送字符串
我记得读过关于使用<em>WrapupInactivativeDoc</em>的“某处”建议,但很抱歉,年龄影响了我的记忆力
事后添加:
您是否在事务范围内执行保存? 保存是由数据库方法SaveAs()在事务关闭后完成的。 我最终能够通过在文档上执行数据库方法CloseInput(true)来停止崩溃,然后再处理另一个文档。不要问我为什么
页:
[1]