MFC ODBC SQL TEST

귀차니즘으로 인해 대충 대충 내가 알아볼 수 있을 정도로만 만들었다.
일단 MsSql 서버를 윈도우 환경에 설치
MFC에서 mssql로 접속을 하기 위해서는 자신의 pc에 mssql DSN을 설정 해주어야한다.
시작->제어판->관리도구->데이터원본(ODBC)를 클릭하면 아래와 같은 화면이 나온다.
mssql에 접속하기 위한 DSN을 설정 해주므로 시스템DSN탭에서 추가를 누른다.
(만약 mdb파일을 사용하려면 사용자 DSN에 추가)

mssql 서버와 연동을 할것이므로 Sql Server를 선택한다.

이름은 임의로 DBTest로 정했고 아래 설명은 자신이 알아볼 수 있게 아무거나 입력한다.
서버는 Mssql에 깔려 있는 IP를 쓴다. 나는 내 피시에 깔았기 때문에 내 ip를 그대로 썼다.
당연히 알겠지만 자신의 ip를 그대로 써도 되고 127.0.0.1을 써도 된다.

사용자가 입력한 로그인 ID와 암호 블라블라~~를 선택한 후 로그인 ID 암호를 입력후 클라이언트 구성을 클릭

내가 이것때문에 엄청 고생했다. 알고 보면 별것 아니지만 안될때는 아무리 찾아봐도 정확한 문제가 뭔지 안나오더라..아무튼 네트워크 라이브러리에서 TCP/IP를 선택해 주고 Default로 동적으로 포트 번호를 받게 설정이 되어있다. 하지만 동적으로 받으면 무슨 이유인지 안된다고 하더라..나도 대충 봐서…-_-;;;;
그래서 동적 포트 확인 체크란을 해제하고 포트번호를 써준다. (이거 동적으로 할당하면 밑에 그림에서 다음 버튼 누를 때 에러 발생한다.) 확인 누르면 바로 위에 화면이 뜰것이다 그러면 그냥 다음 누르고

다음을 누른다.

그리고 마침

그럼 네모와 같은 것이 하나 추가 되었으면 설정은 끝났다. 확인!

MFC는 접한지 얼마 되지 않아 엄청나게 허접스럽게 만들어 놓았다. -_-;; (난 Qt전문가)
그냥 버튼만 누르면 메세지 박스에서 칼럼의 값이 하나씩 찍힌다.
아래는 다이얼로그의 버튼을 눌렀을 때 실행하는 함수이다.
///////////////////////////////////////////////////////////////
void CDBTestDlg::OnDBTest()
{
// TODO: Add your control notification handler code here
CDatabase db;
//db.OpenEx(_T(“DSN=UserList”));
db.OpenEx(_T(“DSN=DBTest;UID=sa;PWD=rootroot”)); //자신이 설정해주었던 DSN이름을 쓰고 id,pass를 입력
CRecordset record(&db);
record.Open(CRecordset::snapshot,”SELECT * FROM UserList”);//UserList라는테이블이 이미 만들어져 있다.
short col = record.GetODBCFieldCount();
char *data = NULL;
for(int p=0 ; p<2 ; p++)
{
//행단위
while( ! record.IsEOF())
{
//필드단위
for( short i=0; i < col; i++  )
{
CString tmp;
//이 함수는 char*형을 지원하지 않는다
record.GetFieldValue(i, tmp);
data = (char*)malloc(tmp.GetLength()+1);
strcpy(data, tmp);
this->MessageBox(data);
//cout<<data<<“\t”;
free(data);
}
record.MoveNext(); //다음행으로 이동
}
}
}
실행하면 DB에 있는 table의 필드를 차례 차례 검색해서 메세지박스에 보여진다.

