02
10

이전 포스팅에서

ODBC 라이브러리로 MS Access의 데이터베이스에 접근을 해서

비주얼 스튜디오에서 사용을 했었다.

 

 

온라인 서비스를 하는데 서버와 클라이언트가 있듯이

데이터베이스도 마찬가지다.

MySQL, Oracle, MS SQL Server 등과 같은 관계형 DBMS

서버에 데이터베이스를 탑재해 사용한다. 

 

요즘은 아마존이나 구글의 파이어베이스, Azure 등

클라우드 서비스로 전환하는 추세이지만, 

 

MS SQL Server로 DB서버를 만들어보려고 한다.

https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2016

 

Try SQL Server 2016 with SP2 on Microsoft Evaluation Software

Evaluations  |  180 days 5 |  Last Visited:

www.microsoft.com

 

설치 과정은 생략하겠다. 

MS SQL Server Management Studio (SSMS)도 같이 설치해준다.

https://docs.microsoft.com/ko-kr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15 

 

SSMS(SQL Server Management Studio) 다운로드 - SQL Server Management Studio (SSMS)

최신 버전의 SSMS(SQL Server Management Studio)를 다운로드합니다.

docs.microsoft.com

 

비쥬얼 스튜디오에서도 특정 데이터베이스 연결, 조회 처리 모두 가능하다.

굳이 SSMS를 사용하는 이유는, SSMS는 DB에 중점적이기 때문이다.

서버용 비주얼 스튜디오라고 생각하면 편하다.

SQL Server, Azure SQL Database, Azure SQL Managed Instance 등 적용할 수 있다.

 

설치가 완료되면 ODBC 관리자에서 SQL Server 드라이버를 확인 할 수 있다.

 

SQL Sever 드라이버 확인

 

ODBC로 접속하는 방법은 여러 방법 있다.

 

저번 포스팅에서는DSN 파일 경로로 SQLConnect()함수를 사용해 연결했었다.

SQLConnect() 함수를 호출하기 위해서 HDBC 핸들. DNS 이름, 아이디, 비밀번호가 필요하다.

 정해진 데이터베이스 계정과 연동하여 프로그램을 사용하면

이 방법이 좋지만, 독립적인 방향의 프로그래밍이 되겠지만, 

 

SQLDriverConnect() 함수를 사용한다면 대화 상자로 계정과 데이터베이스

정보를 입력해, 데이터베이스 서버에 연결할 수 있다.

이번에는 대화상자로 접속하는 방식을 사용했다.

 

1
2
3
4
5
6
7
8
9
SQLRETURN SQLDriverConnect(  
     SQLHDBC         ConnectionHandle,  // 연결 핸들
     SQLHWND         WindowHandle,  // 윈도우 핸들 (창 유무)
     SQLCHAR *       InConnectionString,  // 연결 문자열
     SQLSMALLINT     StringLength1,  // 연결 문자열 사이즈
     SQLCHAR *       OutConnectionString,  // 완료된 연결 문자열 
     SQLSMALLINT     BufferLength, // 완료된 문자열 사이즈
     SQLSMALLINT *   StringLength2Ptr,// 총 문자 수
     SQLUSMALLINT    DriverCompletion);// 메시지 플래그
cs

 

GetDesktopWindow() 함수는 현재 표시된 윈도우 화면 핸들을 반환하는 것이다.

2번째 파라미터에 윈도우 핸들 값을 넣어주면 된다. 

 

1
2
3
4
5
6
7
8
9
case 3://ms access 대화상자 버젼
        {
            HWND hWnd = GetDesktopWindow();
            SQLSMALLINT len;
            ret = SQLDriverConnect(handle_dbc, hWnd,
                (SQLWCHAR*)L"Driver={Microsoft Access Driver (*.mdb, *.accdb)}", SQL_NTS,
                (SQLWCHAR*)inCon, _countof(inCon),
                &len, SQL_DRIVER_PROMPT);
        }break;
cs

 

아래 사진과 같은 창이 뜨게 되고  SQL Server 데이터베이스 연결할 수 있다.

 

사전에 만든 GameDB에 접근한 모습

 

COMMENT