질문과 답변

ODBC 연결에서 MS 예전의 mdb는 연결되는데 accdb는 에러납니다 왜? 날짜:2020-2-13 2:34:29 조회수:72
작성자 : Program
포인트 : 7
가입일 : 2020-02-13 11:49:35
방문횟수 : 5
글 1개, 댓글 1개
소개 : 재미있는 프로그램
작성글 보기
쪽지 보내기

 // 연결 타입에 따라 MDB 또는 SQL 서버, 또는 DSN에 연결한다.
 SQLAllocHandle(SQL_HANDLE_DBC,hEnv,&hDbc);
 switch (Type) {
 case 1:
  wsprintf((TCHAR *)InCon,L"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=%s;",ConStr);
  //wsprintf((TCHAR *)InCon,L"DRIVER={Microsoft Access Driver (*.accdb)};DBQ=%s;",ConStr);
  ret=SQLDriverConnect(hDbc,NULL,(SQLWCHAR *)InCon,sizeof(InCon),OutCon,
   sizeof(OutCon),&cbOutCon, SQL_DRIVER_NOPROMPT);
  break;
 case 2:
  wsprintf((TCHAR *)InCon, L"FileDsn=%s",ConStr);
  ret=SQLDriverConnect(hDbc,NULL,(SQLWCHAR *)InCon,sizeof(InCon),OutCon,
   sizeof(OutCon),&cbOutCon, SQL_DRIVER_NOPROMPT);
  break;
 case 3:
  ret=SQLConnect(hDbc,(SQLWCHAR *)ConStr,SQL_NTS,(SQLWCHAR *)UID,SQL_NTS,
   (SQLWCHAR *)PWD,SQL_NTS);
  break;
 }

ODBC로 데이타베이스연결 코드인데 case 1번에서 (*.mdb)는 연결이 잘 되어 사용하고 있습니다

그런데 MS에서 언제가부터 엑세스프로그램에서 mdb를 없애고 AccDB로 바꾸어 놓았더군요

그래서 아래줄 코드로 똑 같이 (*.accdb) 했는대 에러(DB를 찾을 수 없다든가 뭐 모르겠습니다) 도무지 연결에러나고

안되어 할 수 없이 mdb를 엑세스로 불러와서 디자인을 다시하여 mdb로 저장(여기서 accdb로 확장자 주어도 안됨)하여

부득불 그냥 사용하고 있는데. ..

혹시 accdb를 연걸하여 사용할 수 있는 방법을 아는 분이 계신지?

참 그리고 저자께서 이 부분 프로그래밍을 리스트컨트롤로 해 놓았는데 리스트헤드가 SQL질의문장에 따라

(Select * from tblCountry 등등) 칼럼수가 변하며 대응하는 것이 너무 멋진 프로그래밍 이었습니다 감사합니다
(그런데 편집창이 불안정하게 동작합니다 특히 엔터칠때)


목록보기 삭제 수정 신고 스크랩

소엔 2월17일 12:02:33  

소형 파일 DB인 Access가 마이크로소프트 입장에서는 별로 쓰는 사람도 없고 다른 대체품이 워낙 많아 지원이 좀 시원찮은 거 같습니다. 하위 호환성도 딱히 잘 유지하지 않고 드라이버도 여러번 바뀌었습니다. 검색해 보니 Access용 드라이버를 버전에 꼭 맞게 다운로드받아 설치해야 하는 거 같습니다. 다음 사이틀 방문해 보십시오.

https://www.microsoft.com/ko-kr/download/details.aspx?id=13255

여기 외에도 Access 드라이버를 배포하는 곳이 많은데 32비트와 64비트도 잘 구분해야 하고 꼭 맞는 걸 찾기가 쉽지 않을 거 같네요. 개발 환경 갖추어 놓고 이것 저것 될 때까지 설치해 보고 잘 동작하는 걸 찾아 봐야죠.

Program 2월17일 9:54:43  

답변 감사드립니다 아무래도 그냥 mdb로 사용해야겠습니다 AccDB로 갈아탈려고 했는데 잘 안될 것 같습니다. 하긴 취미로 만든 5,000명 정도의 인사발령 프로그램이었는데... 더군다나 나는 데이타베이스는 옵션으로 자료 보관정도로의 기능을 생각하였습니다. 그냥 응용프로그램에서 5,000명을 정렬,검색,부서찾기,호봉등 자체기능을 이용하고 DB는 기존 저장된 자료를 한번 더 DB에 저장하는 정도의 목적외에는 아직 실력이 부족해서 사용할 일이 없습니다. 아무튼 mdb저장 후 이를 연결하여 간단한 SQL문으로 대화상자에서 리스트컨트롤에 자료를 뿌려주는 코딩이 참 매력있었습니다. 다시 한번 감사드립니다


로그인하셔야 댓글을 달 수 있습니다.