我数据库共有四个字段.前三个都能取出来.为什么只有时间取不出来了.时间取出来是错误的.时间取出来,和内容一样了...我的源码是: //记录序号
varField.uiVal=0;
varField.vt=VT_I2;
m_pADOCEFields->get_Item(varField,&m_pADOCEField);
m_pADOCEField->get_Value(&varData);
pNote->SetSN(varData.lVal); //记事标题
varField.uiVal=1;
varField.vt=VT_UI2;
m_pADOCEFields->get_Item(varField,&m_pADOCEField);
m_pADOCEField->get_Value(&varData);
pNote->SetTitle(varData.bstrVal); //记事内容
varField.uiVal=2;
varField.vt=VT_UI2;
m_pADOCEFields->get_Item(varField,&m_pADOCEField);
m_pADOCEField->get_Value(&varData);
pNote->SetContent(varData.bstrVal); //提醒时间
varField.uiVal=3;
varField.vt=VT_DATE;
m_pADOCEFields->get_Item(varField,&m_pADOCEField);
m_pADOCEField->get_Value(&varData);
pNote->SetClock(varData.bstrVal);
时间取出来和内容是一样的??

解决方案 »

  1.   

    我试了
    vt.vt = vt_date;
    vt.date = m_recordset->field->getitem("时间")—>getvalue();
    vt是对的,我不清楚你的数据的意思,你自己看看吧
      

  2.   

    我数据库的时间不是调用系统函数,而是写到文本框里面再填进去的.我的数据库是SERVER_CE我看过了,就是搞不出来啊.
      

  3.   

    pNote->SetClock(varData.bstrVal);
    这个不行吧.
    COleDateTime dt(varData);
    str = dt.Format("%Y-%m-%d");
    如果你没有MFC,那你就用DATE,然后用一堆api来做,也不难
      

  4.   

    //提醒时间
    varField.uiVal=3;
    varField.vt=VT_DATE; -->改为VT_UI2;
      

  5.   

    你取出来的时间应该是一个double型的数据,你应该要转换才行.ADO:_variant_t _vt = pRes ->GetCollect(_T("Date_FieldName"));
    if(_vt.vt == VT_DATE)
    {
    SYSTEMTIME st;
    VariantTimeToSystemTime(_vt.dblVal, &st);

                       CString strDT; strDT.Format(_T("%d-%02d-%02d %02d:%02d:%02d"), st.wYear, st.wMonth, st.wDay, 
    st.wHour, st.wMinute, st.wSecond);
    }
      

  6.   

    varField.uiVal=3; 
    varField.vt=VT_LPSTR
    m_pADOCEFields-> get_Item(varField,&m_pADOCEField); 
    m_pADOCEField-> get_Value(&varData); 
    pNote-> SetClock(varData.bstrVal); 既然你存的时候用的是文本,那取的时候也用文本取好了,不要用时间格式