89 lines
2.5 KiB
C++
89 lines
2.5 KiB
C++
#pragma once
|
|
|
|
/**************************************************************************************************
|
|
|
|
작성일: 2008-07-30
|
|
작성자: 문상현 (youngmoon@webzen.co.kr)
|
|
|
|
설명: SQL API 사용하기 위한 객체
|
|
|
|
**************************************************************************************************/
|
|
|
|
#include "SQLAPI/SQLAPI.h"
|
|
#include <string>
|
|
|
|
#ifdef _DEBUG
|
|
#pragma comment(lib, "./Uitl/lib/sqlapi.lib")
|
|
#else
|
|
#pragma comment(lib, "./Uitl/lib/sqlapi.lib")
|
|
#endif
|
|
|
|
enum VALUE_TYPE {PARAM_INPUT, PARAM_OUTPUT, FIELD_INPUT, FIELD_OUTPUT};
|
|
|
|
class CSqlLibHandler
|
|
{
|
|
public:
|
|
CSqlLibHandler();
|
|
~CSqlLibHandler();
|
|
|
|
//디비서버에 접속한다.
|
|
bool ConnectDBMS();
|
|
//접속 정보를 셋팅한다. (strCon: "서버주소, 포트번호@디비명" 이나 ODBC 에 등록된 DSN 명)
|
|
void SetConnectInfo(char* strCon, char* szID, char* szPwd, SAClient_t clienttype = SA_ODBC_Client);
|
|
//최후의 에러 메시지를 알려준다.
|
|
const char* GetLastErrorStr();
|
|
//최후의 에러 메시지 코드를 알려준다.
|
|
int GetLastErrorCode();
|
|
//쿼리문을 등록한다.
|
|
bool SetQureyText(const char* szSQL);
|
|
//쿼리문을 실행 시킨다.
|
|
bool Exec();
|
|
//다음 행으로 이동한다.
|
|
bool FetchNext();
|
|
//현재 연결되어있는지 여부를 확인한다.
|
|
bool IsConnected();
|
|
//필드 수를 리턴한다.
|
|
int GetCountFiled();
|
|
bool isResultSet();
|
|
long RowsAffected();
|
|
|
|
void Disconnect();
|
|
|
|
//필드의 값을 얻거나 설정한다.
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, tm& _time);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, long& nValue);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, short& nValue);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, double& nValue);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, char& nValue);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, BYTE& nValue);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, char* nValue, int Size);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, WCHAR* nValue, int Size);
|
|
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, WCHAR& nValue);
|
|
bool ModifyValue(VALUE_TYPE vt, const char* szCol, bool& nValue);
|
|
|
|
|
|
protected:
|
|
//public:
|
|
//커넥션 객체
|
|
SAConnection m_sqlconn;
|
|
//커맨드 객체
|
|
SACommand m_sqlcmd;
|
|
|
|
//접속정보
|
|
char m_szConnect[128];
|
|
//아이디
|
|
char m_szId[64];
|
|
//비번
|
|
char m_szPwd[64];
|
|
//디비 접속 타입
|
|
SAClient_t m_clienttype;
|
|
|
|
//에러 정보를 취합한다.
|
|
void SetError(const char* szError, const char* szParamter, int nLineNum, const char* szFileName, const char* szDescription, int nErrorCode);
|
|
|
|
//최후의 에러 메시지 보관
|
|
std::string m_strLastError;
|
|
//최후의 에러 메시지 코드를 보관
|
|
int m_nErrorCode;
|
|
}; |