Files
2022-10-26 12:25:11 +08:00

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;
};