vb可以用
rs.Fields(0)这样的形式来取值
vc里怎么办
_RecordsetPtr m_pRecordset;
我以前一直是这样的
m_pRecordset->GetCollect("xxxx")
在线等待谢谢

解决方案 »

  1.   

    很明显是数据库啊,数据库不是取值的时候vb可以这样取吗
    rs.Fields(0)//取第一个
    rs.Fields(1)//取第二个
    大家都是用的ado
    那vc里要类似这样的怎么做,我在vc里这么定义的
    _RecordsetPtr m_pRecordset;
    m_pRecordset->后面也有个Fields的,但是应该怎么写呢
      

  2.   

    CDBVariant varValue;
    m_pRecordset->GetFieldValue(0,varValue);
      

  3.   

    _RecordsetPtr 没GetFieldValue这个成员函数的
      

  4.   

    这样,m_pRecordset->GetCollect(_variant_t("xxxx")
      

  5.   

    试试我的办法,这样可以了吧,abrams(偶是大傻瓜)同志
      

  6.   

    我真的要吐血了,我就是不想这样而是直接输入列数的序列号(int)型的,你说的GetCollect不就是我最原先的方法吗,我还不用加variant呢,我要的是vb里面的rs.Fields(i)<------括号里面是int类型(vc里怎么写)
    我 要 的 是 这 样 的 效 果
      

  7.   

    靠早说啊,这样:
    _variant_t vt;
    vt.vt=VT_I4;
    vt.LONG=1;
    m_pRecordset->GetCollect(vt)
    可以吧。
      

  8.   

    vt.long=1;报错error C2059: syntax error : '='
    我用了vt.long=(long)1也没用,改成大写没用,小写还是没用
      

  9.   

    是我搞晕了,long是类型lVal才是变量。不过你也应该看出啊。哎,你我够菜啊
      

  10.   

    不是啊,ival我也试过,可以运行但是报错,单步跟踪后,发现越错越离谱了,居然连
    m_pRecordset.CreateInstance("ADODB.Recordset");
    也报错,最后发现,我连odbc驱动程序都坏了,sqlservr不能用,access新建打开mdb文件也都报错,我靠,完了
    你这样一定没问题吧,我现在没办法调试了,:(先吧分数送上再说,我再另外开一个100分的,你进来
      

  11.   

    我不知道是否可以,好像是odbc的驱动坏了,没法调试了
      

  12.   

    谢谢,我是说我odbc驱动好像坏了,sqlserver无法工作,access也无法工作,他们本身都无法运行,我写的代码还能说什么呢,估计刚才来了一下reset引起的,我靠,气死我了
      

  13.   

    你还在吗?你是不是玩我。我编了一段,没问题啊。我用access建库,VC6编码,2000下运行,取出来啊。呵呵不过我用_variant_t vt,vtr;
    vt.vt=VT_I2;  //看清了,不好意思
    vt.iVal=0;
    vtr=pRs->GetCollect(vt);原因很简单,ODBC定义字段索引为短整形,咱给个长整形,但是他仍取短整形,里面是随机数,不搞崩你的机器才怪
      

  14.   

    TNN的,不知它到底取VT_I4还是VT_I2,两个都可以,我试了。