原来数据库的字段定义是char,由于想要自动排序就将字段改成了int,用char时listctrl能显示,修改后则提示“数据被截断”,请问如何修改?数据库连接方式是odbc连sql2000,已经重新建立recordset,现部分代码:
int i=0;
char   a[200];
while(!m_recordset.IsEOF())
{

m_ctrList.InsertItem(i,buffer);
m_ctrList.SetItemText(i,0,ltoa(m_recordset.m_a,a,10));
m_ctrList.SetItemText(i,1,m_recordset.b);
}
大体意思就是想把数据从数据库获取出来之后从listctrl显示出来,现在就是提示数据被截断,如何解决,谢谢了,如需要代码可以提供。

解决方案 »

  1.   

    是表中的有的数据长度太长了.主要是这个函数,请看: 
    void   RFX_Text(   CFieldExchange*   pFX,   const   char*   szName,   CString&   value,   int   nMaxLength   =   255,   int   nColumnType   =   SQL_VARCHAR,   short   nScale   =   0   ); 注意int   nMaxLength   =   255如果你不指定长度的话就只有255所以超过255就会出错,使用这个函数时,指定长度,就不会出错了.
      

  2.   

    定义一个CString 变量,然后用Fromat();格式化