ADO API

ProudNet DB에 있는 ADO Wrapper API 는 Microsoft ActiveX Data Object (ADO)를 C++ 언어에서 쉽게 다룰 수 있도록 만들어진 API 로, 보다 쉽게 ADO를 이용한 DBMS 접근을 할 수 있습니다.

아래 코드는 git 예시 프로젝트를 바탕으로 설명되어 있습니다.

DB 연결하기

Open 함수에 파라미터로 들어가는 구문은 Connection Strings 규칙을 따릅니다.

Proud::CAdoConnection conn;

// MSSQL
conn.Open(L"Driver={ODBC Driver 17 for SQL Server};Server=localhost;Database=ProudAdo-Test;Trusted_Connection=yes;");
// MYSQL
conn.Open(L"Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Port=3306;Database=proudado-test;User ID=proud;Password=proudnet123;Option=3;", Proud::DbmsType::MySql);

DB 사용하기

- Query 직접 사용하기

// 테스트용 쿼리입니다.
// 해당 쿼리를 사용하기 위해서는
// DB에 UserId, Password, Country라는 Column을 가진
// UserData 테이블이 존재해야 합니다.


// 트랜잭션 시작
conn.BeginTrans();

// 쿼리 실행 코드
// 아래 예시는 테스트 용 쿼리입니다.
// 해당 쿼리를 사용하기 위해서는
// DB에 UserId, Password, Country라는 Column을 가진
// UserData 테이블이 존재해야 합니다.
conn.Execute(Proud::String::NewFormat(L"insert into UserData (UserID, Password, Country) VALUES(%s, %s, %d)", L"test", L"password", 1));

// 트랜잭션 commit
conn.CommitTrans();

- Stored procedure 사용하기

// 명령문 정보를 담을 CAdoCommand 
Proud::CAdoCommand cmd;
// Return 데이터를 담을 CAdoRecordset
Proud::CAdoRecordset rec;

// AddUserData 라는 procedure가 존재해야 합니다.
cmd.Prepare(conn, L"AddUserData");

// 파라미터를 추가합니다.
cmd.Parameters[1] = L"test";
cmd.Parameters[2] = L"password";
cmd.Parameters[3] = 1;

// procedure 실행
cmd.Execute(rec);

rec.Close();

- CAdoRecordset 데이터 읽기

Proud::AdoRecordset rec;
// 마찬가지로 DB에 UserData 테이블이 존재해야 합니다.
rec.Open(conn, Proud::DbOpenFor::OpenForReadWrite, L"select * from UserData");

Proud::String strID, strPassword, strCountry;
while (rec.IsEOF() == false)
{
	strID = ((Proud::String)rec.FieldValues[L"UserID"]).GetString();
	strPassword = ((Proud::String)rec.FieldValues[L"Password"]).GetString();
	strCountry = ((Proud::String)rec.FieldValues[L"Country"]).GetString();
	
	wprintf(L"UserID : %s, Password : %s, Country : %s\n", strID.GetString(), strPassword.GetString(), strCountry.GetString());
	
	rec.MoveNext();
}

Last updated