独立程序读取E3D数据库
E3D(Everything3D)提供了 Aveva.E3D.Standalone.dll,可以同这个来打开数据库,并遍历数据库。
下面是示例代码,需要在项目中引入 Aveva.E3D.Standalone.dll、Aveva.Core.Utilities.dll 和 Aveva.Core.Database.dll。启动程序是需要先在命令提示符中执行
"%E3D安装目录%\evars.bat" "%E3D安装目录%"
来初始化 E3D 有关环境变量,再执行程序。
using System;
using Aveva.E3D.Standalone;
using Aveva.Core.Utilities.Messaging;
using Aveva.Core.Database;
namespace open_cata_test
{
class Program
{
static void Main(string[] args)
{
try
{
Standalone.Start();
PdmsMessage msg;
if (!Standalone.Open("APS", "SYSTEM", "XXXXXX", "ALL", out msg))
{
Console.Error.WriteLine(msg.MessageText());
return;
}
var mdb = MDB.CurrentMDB;
Console.WriteLine(String.Format("mdb = {0}", mdb.Name));
var dbArr = mdb.GetDBArray();
foreach(var db in dbArr)
{
if (db.Type != DbType.Catalogue)
{
continue;
}
Console.WriteLine(String.Format(" db = {0}", db.Name));
}
Standalone.Finish();
} catch (Exception ex)
{
Console.Error.WriteLine(ex.StackTrace);
}
}
}
}