0

如何检查esent中是否存在数据库?

我可以使用Api.JetAttachDatabaseandApi.JetOpenDatabase打开一个现有的数据库并使用它Api.JetCreateDatabase来创建一个新的。但我找不到允许我检查数据库是否存在的 API。

我真的必须捕获异常Api.JetAttachDatabase来检测数据库是否存在吗?

4

2 回答 2

1

我会为缺乏细节而道歉,因为我正在度假并且手边没有源代码。:) 这不是我的想法。

o Api.JetAttachDatabase 调用 JetApi.JetAttachDatabase。

o JetApi.JetAttachDatabase 返回错误代码(这是您想要的!)。

o Api.JetAttachDatabase 将其转换为异常。

最大的问题可能是 JetApi.Xxx 可能不公开。它可能是仅限内部的。我不得不问原作者是否有理由不公开。如果没有,我可以在 ManagedEsent 的未来版本中进行更改。

对不起,不确定的答案。

嘿,我只是想知道:像 File.Exists() 这样的 CLR 函数呢?

-马丁

于 2013-06-12T02:22:58.843 回答
0

你不应该捕获异常,返回类型返回一个 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
}
于 2013-06-11T13:28:39.533 回答