티스토리 뷰

개발

simpleAdo 2.0

likehood~ 2007. 5. 22. 16:27


/*!
 \brief
  ADO Component Wrapper Class
  - Create Date/Ver : 2003.03.19 /1.0
   - RecordSet은 CreateInstance사용안함.
  - Modify Date/Ver : 2003.04.18 / 1.5
   - RecordSet셋팅을 위해  CreateInstance를 사용했습니다.(ExcuteQryEx)
   - SaveQryData함수 추가 : select로 불러온 데이터를 파일로 저장(XML)
   - ExcuteQryEx함수 추가(레코드셋 설정을 위해...)
  - Modify Date/Ver : 2003.05.19 / 1.6
   - ExcuteQry, InsUpDel()함수 가변인수 적용..
    - EX) \n
     int nData=10;\n
     ExcuteQry("select * from tab where id= %d",nData);\n
  - Modify Date/Ver : 2003.08.26 / 1.7
   - GetState()함수 추가...
    - Object의 상태를 리턴합니다.
  - Modify Date/Ver : 2004.04.02 / 1.71
   - GetData(int&) 부분 수정
    - MS-SQL decimal타입 리턴시 32000이상시 - 값으로 리턴되는 버그 수정
  - Modify Date/Ver : 2004.04.07 / 1.80
   - simpleAdo 인스턴스간 복사 지원
    - ex) simpleAdo ado1;\n
     ...\n
     ...\n
     ...\n
     simpleAdo ado2(ado1); //가능\n
     simpleAd0 ado3=ado1; //가능\n
     simpleAdo ado4;\n
     ado4=ado1;    //가능\n
   - 데이터베이스 처리시 에러시 dumpfile 지원
    - 데이터 베이스 작업시 에러 file로 저장.
  - Modify Date/Ver : 1.81
  - 타입 강화.
   - select 질의 후 _varient_t형태로 리턴 추가
  - Modify Date/Ver : 2005-11-15/ 1.82
   - 리턴타입 강화
   - CHAR값 리턴 함수추가
    - BOOL GetData(const long nCol,const long nRow,TCHAR& chData) const;
  - Modify Date/Ver : 1.90
   - ExcuteQry로 select Insert Update Delete Stored Procedure 모두 지원(기존함수로도 지원함.)
   - Stored Procedure실행시 Recordset이 존재할 경우 GetData()로 사용 가능.
  - Modify Date/Ver : 20060919/ 2.0
   - 시간이 많이 걸리는 쿼리 시 message pumping을 실시하여 UI가 멈추는 일이 없도록 함.
   - 사용자가 선택할수 있도록 SetMessagePump(BOOL)지원.
   - 참고사항
   - 프로젝트시작 / 종료부부분에 명기 -> ::CoInitialize(NULL); and ::CoUninitialize();
   - _ConnectionPtr,과 _RecordsetPtr의 사용 종료시 ->Close(), .Release()함수는 자동호출되므로 사용안함.
   - StoredProcedure 사용법
    - Return 값을 가지는 프로시져인 경우
     _CommandPtr 객체를 이용(MSDN 참조)\n
     In, Out Parameter를 생성하고 작업해야 함.\n
     _CommandPtr cmd;\n
     cmd.CreateInstance(__uuidof(Command));\n
     cmd->ActiveConnection=m_pConnection;\n
     cmd->CommandType=adCmdStoredProc;\n
     ...\n
     ...\n
     ...\n
    - Recordset을 리턴하는 경우
     ado.ExcuteQry("exec ProcName %d,%d,%d",1,2,3);\n
     ado.GetData(i,j,retData);\n
    - Return정보가 없는 경우
     ado.InsUpDel("exec ProcName 1,2,3"); \n
     또는 ado.ExcuteQry("exec ProcName 1,2,3");\n

 \author [likehood / 송영배]
 \date [2006-07-14 오후 3:35:59]
 \version [2.0]
 \bug
 \warning 대용량 데이터 쿼리시 HEAP메모리를 많이 차지하게 됩니다.
*/

'개발' 카테고리의 다른 글

비트 필드 스트럭쳐  (0) 2007.05.22
도대체 가상함수는 어디에다 쓰는 것일까.  (0) 2007.05.22
c/c++ 간단 토글링  (0) 2007.05.22
XmlLite SDK 관련..  (0) 2007.04.12
도서물 도착!!  (0) 2007.04.09
댓글