C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[63869] db access에 대해서 질문이 있습니다..
astatine [] 1241 읽음    2011-03-04 10:12
#include "StdAfx.h"
#include "CQuery.h"
//  ----------------------------------------------------------------------------
//  생성자
//  ----------------------------------------------------------------------------
CQuery::CQuery(void)
{
// DataBase Access용 객체 생성, 연결
m_pDb = new CDB();

    if ( m_pDb->connectStatus() != TRUE )
    {
  AfxMessageBox("DB Connection fault");   //메시지 출력!!(y)
}        
}
//  ----------------------------------------------------------------------------
//  소멸자
//  ----------------------------------------------------------------------------
CQuery::~CQuery(void)
{
delete m_pDb;
}

//  ----------------------------------------------------------------------------
//  DB에서 값을 읽어와.. Chart FX component를 이용하여 Graph를 그린다.
//  ----------------------------------------------------------------------------
bool CQuery::dispChartFX()
{
CString m_csQuery;
m_csQuery.Format("select * from [Fe_Mn].[dbo].[FM_PLC1]");
m_pDb->executeSelect(m_csQuery);
if( m_pDb->getRecordCount() > 0 )
{

  while(!m_pDb->isEOF())
  {
    m_pDb->moveNext();
  }// while End

  m_pDb->closeRecord();
}
return true;
}
//  ----------------------------------------------------------------------------
//  Tag Name으로 Tag Type를 DB에서 가져온다.
//  ----------------------------------------------------------------------------
int CQuery::getTagInfo(CString csTagName)
{
int  m_iRtn = 0;
CString m_csQuery;
char m_csType[20];
memset(m_csType, NULL, sizeof(m_csType));
m_csQuery.Format("select Type, Comment from [Fe_Mn].[dbo].[FM_TAGINFO] where TagName = '%s'", csTagName);
m_pDb->executeSelect(m_csQuery);
if( m_pDb->getRecordCount() > 0 )
{
  m_pDb->getFieldValue("Type"  ,  m_csType   , sizeof(m_csType));
  if (strncmp(m_csType,"Memory Discrete"   ,15 ) == 0) m_iRtn = MEMDISC;
  else if (strncmp(m_csType,"I/O Discrete"  ,12 ) == 0) m_iRtn = IODISC;
  else if (strncmp(m_csType,"Memory Int"   ,10 ) == 0) m_iRtn = MEMINT;
  else if (strncmp(m_csType,"I/O Int"    ,7  ) == 0) m_iRtn = IOINT;
  else if (strncmp(m_csType,"Memory Real"   ,11 ) == 0) m_iRtn = MEMREAL;
  else if (strncmp(m_csType,"I/O Real"   ,8  ) == 0) m_iRtn = IOREAL;
  else if (strncmp(m_csType,"Memory Message"  ,14 ) == 0) m_iRtn = MEMMSG;
  else if (strncmp(m_csType,"I/O Message"   ,11 ) == 0) m_iRtn = IOMSG;
}
m_pDb->closeRecord();
return m_iRtn;
}
//  ----------------------------------------------------------------------------
//  Tag Name으로 Tag Info를 DB에서 가져온다.
//  ----------------------------------------------------------------------------
void CQuery::getTagInfo_DB(CString csTagName, sTAGINFO &sTag)
{
CString  m_csQuery;
m_csQuery.Format("select * from [Fe_Mn].[dbo].[FM_TAGINFO] where TagName = '%s'", csTagName);
m_pDb->executeSelect(m_csQuery);
if (m_pDb->getRecordCount() > 0)
{
  m_pDb->getFieldValue("GroupName",  sTag.sTAGINFO_GET.Group,   sizeof(sTag.sTAGINFO_GET.Group));
  m_pDb->getFieldValue("Type",    sTag.sTAGINFO_GET.Type,    sizeof(sTag.sTAGINFO_GET.Type));
  m_pDb->getFieldValue("Comment",   sTag.sTAGINFO_GET.Comment,   sizeof(sTag.sTAGINFO_GET.Comment));
  m_pDb->getFieldValue("Logged",   sTag.sTAGINFO_GET.Logged,   sizeof(sTag.sTAGINFO_GET.Logged));
  m_pDb->getFieldValue("EventLogged",  sTag.sTAGINFO_GET.EventLogged,  sizeof(sTag.sTAGINFO_GET.EventLogged));
  sTag.sTAGINFO_GET.EventLoggingPriority =  m_pDb->getFieldInt("EventLoggingPriority");
  m_pDb->getFieldValue("RetentiveValue", sTag.sTAGINFO_GET.RetentiveValue, sizeof(sTag.sTAGINFO_GET.RetentiveValue));
  m_pDb->getFieldValue("InitialDisc",  sTag.sTAGINFO_GET.InitialDisc,  sizeof(sTag.sTAGINFO_GET.InitialDisc));
  m_pDb->getFieldValue("OffMsg",   sTag.sTAGINFO_GET.OffMsg,   sizeof(sTag.sTAGINFO_GET.OffMsg));
  m_pDb->getFieldValue("OnMsg",   sTag.sTAGINFO_GET.OnMsg,   sizeof(sTag.sTAGINFO_GET.OnMsg));
  m_pDb->getFieldValue("AlarmState",  sTag.sTAGINFO_GET.AlarmState,  sizeof(sTag.sTAGINFO_GET.AlarmState));
  sTag.sTAGINFO_GET.AlarmPri    =  m_pDb->getFieldInt("AlarmPri");
  m_pDb->getFieldValue("AlarmComment" , sTag.sTAGINFO_GET.AlarmComment,  sizeof(sTag.sTAGINFO_GET.AlarmComment));
  sTag.sTAGINFO_GET.AlarmAckModel   =  m_pDb->getFieldInt("AlarmAckModel");
  sTag.sTAGINFO_GET.DSCAlarmDisable  =  m_pDb->getFieldInt("DSCAlarmDisable");
  m_pDb->getFieldValue("DSCAlarmInhibitor",sTag.sTAGINFO_GET.DSCAlarmInhibitor,sizeof(sTag.sTAGINFO_GET.DSCAlarmInhibitor));
  m_pDb->getFieldValue("SymbolicName",  sTag.sTAGINFO_GET.SymbolicName,  sizeof(sTag.sTAGINFO_GET.SymbolicName));
  m_pDb->getFieldValue("DConversion",  sTag.sTAGINFO_GET.DConversion,  sizeof(sTag.sTAGINFO_GET.DConversion));
  m_pDb->getFieldValue("AccessName",  sTag.sTAGINFO_GET.AccessName,  sizeof(sTag.sTAGINFO_GET.AccessName));
  m_pDb->getFieldValue("ItemUseTagname", sTag.sTAGINFO_GET.ItemUseTagname, sizeof
                                                            .............
                                                            ............


질문 내용: DB ACCESS 에서 생성자쪽에서 연결시에 connectStatus() 이 가상함수 virtual bool connectStatus() = 0; 로 지정 되어 있습니다.. 이럴 경우 db access 소스를 어떻게 생성하면 되나요??

+ -

관련 글 리스트
63869 db access에 대해서 질문이 있습니다.. astatine 1241 2011/03/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.