//Mysql도 거의 비슷하다. 관리도구->데이터원본->시스템DSN에서 추가를 눌러 mysql을 선택하면 된다.
(물론 Mysql Server가 설치가 되어잇거나 클라이언트가 설치가 되어있어야 시스템 DSN에 보인다.사실 깔아놓고 확인한거라 정확한지는 모르겠다.–;; 안보이시면 까시라~)
//mysql을 외부 ip와 연동하기 위해서는 도스창에서 mysql 열던지 mysql client로 mysql로 들어가서 아래와 같이 설정을 해주어야지
접속이 가능하다.
도스창에서 접속방법:
시작->실행->cmd입력
c:\) mysql -u 아이디 -p
엔터를 치면 비번 입력하라는 메세지. 비번 입력
mysql> grant all privileges on db명.* to 사용자계정@’IP주소’
identified by ‘비밀번호’ with grant option;
mysql> grant reload,process on *.* to admin@localhost;
mysql> FLUSH PRIVILEGES;
============================================================================================
점점 더 귀차니즘에 의해 ODBC_Oracle 연동도 여기서 적는다. 이것 또한 비슷하지만 약간 더 복잡하다.
일단 오라클 클라이언트를 깐다.
http://pureholic.net/604 를 참고하여 작성하였다.
아래 사이트로 가서  밑의 두개의 파일을 받는다.
다운주소 : http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html
instantclient-basic-win32-11.2.0.7.0.zip (46,734,555 bytes)
instantclient-odbc-win32-11.2.0.7.0.zip (728,899 bytes)
위의 두 파일을 공통된 폴더에 압축을 푼다. 기본적으로 위의 버젼일 경우에는 instantclient_11_2 을 기준으로 풀리게 되어있다. 나중에 환경변수 설정을 용이하게 C:\oracle\instantclient_11_2 로 해제하여 모아두었다.
c:\Oracle\instantclient_11_2 아래에 보면 odbc_install.exe 가 있다.
odbc_install.exe 파일을 클릭하면 쉽게 ODBC드라이버가 자동으로 설치된다. 실패할 경우에는 dll 파일이 정상적으로 존재하는지 확인하고 부족하다면 새로 다운 받아 설치하자.
클라이언트가 설치 되었으면  제어판->관리도구->데이터원본(ODBC)->Driver탭에 방금 설치한 클라이언트가 등록이 되어 있으면 성공이다.
그럼 이제 환경 변수를 설정해 준다.
바탕화면의 내 컴퓨터 오른쪽 마우스를 클릭하여
속성->고급->환경변수를 클릭

Path는 이미 만들어 져 있기 때문에 편집을 눌러서  그림과 같이 추가해준다.
C:\oracle\instantclient_11_2

당연한 얘기지만 파란색의 경로를 추가하기 전에 바로 앞에 세미콜론으로 경계를 그어주어야한다.

NLS_LANG은 새로 만들기를 눌러 KOREAN_KOREA.AL32UTF8를 추가해준다.

ORACLE_HOME도 새로 만들기를 눌러 C:\oracle\instantclient_11_2 를 추가해준다.

TNS_ADMIN 도 새로 만들기를 눌러 C:\oracle\instantclient_11_2 를 추가해준다.
tnsnames.ora라는 파일을 하나 만들어서 아래와 같이 설정
tnsnames.ora 설정
tnsnames.ora는 PC에서 Oracle로 붙기 위한 설정 파일이라고 생각하면 된다. 아래의 샘플을 보고 자신의 서버에 맞게 세팅하자. 아래의 설정은 외부서버에 접속하기 위한 기본세팅.
C:\oracle\instantclient_11_2 아래에 저장
====================================tnsnames.ora====================================
ORCL=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=210.220.211.3)(PORT=))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SID=SID네임)
)
)
==========================================================================================
아래 그림은 본인이 접속할 오라클 서버이다.

자 그럼 다시 시작->제어판->관리도구->데이터원본(ODBC)->시스템DNS에서 추가를 누른다.

방금전 설치한 오라클 클라이언트를 선택하고 마침을 클릭

Data Source Name은 나중에 MFC프로그램에서 DSN에 넣을 이름이고 TNS Service Name은 tnsnames.ora 파일 제일 위에 선언한 이름이다. 오라클에 접속할 user id를 입력하고 Test connection을 눌러보자.

password입력후 OK!

아래와 같은 메세지가 뜨면 연결이 성공한 것이다.

그럼 프로그램은 MSSql이나 mysql이나 Oracle이나 모두 똑같다. DNS 이름과 아이디 패스워드만 각각 알아서 수정해 주면 DB접속이 모두 가능하다.
한가지 더!
오라클 서버에 접속하기 위해서 토드라는 프로그램이 필요하다. Oracle 웹페이지에 가면 freeware로 토드 프로그램을 다운 받을 수 있다.
[출처] [MFC] ODBC DB연결|작성자 황토마루

