codeA:
        m_ip="192.168.1.23";
        CString str="SELECT * FROM mytable WHERE ip ='" +m_ip+ "';";
        m_rdc.SetSql((LPCTSTR)str);//m_rdc:remotedata variables
        m_rdc.Refresh();
////////////////////////////////////////////////////////////////////////////
codeB:
m_ip.TrimLeft();
        CString str="SELECT * FROM mytable WHERE ip ='" +m_ip+ "';";
        m_rdc.SetSql((LPCTSTR)str);
        m_rdc.Refresh();
/////////////////////////////////////////////////////////////
codeA can get resault,but codeB cannot.Why?

解决方案 »

  1.   

    m_ip 是界面edit输入:192.168.1.23,其实我在codeB中插入GetSql()
    codeB':
            m_ip.TrimLeft(); 
            CString str="SELECT * FROM mytable WHERE ip ='" +m_ip+ "';"; 
            m_rdc.SetSql((LPCTSTR)str); 
            m_rdc.Refresh(); 
            
            UpdateData(true);
            m_sql=m_rdc.GetSql();//m_ip:edit control
            UpdateData(false);
    显示执行的SQL语句为:SELECT * FROM mytable WHERE ip ='';
    紧接着再将代码执行一遍,显示正确:SELECT * FROM mytable WHERE ip ='192.168.1.23';
    不知道为什么.
      

  2.   

    你要在m_ip.TrimLeft();之前调用UpdateData();
      

  3.   

    void CRdc::SetConnect(LPCTSTR lpszNewValue);
    void CRdc::SetEditMode(short nNewValue);
    void CRdc::SetCursorDriver(long nNewValue);不知道怎么用