这段时间项目总结 总结一下代码

这段时间项目总结 总结一下代码

数据库操作 
m_pConn->Execute((_bstr_t)strSQL , &index , 1);
第二个参数的值是影响的行数
有了这个  就可以在Update数据库的记录的时候不用先Select查看是否存在数据而执行两条SQL语句影响服务器的效率了


捕获ADO的数据库操作的异常
catch (_com_error e)
    {
        ::AfxMessageBox(e.Description() , MB_OK);
        
return  FALSE;
    }
三 
将double类型的时间转换成时间字符串
CString strGPSTime;
    COleDateTime GPStime(GPSDate.gpsTime);
    strGPSTime 
=  GPStime.Format( " %Y-%m-%d %H:%M:%S " );     // GPS时间

小技巧 在MFC的编辑框显示信息的时候  我以前一般都是 直接
m_strMsg += "提示信息:";
这样会出现往下拖  很烦人  
今天刚想到一个小技巧
在插入信息的时候 我们可以插入到头部去  这样就不会滚动 我们看到的就是最新的信息了
m_strMsg.Insert(0 , "信息提示:");

//10.22 新增
对话框的巧妙隐藏   不闪屏!
隐藏窗口
void  CFlashThiefDlg::OnWindowPosChanging(WINDOWPOS *  lpwndpos)
{
    lpwndpos
-> flags  &=   ~ SWP_SHOWWINDOW;
    CDialog::OnWindowPosChanging(lpwndpos);    
}


判断数据库中的一张表是否存在的函数
// 判断一张表是否存在
BOOL IsTableExsist(CString strTableName)
{
    
try  
    {    
        CStringArray arrTableNames;
        _RecordsetPtr Recordset   
=    m_pConn -> OpenSchema(adSchemaTables);  
        _variant_t   l_vDBTableName;  
        _bstr_t   bstrTableType;        
        
while ( ! Recordset -> adoEOF)  
        {  
            l_vDBTableName   
=    Recordset -> GetCollect( " TABLE_NAME " );    
            bstrTableType   
=    Recordset -> GetCollect( " TABLE_TYPE " );  
            
if    ((bstrTableType    ==    (_bstr_t) " TABLE " ) || (bstrTableType    ==    (_bstr_t) " VIEWS " ))  
            {  
                arrTableNames.Add((
char     * )_bstr_t(l_vDBTableName));  
            }  
            Recordset
-> MoveNext();  
        }  

        
int    iCount    =    arrTableNames.GetSize();   
        
for  ( int  i  =   0  ; i  <  iCount ; i ++ )
        {
            CString
&  strName  =  arrTableNames[i];
            
if  (strName  ==  strTableName)
                
return  TRUE;            
        }
    }
    
catch (_com_error &  e)
    {
        ASSERT(FALSE);
        CString str;
        str.Format(
" 文件名称: %s \n 所在代码行 : %d 执行SQL语句失败 错误原因 %s "  , __FILE__ , __LINE__ , (LPCSTR)e.Description());
        TRACE(str);        
        AfxMessageBox(str);    
        
return  FALSE;
    }

    
return  FALSE;
}

以后再继续

你可能感兴趣的:(这段时间项目总结 总结一下代码)