MySQL에 저장된 이미지파일을 ODBC를 통해 MFC에서 출력하기.

기타/잡다한것

MySQL에 저장된 이미지파일을 ODBC를 통해 MFC에서 출력하기.

WillBe_ 2018. 3. 14. 18:02

이것도 하긴 했는데...그냥 다른 사람이 알려준 것 거의 따라한 거라서 깊은 이해는 없으나 자료도 거의 없고해서 제가 아는만큼 올립니다.

 

 

제목은 'MySQL에 저장된 이미지파일을 ODBC를 통해 MFC에서 출력하기.'입니다. 그러나 내용은 출력을 위해 MySQL과 MFC를 ODBC로 연결하기입니다.(제목과 설명이 맞게 표현된지도 모르겠네요..ㅎㅎ)

 

 

 비쥬얼스튜디어 2015 / MySQL 5.7버전입니다. 설명드리기에 앞서, ODBC는 32bit로 깔려있어야 합니다.

 

 

1. 로컬디스크 C-> windows -> SysWOW64 로 가서 odbcad32.exe를 실행시켜줍니다. 클래스를 이용하여 MySQL에 저장된 데이터들을 사용하고 싶으면 32bit밖에 안 된다고 해서 위의 odbcad32.exe에서 odbc를 추가해줍니다.

 

이전 포스팅과 다른 것은 사용자DSN이 아닌  시스템DSN에서 OBDC를 추가해줍니다.

->사용자DSN은 현재 로그인한 사용자만 정보에 접근이 가능하기 때문에, 모든 사용자가 정보에 접근할 수 있는 시스템DSN으로 추가해줍니다.

 

 

 

odbcad32.exe파일을 실행한 후 좌측 상단의 '시스템 DSN'을 클릭한 후, 오른쪽 상단의 '추가(D..)'을 클릭해줍니다. 위의 PROBLEM은 제가 추가해놓은 드라이버입니다.

 

 

 

추가 버튼을 누르면 위와같은 화면이 나옵니다. 그리고 빨간색으로 표시해둔 부분의 드라이버 중에서 원하는 드라이버를 선택하고 '마침'을 눌러줍니다. '마침'을 누르면 아래와 같은 화면이 나옵니다.

 

 

 

위에 채워놓은 부분들을 채워놓습니다. 그리고 Details >> 를 눌러서 Cursors/Results를 클릭한 후, 맨 위의 Enable dynamic cursors를 체크합니다.

 

여기까지는  MySQL connector/ODBC Data Source Configuration부분을 채우는 부분은 이전의 포스팅과 거의 비슷하기 때문에 이전 포스팅을 참고해주세요.

 

 

위의 과정을 모두 마치면 위의 사진과 같이 드라이버가 추가되어 있습니다.

 

2. 그 후, visual studio에서 mfc application을 새로 만들어줍니다. 저는 Dialog로 했습니다.

 

3. project -> add class -> MFC -> MFC ODBC Consumer 순으로 클릭해줍니다.

 

 

 

project의 add class

 

 

 

MFC에서 MFC ODBC Consumer클릭 후 Add해주기.

 

 

 

Data Souece...클릭

 

 

 

좌층 상단의 '컴퓨터 데이터 원본'클릭. 그리고 위에서 생성해준 ODBC드라이버를 클릭 후, 확인 버튼을 눌러줍니다.

 

 

그럼 위와같은 화면이 나오는데 그냥 'OK'를 눌러줍니다.

 

 

 

사용하고싶은 테이블을 선택 후 'OK'버튼 클릭

 

 

 

경고화면 무시하고 그냥 '확인'클릭

 

 

4. 위의 과정을 다 완료하면 이제 visual studio 상에서 약간 수정을 해주어야 합니다.

우선 위의 과정을 다 완료하면 하나의 클래스와 함께, 그 안에 MySQL의 col들의 명들이 변수명으로 생성됩니다. 저는 데이터의 수를 나타내는 num, 이름 name, 마지막으로 picture로 테이블을 구성하였습니다.

 

 

위에서 보이듯이 새로 생성한 클래스의 헤더 파일에 MySQL의 변수명들을 기반으로 새로운 변수가 생성되었습니다.

 

 

 

다음으로 생성된 클래스에서 약간의 수정을 해야 MySQL의 데이터들을 사용이 가능합니다.

 

1) 맨 위에 m_nDefaultType을 dynaset에서 dynamic으로 수정.

2) '#error Security Issue: The connection string may contain a password' 주석처리

3) 맨 아래에  ";SERVER 블라블라 부분" 지우기. 지운 후의 모습은 return _T("DSN=PROBLEM"); 입니다.

 

 

이러면 끝~~입니다.

-------------------------------------------------------------------------------------------------------------------

클래스가 생성될 때 만들어진 변수들(설명 4에서 맨 위에 사진의 변수들)을 사용하여 사진, 텍스트, 변수들을 출력해주면 됩니다.

 

이미지를 출력하는 부분은...제가 이해 1도 못하고 다른 분이 한 것을 변수만 바꺼서 한 것이라...설명을 해드릴수가 없네요ㅜ,ㅠ

 

지금까지 출력을 위해 MySQL과 MFC를 ODBC로 연결하기 설명이었습니다.