'Microsoft.Jet.OLEDB.4.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다. (64bit Client, VB 2005)

|

갑자기 어떤 프로그램을 짜야겠다는 생각이 불끈 들었다. 애초에 C 밖에는 다룰줄 모르는 무지몽매한 인간이지만, 거룩하신 윈도우님의 품 안에서 돌릴만한 어플리케이션을 순수한 C로 짤 수는 없는 노릇. 이럴때는 비주얼 베이직을 가지고 씨름을 하곤 한다. 이놈의 비베가 UI 만드는 데에는 정말 탁월할만큼 뛰어난 점을 가지고 있기 때문이고. (덕분에 좀 무겁다 싶은 로직은 하루죙일 걸린다. 최적화를, 내 일도 아니므로 별 신경 안쓰는 것도 있겠다. ...)

문제는 이런 생각이 대략 2, 3년 주기로 한번씩 온다는 것. 한번 VB 5.0(맞나?)에서 씨름을 하고, 좀 익숙해졌다 싶으면 다음번에는 VB 6.0에서 씨름을 하고, 이번에는 VB 2005다. 젠장. 예전에는 이렇게 된것 같은데 이번에는 이렇게 되지 않는게 꽤 된다. MSDN에서 설명해주시는 것은 그냥저냥 긁어붙이면 되는데 찾기 힘든 것들도 꽤 있고.
대략 어떻게 어떻게 비베 어플리케이션에 엑셀 파일을 붙이고, 엑셀 파일에서 데이터를 쭉 로딩하여 비베 폼에 불러들이는 것을 완성. 그 다음 로직 돌리는거야 대충대충 하면 되는거고.

그렇게 열심히 맨땅에 헤딩을 하다가, 드디어 완성된 것을 지인들에게 쭉 넘겼다. 그런데 그 중 한놈이 이런 에러가 떴다고 던져주는 것이다.

어이 자네, 어디서 이런 오류를 가져왔는가?;;


그래서 뒤져봤다.

참고 사이트 : http://walnuttree.tistory.com/114 (IIS 에서 위와 같은 문제를 해결하는 방법이 자세히 나와 있다.)

아. 64bit에서는 JET이라는 놈을 지원하지 않는다는 것이군. 문제를 제기한 놈에게 물어보니 역시나 64bit를 쓴다고 한다. 확 OS를 바꾸라고 하려다가 꾹 참고 다시 내용을 살펴보니, 어라. IIS에 관한 내용만 쭉 나와 있네. 내 경우와 맞는 글이 아닌가보다. 혹시나 어플리케이션을 32bit 모드로 강제 설정해서 돌릴 수 있냐고 물어보니 그렇게 해도 동일한 오류가 발생한다고 한다. 젠장. 다시 찾아봐야겠군.

참고 사이트 : http://blog.naver.com/PostView.nhn?blogId=wizebee&logNo=53301095 (빙고! 찾았다.)

일단 최신 버전의 JET이 깔려 있는지 확인하는 것이 우선. 지인에게 Jet 4.0 최신 서비스 팩 업데이트를 확인시켰다. (위 링크된 포스팅에도 나와 있듯이, http://support.microsoft.com/kb/239114/KO/ 사이트에서 확인할 수 있다.) 이제 x86 모드로 컴파일만 하면 되는데, 이놈의 까막눈은 메뉴 찾는데도 한참이나 걸리네. (처음에는 없는줄 알았다;;) 어쨌든, 대략 비베에서 x86 모드로 컴파일하는 방법은 이렇다.

프로젝트 → 속성으로 가서,


컴파일 → 고급 컴파일 옵션을 선택하면 별도의 창에서 가장 하단의 대상 CPU를 x86으로 수정해 주면 되겠다.


자, 이제 해결. 짝짝.


And