首页/技术开发/内容

一个用技巧强大的ODBC API 函数访问数据库类

技术开发2022-07-19 阅读()
rc == SQL_SUCCESS_WITH_INFO)
{ /*如果执行成功*/
     SQLTransact(henv,hdbc,SQL_COMMIT);
  SQLFreeStmt(hstmt,SQL_DROP) ;
  return TRUE ;
}
else
{
  m_sErrMsg = "" ;
        while(SQLError(0,
              0,
        hstmt,
        szSQLSTATE,
        &nErr,
        msg,
        sizeof(msg),
        &cbmsg) == SQL_SUCCESS)
       m_sErrMsg = "\t\t" + (CString) msg + "\n" ;
       SQLFreeStmt(hstmt,SQL_DROP) ;
    return FALSE ;
}

}

CString CWdcDatabase::Quote(CString &sText)
{
  CString sResult="" ;
  CString sChar   ;
  int iTextLen = sText.GetLength() ;

  for(int pos = 0 ;pos<iTextLen;pos++)
  {
     sChar = sText.Mid(pos,1) ;
  if (sChar == "'")
   sChar = "''" ;
  sResult += sChar ;
  }

  return  CString("'" + sResult + "'") ;

}

BOOL CWdcDatabase::AddRecord()
{
    unsigned char szSQLSTATE[6] ;
SDWORD nErr ;
unsigned char msg[MAX_ERROR_MSG+1] ;
SWORD cbmsg ;

CString sTemp ;

if(!m_bOpen)
  return FALSE ;

    m_sQuery.Format("Insert Into %s(",m_sTable) ;
    
int ff=0 ;
for(int f=0 ;f<m_nFields;f++)
{
       if(ff>0)
     m_sQuery += "," ;
    ff ++ ;
    m_sQuery += m_sFieldName[f] ;
}

m_sQuery += ") values(" ;
ff = 0 ;
    for(f=0 ;f<m_nFields ;f++)
{
  if(ff>0)
   m_sQuery += "," ;

  ff ++ ;
  /*---如果数据不为空*/
      if(m_sFieldValue[f]!="")
    {
          if(m_bNumeric[f])
           sTemp.Format("%s",m_sFieldValue[f]) ;
   else
     sTemp.Format("%s",Quote(m_sFieldValue[f])) ;
    }
    else
    { /*如果数据为空*/
          sTemp.Format("%s","NULL") ;
    }

  m_sQuery += sTemp ;
}

m_sQuery += ")" ;

memset((char*)szQuery,0x00,sizeof(szQuery)) ;
strcpy((char*)szQuery,m_sQuery) ;
SQLAllocStmt(hdbc,&hstmt) ;
rc = SQLExecDirect(hstmt,
                 szQuery,
        SQL_NTS) ;

m_nError = (int) rc ;
if(rc == SQL_SUCCESS (北联网教程,专业提供视频软件下载)

第1页  第2页  第3页  第4页  第5页  第6页  第7页  第8页  第9页  第10页  第11页  第12页  第13页  第14页  第15页  第16页  第17页  第18页  第19页  第20页  第21页  第22页  第23页  第24页  第25页 

……

相关阅读