如何检查esent中是否存在数据库?
我可以使用Api.JetAttachDatabase
andApi.JetOpenDatabase
打开一个现有的数据库并使用它Api.JetCreateDatabase
来创建一个新的。但我找不到允许我检查数据库是否存在的 API。
我真的必须捕获异常Api.JetAttachDatabase
来检测数据库是否存在吗?
我会为缺乏细节而道歉,因为我正在度假并且手边没有源代码。:) 这不是我的想法。
o Api.JetAttachDatabase 调用 JetApi.JetAttachDatabase。
o JetApi.JetAttachDatabase 返回错误代码(这是您想要的!)。
o Api.JetAttachDatabase 将其转换为异常。
最大的问题可能是 JetApi.Xxx 可能不公开。它可能是仅限内部的。我不得不问原作者是否有理由不公开。如果没有,我可以在 ManagedEsent 的未来版本中进行更改。
对不起,不确定的答案。
嘿,我只是想知道:像 File.Exists() 这样的 CLR 函数呢?
-马丁
你不应该捕获异常,返回类型返回一个 JET_ERR 类型,如果有问题会通知你,如果你正在寻找一个简单的布尔检查,我相信你可能不走运,或者不得不自己写。
资源 :
http://msdn.microsoft.com/en-us/library/gg294074.aspx
http://msdn.microsoft.com/en-us/library/gg294092.aspx
const JET_errSuccess = 0;
result = JetCreateDatabase(...);
if(result != JET_errSuccess)
{
//throw error
}