1. 시험환경
˙ Maria DB 10.5.8 (x64) 와 Visual Studio 2017 v141 (x64, Release) 간 연동
˙ Maria DB 10.5.8 (x64) 와 Visual Studio 2012 v110 (x64, Release) 간 연동
˙ Maria DB 10.5.8 (x64) 와 Visual Studio 2010 v100 (x64, Release) 간 연동
˙ Maria DB 10.5.8 (x32) 와 Visual Studio 2010 v100 (x32, Release) 간 연동
2. 목적
˙ MariaDB와 Visual Studio(C++) 간 연동 설정 및 동작을 확인한다.
˙ Visual Studio 버전별 연동 설정 및 동작을 확인한다.
3. 적용
① Maria DB에 접속하여 시험용 테이블과 데이터를 준비한다.
② 프로젝트 속성창 <C/C++> → <일반> → <추가 포함 디렉토리>에 "MraiaDB include" 폴더를 추가한다.
- MariaDB (x64) : C:\Program Files\MariaDB 10.5\include\mysql
- MariaDB (x32) : C:\Program Files (x86)\MariaDB 10.5\include\mysql
③ 프로젝트 속성창 <링커> → <일반> → <추가 라이브러리 디렉토리>에 "MraiaDB library" 폴더를 추가한다.
- MariaDB (x64) : C:\Program Files\MariaDB 10.5\lib
- MariaDB (x32) : C:\Program Files (x86)\MariaDB 10.5\lib
④ 프로젝트 속성창 <링커> → <입력> → <추가 종속성>에 "libmariadb.lib" 파일을 추가한다.
⑤ Visual Studio 프로젝트 폴더에 "libmariadb.dll" 파일을 복사한다.
⑥ DB에서 데이터 추출을 위한 코드를 작성한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#include <iostream>
#include <mysql.h>
using namespace std;
void main()
{
MYSQL *conn;
MYSQL *conn_result;
unsigned int timeout_sec = 1;
conn = mysql_init(NULL);
mysql_options(conn, MYSQL_OPT_CONNECT_TIMEOUT, &timeout_sec);
conn_result = mysql_real_connect(conn, "127.0.0.1", "root", "1q2w3e", "test", 3307, NULL, 0);
if (NULL == conn_result)
{
cout << "DB Connection Fail" << endl;
}
else
{
cout << "DB Connection Success" << endl;
char query[1024];
MYSQL_RES *result;
MYSQL_ROW row;
sprintf_s(query, 1024, "SELECT * FROM testTbl");
// Send Query
if (mysql_query(conn, query))
{
cout << "SELECT Fail" << endl;
}
// Get Response
result = mysql_store_result(conn);
int fields = mysql_num_fields(result); // 필드 갯수 구함
while (row = mysql_fetch_row(result)) // 모든 레코드 탐색
{
for (int i = 0; i < fields; i++) // 각각의 레코드에서 모든 필드 값 출력
{
cout << row[i] << " ";
}
cout << endl;
}
mysql_free_result(result);
mysql_close(conn);
}
return;
}
|
cs |
4. 결과
˙ 프로그램 실행 시 DB 테이블에 저장된 데이터를 정상적으로 가져올 수 있다.
˙ 여러 버전을 테스트한 결과 동일한 플랫폼 간 연동은 정상 동작 하지만, MariaDB(x32)와 Visual Studio(x64) 간
또는 그 반대의 연동은 컴파일 시 링크 에러가 발생한다.
˙다른 플랫폼 간 연동을 위해서는 DB에서 제공하는 별도의 Connector가 필요하다.
※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※
'Visual Studio' 카테고리의 다른 글
Visual Studio DLL 라이브러리 생성 및 사용법 (C 문법) (0) | 2022.02.22 |
---|---|
strtok() 문자열 자르기 함수 사용 예제 (0) | 2022.01.16 |
Visual Studio 2022 설치 및 C++ 프로젝트 실행 (0) | 2022.01.15 |
Boost 설치와 Visual C++ 프로젝트 설정 (0) | 2021.12.03 |
Memory Mapped File (프로세스간 메모리 공유) (0) | 2021.05.14 |