谢谢!

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1315/1315247.xml?temp=.1358606
    http://expert.csdn.net/Expert/topic/1333/1333910.xml?temp=.1165277
      

  2.   

    看下面的代码就知道了_RecordsetPtr m_pRecordset;
    .....bool CADOParamSet::GetFieldInfo(int nIndex, CADOFieldInfo *fldInfo)
    {
    _variant_t vtFld;
    _variant_t vtIndex;

    vtIndex.vt = VT_I2;
    vtIndex.iVal = nIndex;

    strcpy(fldInfo->m_strName, (LPCTSTR)m_pRecordset->Fields->GetItem(vtIndex)->GetName());
    //fldInfo->m_lSize = m_pRecordset->Fields->GetItem(vtIndex)->GetActualSize();
    fldInfo->m_lDefinedSize = m_pRecordset->Fields->GetItem(vtIndex)->GetDefinedSize();
    fldInfo->m_nType = m_pRecordset->Fields->GetItem(vtIndex)->GetType();
    fldInfo->m_lAttributes = m_pRecordset->Fields->GetItem(vtIndex)->GetAttributes();
    return true;
    }BOOL CADOParamSet::GetFieldNameArray(CStringArray &NameArray, CString TableName)
    {
    NameArray.RemoveAll();
        CADOFieldInfo info;
        
        CString openstr;
    openstr.Format("select * from %s",TableName);
    Open(openstr,CADORecordset::openUnknown);
    int count=m_pRecordset->Fields->GetCount();
    if(count<=0)
         return false; for(int i=0;i<count;i++)
    {
    GetFieldInfo(i,&info);
    NameArray.Add(info.m_strName); }
    return true;
    }
      

  3.   

    struct CADOFieldInfo
    {
    char m_strName[30]; 
    short m_nType;
    long m_lSize; 
    long m_lDefinedSize;
    long m_lAttributes;
    short m_nOrdinalPosition;
    BOOL m_bRequired;   
    BOOL m_bAllowZeroLength; 
    long m_lCollatingOrder;  
    };要完整的类可以到我网站上载,codetools上也有,我的是加工过的简易版
      

  4.   

    select name from syscolumns where id=object_id(YouTableName);
    使用这个语句