我发现是跑到 nValue = 0; 那边去了,所以变为0了。怎么会这样子呢?
pRs->GetFieldValue("disCPercentage",m_discount);
其中disCPercentage在数据库中是int型的,m_discount也是int 型的,但这样子的话在表单中显示的是0。

解决方案 »

  1.   

    这种情况是不可能发生的,int的参数CString是传不进去的,你看看肯定有其他重载过的方法,或者你跟踪一下看看。
      

  2.   

    那是通过传址调用 int& nValue ,重载的一定是这个函数,我再看看,可能不是重载这个函数,谢谢,发现问题了继续问
      

  3.   

    真是想不通啊,pRs->GetFieldValue("disCPercentage",m_discount);其中m_discount就是int型的啊,不是调用那个函数是调用哪个呢?如果我改下
    default:
    nValue = 123;
    return FALSE;
    那么得到的就是123,如果用
    pRs->GetFieldValue("disCPercentage",strDiscount);
    m_discount=atoi(strDiscount);
    则disCPercentage里是什么值m_discount就是什么值
      

  4.   

    我看是vtFld.vt这边的问题了,vtFld.vt是什么意思呢?我看我需要的应该就是
    case VT_I2:
    val = vtFld.iVal;《Visual C++ 实践与提高--数据库开发与工程应用篇》这本真是垃圾,自己都没用GetFieldValue来获得时间,money类型的来做例子,用int型做例子,没办法,心里火呢,所以骂骂!
      

  5.   

    看一下网上的Carlos Antollini 写的 ado.h,ado.cpp。我手头有2.04版
      

  6.   

    都搞定了,谢谢楼上的,后来发现《Visual C++ 实践与提高--数据库开发与工程应用篇》封装的ado.h、ado.cpp还真是垃圾!!!自己随便封装一下都比它强!!
      

  7.   

    都搞定了,谢谢楼上的,后来发现《Visual C++ 实践与提高--数据库开发与工程应用篇》封装的ado.h、ado.cpp还真是垃圾!!!自己随便封装一下都比它强!!
    -----------
    呵呵,懂得原理了,用起来就灵活,不需要人家的
      

  8.   

    GetFieldValue()这个读取是不是有长度限制啊