2013-06-11 6 views
0

데이터베이스가 esent에 존재하는지 어떻게 확인합니까?데이터베이스가 존재하는지 확인하십시오.

기존 데이터베이스를 열고 Api.JetCreateDatabase을 사용하여 새 데이터베이스를 만들 수 있습니다. 하지만 DB가 있는지 여부를 확인할 수있는 API를 찾을 수 없습니다.

db가 존재하는지 감지하려면 실제로 Api.JetAttachDatabase에서 예외를 잡아야합니까?

답변

1

나는 세부 사항의 부족을 끼쳐 드려 죄송합니다. :) 이것은 내 머리의 맨 위에 있습니다.

o Api.JetAttachDatabase는 JetApi.JetAttachDatabase를 호출합니다.

o JetApi.JetAttachDatabase는 원하는 오류 코드를 반환합니다.

o Api.JetAttachDatabase가 예외로 변환합니다.

가장 큰 문제는 JetApi.Xxx가 공개되지 않을 수 있습니다. 내부 전용 일 수도 있습니다. 원작자가 아닌 이유를 원 저자에게 묻어야합니다. 없으면 ManagedEsent의 향후 릴리스에서 변경 작업을 수행 할 수 있습니다.

불확실한 답변을 드려 죄송합니다.

안녕하세요, 저는 궁금한 점이 있습니다. File.Exists()와 같은 CLR 함수는 어떨까요?

-martin

0

예외를 잡을 필요가 없어야합니다. 반환 유형은 문제가있는 경우 알려주는 JET_ERR 유형을 반환합니다. 간단한 bool 확인을 원할 경우 운이 좋지 않을 수도 있습니다. , 또는 자신의 글을 써야합니다.

자료 : I 휴가 중이 소스 코드가 편리하지 않기 때문에

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 
} 
+0

반환되는 코드는 관리되는 래퍼에서 사용할 수 없습니다. – jgauffin

+0

오, 그 사람, 완전히 그리워, 내 나쁜. 잡으려고 시도하는 것 같습니다 :-( –