首页/技术开发/内容

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

技术开发2022-07-19 阅读()
rc == SQL_SUCCESS_WITH_INFO)
{
     SQLTransact(henv,hdbc,SQL_COMMIT);
        SQLFreeStmt(hstmt,SQL_DROP) ;
  hstmt=NULL ;
  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 ;
}
}
/*更新表的指定纪录*/
BOOL CWdcDatabase::UpdateRecord()
{
  unsigned char szSQLSTATE[6] ;
  SDWORD nErr ;
  unsigned char msg[MAX_ERROR_MSG + 1] ;
  SWORD cbmsg ;

  RETCODE rc ;
  CString sTemp ;

  if(!m_bOpen)
   return FALSE ;

  m_sQuery.Format("Update %s Set ",m_sTable) ;

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

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

  m_sQuery += sTemp ;
  }
  m_sQuery += " Where " ;

  ff = 0 ;
  for(f=0 ;f<m_nFields ;f++)
  {
   if(m_bKeyField[f]) /*如果为主键*/
   {
         if(ff>0)
    m_sQuery += "," ;
   ff ++ ;
         if(m_bNumeric[f])
    sTemp.Format("%s=%s",m_sFieldName[f],m_sFieldValue[f]) ;
   else
    sTemp.Format("%s=%s",m_sFieldName[f],Quote(m_sFieldValue[f])) ;

   m_sQuery += sTemp ;
   }
  }

  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页 

……

相关阅读