WIN32,_DEBUG,_WINDOWS,_AFXDLL,_MBCS
이거의 마지막 _MBCS 를 지우고 UNICODE, _UNICODE 바꿔 준다 .
자바에서의 JDBC가 ODBC를 이용하여 연결하려면 JDBC-ODBC 브릿지를 사용하여 ODBC 드라이버와 연결하면 된다.

[참고] 윈도우 플랫폼에서 기본적으로 재공하는 ODBC를 확인하려면 [제어판]-[관리도구]-[데이터원본(ODBC)]에서 확인하면 된다.
여기에서는 기본적으로 재공하는 Access ODBC를 사용하여 데이터 베이스를 연결해 보도록 하자.
1. Access 데이터베이스를 ODBC관리자에 등록하기(W2k기준)
[제어판]-[관리도구]-[데이터원본(ODBC)]-[시스템 DNS]-[추가]
-[드라이버선택(Microsoft Access Driver(*.mdb))]-데이터베이스 선택 및 데이터 원본 이름 지정
2. 드라이버 로드
DriverManaber 방식과 Class에서 직접 로드하는 방식이 있지만 여기서는 Class에서 직접 로드하는 방법을 택하자.
Class.forName("sun.jdbc.odbc.jdbcOdbcDriver");
3. Connection 생성하기
드라이버를 로드했다고 데이터베이스를 접근할 수 있는 것은 아니다. 데이터베이스와의 실제 연결을 객체 모델링한 클래스가 Connection 클래스이다. 이 Connection클래스의 getConnection메소드를 사용하여 데이터 베이스와 실제 연결해 보자.
Connection conn=DriverManager.getConnection(jdbc_url, user_name, pass_word)
와 같이 객체를 생성한다. 만약 user_name과 pass_word가 없다면 jdbc_url만 기술한다.
만약 위의 1번 단계에서 odbc 관리자에게 등록한 데이터 베이스명이 test 라면,
Connection conn=DriverManager.getConnection("jdbc:odbc:shop")
하면 된다.
여기에서 한가지 주의할 점은 자바와 Access 사이의 한글 인코딩 방식에서 약간의 차이를 보인다. 따라서
Properties props=new Properties();
props.put("charSet","8859_1");
Connection conn=DriverManager.getConnection("jdbc:odbc:shop", props)
와 같이 처리해야 한글을 정상적으로 처리할 수 있을 것이다. 오라클인 경우는 Properties를 사용하여 인코딩 하지 않아도 된다.
마찬가지로 데이터 베이스에 데이터를 전송할 경우도 인코딩을해 주어야 하는데 이러한 부분을 좀더 편하게 처리하기 위해 아래의 두 개 메소드를 사용하여 처리한다.
4. Statement 클래스와 ResultSet 클래스를 사용하여 SQL문 실행하기
1) 입력/수정/삭제는 Statement로 처리
Statement stmt = conn.createStatement();
stmt.executeUpdate(sqlStr)
2) 조회는 ResultSet으로 처리
ResultSet rs=stmt.executeQuery(sqlStr);
while(rs.next())
{
System.out.println(rs.getString("name")); // name필드의 값을 표시함.
}
ResultSet에 관한 세부 메소드는 레퍼런스를 참조하세요.
5. Open한 데이터 베이스를 닫는다.
stmt.close():
conn.close():
#include "odbcinst.h"
#define DNSTYPE "Microsoft Access Driver (*.mdb)"
CString Attribute;
CString m_dir = "c:\test
CString m_Path = "c:\test\test.mdb"
Attribute.Format("DSN=TESTDB;DESCRIPTION=THISISTESTDB;FileType=Access;DataDirectory=%s;DBQ=%s;",m_dir,m_Path);
if(!SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN, DNSTYPE, Attribute))
{
return FALSE;
}
------------------------------------------------------------------------------------------
작년 3학년 2학기때 1학기에 마무리한 산학협동프로젝트 ProPPT에서
ODBC를 수동으로 등록해 주어야했다.
이번에 교수님께서 할께 많이 없으니 그냥 install 되게끔만 만들라하셔서
다른 프로젝트가 많아 이번에 건들게 되었는데,
Microsoft Access 를 사용해야만 mdb파일을 등록시킬 수 있다는 것.
※수동으로 Access 데이터베이스를 ODBC관리자에 등록하기(W2k기준)
[ODBC와 JDBC] 글 참조.
[제어판]-[관리도구]-[데이터원본(ODBC)]-[시스템 DNS]-[추가]
-[드라이버선택(Microsoft Access Driver(*.mdb))]-데이터베이스 선택 및 데이터 원본 이름 지정