写数据的时候你不要这样写,你用数字写,-1代表真,0代表假。注意:我上边说的是 Access 数据库!

解决方案 »

  1.   

    改成
    var=pRst->GetCollect("ph_ok");
    var.vt=VT_BOOL;
    var.boolVal=-1;
    pRst->PutCollect("ph_ok",var);
    pRst->Update();
    还是执行到pRst->PutCollect("ph_ok",var)会报错的,程序可以有问题?
      

  2.   


    VARIANT v; 
    v.vt=VT_BOOL;
    v.boolVal=VARIANT_TRUE;  ///////////!!!!!!
      

  3.   

    同意老猫, variant的布尔变量和一般布尔变量定义不同
      

  4.   

    按老猫改过还是执行到pRst->PutCollect("ph_ok",var)会报错的,程序可能有问题?往ACCESS库的是否类型字段写数据是不是不能这样写的?
      

  5.   

    pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hbdata.mdb;;;adModeUnknown";//打开数据库连接
    pConn->Open("","","",adConnectUnspecified);//打开数据库连接
    //MessageBox("建立与HBDATA数据库连接成功");
    pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
    pCmd->CommandText="select station,phdate,phtime,ph,cod,flow,nh4n,ph_ok,cod_ok,flow_ok,nh4n_ok from hbdata where ph_ok=0 or cod_ok=0 or flow_ok=0 or nh4n_ok=0 order by station,phdate,phtime";
    pRst=pCmd->Execute(NULL,NULL,adCmdText);
    是这样的,应该没有问题。