第一问:(20分)程序采用access2000数据库,ID为自动生成标识号long类型,程序代码如下:
CDaoRecordset rs(&m_dbPic);
try
{
rs.Open(&dtable, dbOpenDynaset, dbInconsistent);
}
catch(CDaoException *pe)
{
AfxMessageBox(pe->m_pErrorInfo->m_strDescription);
pe->Delete();
return FALSE;
}
COleVariant fieldVal1;        
         rs.FindFirst("ID = a");  ///a是函数的参数,调试时发现其值为5,即a=5
fieldVal1=rs.GetFieldValue(i);
        执行到注释行出错,提示:Microsoft Jet 数据库引擎不能把‘a’识别成有效的字段名或  表达式,请问应该怎么改啊?
第二问:(10分)当删除记录时,为什么ID值不变啊?如何设置数据源能使删除记录后,ID值随着变化?(access操作问题,见笑!)

解决方案 »

  1.   

    1.
    char temp[23];
    CString str_find = "ID = " + CString(itoa(a,temp,10));
    rs.FindFirst(str_find);
    2.
    什么叫ID值不变化?
      

  2.   

    第一个问题处理方法,如同tabby
    或者用filter也可
    第二个问题,只有添加得时候增加,删除得时候不会ID不会减少的
    如果多个表跟这个ID关联,如果这个ID减少了,那么得有多少个表跟着变动阿??
      

  3.   

    gooyan
    引用"如果多个表跟这个ID关联,如果这个ID减少了,那么得有多少个表跟着变动阿??"楼主的意思是想让显示数据时ID 能连续,即:显示的ID是数据库表 的自动编号.
    比如:删了第一条,那显示时,第一个数据的 ID就变为2 了.gooyan
    有别的解决办法吗?