检查数据库是否存在

时间:2013-06-11 12:25:16

标签: c# esent

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

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

我是否真的必须从Api.JetAttachDatabase捕获异常以检测db是否存在?

2 个答案:

答案 0 :(得分:1)

我会因缺乏细节而道歉,因为我正在度假并且没有方便的源代码。 :)这是我的头脑。

o Api.JetAttachDatabase调用JetApi.JetAttachDatabase。

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

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

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

抱歉答案不确定。

嘿,我只是想知道:CLR函数怎么样,比如File.Exists()?

-Martin

答案 1 :(得分:0)

你不应该捕获异常,返回类型返回一个JET_ERR类型,让你知道是否有问题,如果你正在寻找一个简单的bool检查,我相信你可能运气不好,或者必须自己写。

来源:

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
}