ADO 라이브러리 사용 방법

Download Report

Transcript ADO 라이브러리 사용 방법

ADO 라이브러리 사용 방법

최흥배 Twitter : @jacking75 현재 개발 중입니다. 목적은 C++11 지원 및 병렬 프로그래밍 지원입니다.

CREATE TABLE [dbo].[Test_Temp2]( [ID] [nvarchar](50) NOT NULL, [UserCode] [int] NOT NULL, [Lv] [int] NOT NULL, [Money] [bigint] NOT NULL ) ON [PRIMARY]

http://cafe.naver.com/ongameserver/3412

이 라이브러리는 김영찬님이 만든 것으로 ‘온라인 서버 제작자 모임’ 카페 에서 공개했던 라이브러리입니다.

( http://cafe.naver.com/ongameserver.cafe

) 김영찬님의 동의를 얻어서 HalfNetwork의 외부 라이브러리로 제공되었습 니다.

문서가 부실합니다. 그러나 코드를 보면 이해하는데 크게 어려움은 없으리 라 생각합니다.

개인적인 생각으로는 이 라이브러리를 사용할 때는 사용하는 프로젝트에 맞게 수정 하는 것이 좋다고 생각합니다.

라이브러리 파일

VC++10으로 만들어진 ADOLib 프로젝트는 ADO 라이브러리와 예제가 같이 있습니다.

파일 중 Lock.h

Unidef.h

ado.cpp ado.h

AdoManager.h

파일만이 ADO 라이브러리 파일입니다. ‘ADO_Test.txt’ 파일에는 예제 코드가 있습니다. 꼭 참고하세요

Tutorial

예제 1. 설정

SAdoConfig adoconfig; adoconfig.SetIP(_T("localhost\\TEST")); // 디비 주소 adoconfig.SetUserID(_T("sa")); // 아이디 adoconfig.SetPassword(_T("dev")); adoconfig.SetInitCatalog(_T("TEST")); // 디비 이름 adoconfig.SetConnectionTimeout(3); adoconfig.SetRetryConnection(true); adoconfig.SetMaxConnectionPool(3); // 패스워드 CAdoManager* pAdomanager = new CAdoManager( adoconfig );

예제 1. 일반 SELECT 쿼리문

{ CAdoManager* pAdomanager = new CAdoManager(adoconfig); CAdo* pAdo = NULL; { CScopedAdo scopedado(pAdo, pAdomanager, false); pAdo->SetQuery(_T("SELECT UID, PWD FROM Users WHERE ID='jacking'")); pAdo->Execute(adCmdText); if(!pAdo->IsSuccess()) std::wcout << L"쿼리문 실패" << std::endl; return 0; } } { { int nUID = 0; WCHAR szPWD[16]; if(!pAdo->GetEndOfFile() ) pAdo->GetFieldValue(_T("UID"), nUID); pAdo->GetFieldValue(_T("PWD"), szPWD, 16); } else std::wcout << L"jacking은 없습니다" << std::endl; return 0;

예제 2. 일반 INSERT 쿼리문 1

{ CAdoManager* pAdomanager = new CAdoManager(adoconfig); CAdo* pAdo = NULL; CScopedAdo scopedado(pAdo, pAdomanager, false); pAdo->SetQuery( _T("Insert Into Users Values( 'jacking2', '1111' )") ); pAdo->Execute(adCmdText); } { { if( !pAdo->IsSuccess() ) } else std::wcout << L"쿼리문 실패" << std::endl; return 0; std::wcout << L"쿼리문 성공" << std::endl;

예제 3. 일반 INSERT 쿼리문 2

{ CAdoManager* pAdomanager = new CAdoManager(adoconfig); CAdo* pAdo = NULL; CScopedAdo scopedado(pAdo, pAdomanager, true); pAdo->SetQuery( _T("Insert Into Users Values( 'jacking3', '1111' )") ); pAdo->Execute(adCmdText); } { { if( !pAdo->IsSuccess() ) } else std::wcout << L"쿼리문 실패" << std::endl; return 0; std::wcout << L"쿼리문 성공" << std::endl; pAdo->SetCommit(true); 트랜잭션 설정 true 에 의해서 commit 된다