用ADO访问Access的某表时,该表要求不能有主键。
在对数据进行update保存时候会报错,但直接对Access进行操作却不会出现问题。
这是怎么回事,有没有好的解决办法?前提是表不能加主键

解决方案 »

  1.   

    代码:
    //进行写入数据集保存的处理过程
    m_pRecordset->MoveFirst();
    m_pRecordset->Move(row-1L);
    for (long il=row; il<selRow; il++){
    for (long jl=col; jl<selCol; jl++){
    FieldPtr pField = m_pRecordset->Fields->GetItem(jl-1);
    BSTR strText; 
    m_pVSFlexGrid->get_TextMatrix( il, jl, &strText);
    if (strText==NULL){
    strText=(BSTR)" ";
    }
    try{
    pField->put_Value((_variant_t)strText);
    m_pRecordset->Update();
    }
    catch (_com_error &e){
    MessageBox("保存失败!","提示",MB_OK);
    }
    }
    if (!m_pRecordset->adoEOF){
    m_pRecordset->MoveNext();
    }
    }
    return S_OK;
      

  2.   

    SQL语句或表设计错误,和ADO没有关系。
      

  3.   

    错误信息是:"键列信息不足或不正确。更新影响到多行。"
    ==这个错误是由于这个表中存在完全相同的两条或者多条记录,当update时,数据库无法判断出你是要修改哪一条。
      

  4.   

    但是在Access中完全相同的数据行保存是成功的啊,有没有什么办法解决啊?
      

  5.   

    happyparrot(快乐鹦鹉) ( ) 信誉:172  2006-04-21 12:26:00  得分: 0  
     
     
       错误信息是:"键列信息不足或不正确。更新影响到多行。"
    ==这个错误是由于这个表中存在完全相同的两条或者多条记录,当update时,数据库无法判断出你是要修改哪一条。
      
     
       我是用的Recordset移到了要修改的行,并进行了修改。最后update的。不知道这样可以否?
      

  6.   

    问题已经解决,在建立connection时对游标设置错误。access不需要设置