VC中的SQL语句太长了,请问如何换行的?

解决方案 »

  1.   

    加斜杠 \ ,例如:"SELECT A, B, C \
     FROM TABLE1 \
     WHERE A = 1"
      

  2.   

    为什么要换行呢?那样是一个不好也不科学的编程习惯!你可以设定一个Cstring的变量,然后用这个变量存贮AQL语句!可以这样处理:CString m_strSQLTest;m_strSQLTest = "Select ……"
    m_strSQLTest = m_strSQLTest + "from ……"
    m_strSQLTest = m_strSQLTest + "where……"
    ……这样写的话程序简单明了,不累赘!希望我的回答对你有用!(个人意见,如有错误,请大家指正)
      

  3.   

    但是在纪录集中怎么写呢?
    CString m_strSQLTest;
    pst->Open(m_strSQLTest,
          m_pConnection.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
    出错,写成:
    pst->Open(_variant_t(m_strSQLTest),
          m_pConnection.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
    也出错?
      

  4.   

    pst 是什么?Recordset的一个对象?如果是的话,参考如下语句:_variant_t vConn;try
    {
    if(m_pConn->State != adStateOpen)
    {
    return FALSE;
    } if(m_pRecordset->State != adStateClosed)
    {
    m_pRecordset->Close();
    }vConn = (IDispatch *)m_pConn;//Connection对象指针来构造一个_variant_t对象 //用RecordSet对象进行查询m_pRecordset->Open(m_strSQLTest,vConn,adOpenStatic,adLockOptimistic,adCmdText); return TRUE;
    } catch(_com_error &ce)
    {
    DumpError(ce);
    } return FALSE;