“MFC ODBC SQL TEST”의 55개의 댓글

  1. Hello! Someone in my Myspace group shared this website with us so I came to look it over.

    I’m definitely enjoying the information. I’m book-marking and will be tweeting this to my followers!
    Wonderful blog and brilliant style and design.

  2. Your style is very unique in comparison to other people I’ve read stuff from.
    I appreciate you for posting when you’ve got the opportunity, Guess I will just
    bookmark this blog.

  3. I just want to tell you that I am just new to blogs and certainly enjoyed this web site. More than likely I’m planning to bookmark your website . You amazingly come with outstanding articles and reviews. Kudos for sharing with us your blog site.

  4. I’d like to thank you for the efforts you have put
    in penning this blog. I’m hoping to check out the same high-grade blog posts by you in the future as well.
    In fact, your creative writing abilities has inspired me
    to get my very own site now 😉

  5. We’re a gaggle of volunnteers and opening a brand new scheme in ourr community.
    Your website provided us with helpful info to work on. You haave done an impressive activity and our whole group will probably be thankful
    to you.
    https://writeanessayforme.info/4613-college-goals-essay.html
    cheap research paper writing service
    cheap research paper writinng service
    https://writeanessayforme.info/ https://writeanessayforme.info/2577-umass-creative-writing.html

  6. It’s perfect time to make some plans for the future and it’s time to be happy.
    I have read this post and if I cokuld I desire to suggest you some interesting things or
    advice. Perhaps you cann write nexct articles referring too this
    article. I want to read more things about it!
    https://collegeapplicationessaywritingservice.info
    cheap essay writing service usa
    cheap essay writing service usa
    https://helpassignmentwritingservice.info https://bartlebywrite.info

  7. Hiya very cool blog!! Maan .. Excellent ..
    Wonderful .. I will bookmark your site and takee thee feeds also?
    I am happy to find so many useful ifo here within the put up, we’d like develop mote techniques
    in this regard, thank youu for sharing. . . . . .
    https://admissionessaywritingservice.com/
    coklege essay writing service
    college essay writing service
    https://admissionessaywritingservice.com/ https://admissionessaywritingservice.com/

  8. Do you have a spam problem on this site; I also am a blogger, and I was wondering your situation; we have
    developed some nice procedures and we are looking to swap solutions with other folks, be sure
    to shoot me an e-mail if interested.

  9. Hi there! This post couldn’t be written any better!
    Looking throubh this post reminds me of my previous roommate!
    He always kept talking about this. I most certainly
    will send this article too him. Pretty sure he’s goinjg to have a very good read.

    Thanks for sharing!
    https://usessaywritingservice.com
    college essay writing service
    college essay writing service
    https://usessaywritingservice.com https://usessaywritingservice.com

  10. 핑백: số may mắn của kim ngưu

  11. 핑백: cây để trong phòng làm việc

  12. 핑백: song tử hợp với cung nào trong tình yêu

  13. Hi there! I know this is kinda off topic but I was wondering which blog platform arre you using for this website?
    I’m getting tired of WordPress because I’ve had issues with hackers
    and I’m looking at options for another platform.
    I would be fanbtastic if you could point me in the direction oof a good
    platform.
    http://secondlife.server272.com/our-egyptian-happy-tails/
    top essay writing websites
    top essay writing websites
    https://answers.yahoo.com/question/index?qid=20080916065720AAMY2D8 https://nagonthelake.blogspot.com/2008/04/

  14. Following a simple baby massage routine will give you both exclusive one-on-one some time and really gets
    you in tune using your baby as well as giving you more
    confidence in handling them. Self myofascial release foam rollers happen to be one of many
    easiest do-it-yourself solutions available for the stiff and sore body.
    The word massage is usually to get emerged from your Greek word ‘Massein’,
    meaning ‘to knead’ or even the Arabic word ‘mash’ meaning ‘to
    press softly’.

    Feel free to visit my web blog – 출장안마

  15. I have learn some just right stuff here. Certainly worth bookmarking for
    revisiting. I surprise how so much attempt you put to create one of these great informative site.

  16. Admiring the time and energy you put into your blog and detailed information you present.

    It’s awesome to come across a blog every once in a while that isn’t the same out of date rehashed information.
    Fantastic read! I’ve saved your site and I’m including your RSS feeds to my
    Google account.

  17. It’s seriously open-handed of people like you giving unhampered what exactly many of us could have marketed for an electronic
    book in order to make some cash for themselves, particularly
    considering that you might have done it if you ever considered necessary.

댓글 남기기