MFC下ODBC的使用问题!!

挺郁闷的,一个小问题郁闷了一天!

m_set=&GetDocument()->m_Data;
if(!m_set->IsOpen ())m_set->Open ();
CODBCFieldInfo IF;
LV_COLUMN lc;
lc.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
int i,j;
int nFields=m_set->GetODBCFieldCount ();
for(i=0;iGetODBCFieldCount ()
{
m_set->GetODBCFieldInfo ((int)i,IF);
lc.iSubItem=i;
lc.fmt=LVCFMT_CENTER;
lc.cx=750/nFields;//IF.m_strName .GetLength ()*10+16;
lc.pszText=IF.m_strName .GetBuffer(IF.m_strName .GetLength ());
m_List->InsertColumn(i,&lc);
}
i=0;
CString str;
//CDBVariant *var;
CDBVariant var;
if(m_set->IsEOF ())
{AfxMessageBox("当前记录集没有记录");
return;}
m_set->MoveFirst ();

LV_ITEM Item;
while(m_set->IsEOF ()==0)
{Item.mask=LVIF_TEXT;
Item.iItem=i;
Item.iSubItem=0;
//str=m_set->m_ordno;
m_set->GetFieldValue((short)0,str);

Item.pszText=str.GetBuffer (str.GetLength ());
m_List->InsertItem (&Item);
for(int j=1;jGetODBCFieldCount ();j++)
{m_set->GetFieldValue ((int)j,str);
m_List->SetItemText (i,j,str.GetBuffer (str.GetLength ()));

}
m_set->MoveNext ();
i++;
}

主要问题是GetFieldValue();的问题,老是提示无效的描述符索引,大家普遍反映是数据库字段顺序,与调用顺序不同的

原因,我改了n次终于放弃,换了一张表就OK,不过对于错误的原因还是没有搞清楚!!

 

你可能感兴趣的:(MFC下ODBC的使用问题!!)