使用Access库,原本有1000多条记录,然而才MoveNext()了九次就出现“数据被截断”消息框,请问是怎么回事?
请问大虾看看我的过程是否有误:1.建立Dialog-based应用程序
2.Insert->New Class: 以CRecordset为基类创建了CMyRS类,ODBC源选择MyFirstDSN(是test.mdb数据库), dynaset和snapshot都试过了
3.#include <afxdb.h>加入stdafx.h
4.加入Button1,m_list(ListBox), m_rs(CMyRS)
OnButton1
{
m_rs.Open();

m_rs.MoveLast();
m_rs.MoveFirst(); while(!m_rs.IsEOF())
{
m_list.AddString(m_rs.m_col1); // m_col1是m_rs绑定的列名
m_rs.MoveNext();
} m_rs.Close();
}
我的意图是把col1列的数据加入到listbox中,然而只加了九条就出现上述错误,请问这是为什么啊?SOS!!!!!!!!!!!!!!!!!!!!
谢谢啦!!!

解决方案 »

  1.   

    去掉m_list.AddString(m_rs.m_col1); 行是否好?
      

  2.   

    去掉m_list.AddString()只留MoveNext()也没用!!!
      

  3.   

    m_list有没有限制显示的长度?
      

  4.   

    主要是在你的以CRecordset为基类创建了CMyRS类中CMyRS::DoFieldExchange 的函数
    void RFX_Text( CFieldExchange* pFX, const char* szName, CString& value, int nMaxLength = 255, int nColumnType = SQL_VARCHAR, short nScale = 0 );
    注意:int nMaxLength = 255 出错就是这里,将255改为所你实际需的长度如1000就行了