供参考...SaveAs in 2010明白了
Acad .Net 程序集中似乎存在一个问题,在尝试在数据库上使用 SaveAs 方法时,该程序集并非始终有效。问题在于调用像Db.SaveAs( path, DwgVersion.Current这样的方法;
为了解决我遇到的问题,我不得不称它为
Db.SaveAs(path,true,DwgVersion.Current,Db.SecurityParameters);
此页面确认了问题,该页面还提供了解决方案:
[ http://www.private.peterlink.ru/poleshchuk/cad/2009/Bug2apie.htm ]
**** Hidden Message ***** 谢谢蒂姆,这是今天派上用场了。我有一个简单的包装器,我喜欢用它来进行数据库交互。当文件系统中只有我一个人时,它工作得很好,但是我的老方法只是一个滋生竞争条件的温床,如果其他人碰巧在我保存之前打开了文件,它就会阻碍这个过程。我以前只是打开文件进行读取,以便以后的数据库。SaveAs(db,全名db。OriginalFileVersion)不会因文件共享违规而崩溃 public static void performactionon Database(此操作 databaseaction,string dwgpath,file openmode file openmode = file openmode。OpenForReadAndAllShare)。
{。
使用(var db = new Database(false,true))。
{。
dbReadDwgFile(dwgpath,fileOpenMode,true,null);。
database action(db);。
}。
} var db Action = new Action ((db)= > 。
{。
使用(var tr = db,transaction manager . start transaction())。
{。
。
trcommit();。
}。
dbCloseInput(真);。
dbSaveAs(db,文件名,数据库。security参数);。
});。
dbAction,PerformActionOnDatabase(DWG path,FileOpenMode。OpenForReadAndWriteNoShare);。
页:
[1]