用SQL SERVER 建立了一个数据库,其中有个表TableC,表有两列:列名:code  类型:char  长度:16
列名:name  类型:char  长度:255然后用ODBC建立了一个数据源名叫AskP,用VC.NET2003建立新类(ODBC使用者)绑定到表TableC,类名CTableC,其中两列分别绑定为:CString m_code;
CString m_name;当我生成该表的记录集后发现无论表中的内容是什么这两个变量都会被用空格填充到16和255个字符,即:
“A”变成“A                                     ”
“摄像机”变成“摄像机                           ”
诸如此类。请问如何解决,我试过将列的类型改为varchar,也不行。

解决方案 »

  1.   

    不对吧 类型为char的话是会这样的 改成varchar应该没事了
      

  2.   

    我试过将列的类型改为varchar
    ____________________________________________________
    不可能吧?俺一直是这么用的,
    对了,你建的新类中将变量初始化了吗?
    m_code = _T("");
    m_name = _T("");
      

  3.   

    我试过将列的类型改为varchar,也不行
    ____________________________________________________
    不可能吧?俺一直是这么用的,
    对了,你建的新类中将变量初始化了吗?
    m_code = _T("");
    m_name = _T("");
      

  4.   

    你用的是CHAR类型,它是定长的,不足部分用空格,改成VARCHAR就没有了,或用TRIM把空格去掉,但是查询时CHAR比VARCHAR快,你可以根据实际情况选择。
      

  5.   

    我试过将列的类型改为varchar,也不行
    ____________________________________________________
    不可能吧?俺一直是这么用的,
    对了,你建的新类中将变量初始化了吗?
    m_code = _T("");
    m_name = _T("");
      

  6.   

    char 是固定字长的,如果你的程序中字段的内容长度变化不大,而且要求时间效率很高,建议采用这种类型。如果存储长度不足定义长度,则左面用空格补足,如果长与定义长度,则截断。
    varchar可变字长,如果程序中此字段内容长度经常变化,而且对存储空间要求较少,对时间性能要求不高可以采用这种类型。