添加数据要求判断 如果数据库中有重复则不能添加。
例如:
写出如下代码:
BOOL CEMPdlg::EmpIsExist(LPTSTR kind)
{
CString sql;
sql.Format("select * from 职位信息 where 职位 = '%s'",kind);  
ADOConn m_AdoConn;           //ADOConn对象
m_AdoConn.OnInitADOConn();           //连接数据库
         m_AdoConn.ExecuteSQL((_bstr_t)sql);           //执行SQL语句
         if(m_AdoConn.GetRecordSet((_bstr_t)sql)->GetRecordCount() > 0)
return true;
return false;
m_AdoConn.ExitConnect();
}
来判断数据库中是否有重复。
然后在 添加模块 中有如下代码段:
if (EmpIsExist((_bstr_t)kinds))
{
MessageBox("职位已经存在.","提示",MB_OK|MB_ICONINFORMATION);
return;
                   }
         ......................................
来调用判断数据库重复函数。程序运行没错。
但遇到问题是:在运行中GetRecordCount的值始终为-1。也就是说 随便添加相同的“职位”都能添加进去。
违背了初衷,即相同职位只能有一个,如果添加重复的就会提示“职位已经存在”而不能添加。
求教高手 如何实现!

解决方案 »

  1.   

    m_AdoConn.ExecuteSQL((_bstr_t)sql); //执行SQL语句
    这个应该会返回一个记录集吧
    用这个记录集来判断
      

  2.   

    sql server 数据库不支持 GetRecordCount() 
      

  3.   

    ADO数据库中的GetRecordCount()会得到值-1
    你可以使用以下两种方法解决。
    1种方法)重载一下GetRecordCount()让它从第一个记录Move到最后一条记录。
    2种方法)更改游标类型为静态的
    m_pConnection->CursorLocation=adUseClient; //游标类型  
      

  4.   

    ADO数据库中的GetRecordCount()会得到值-1
    你可以使用以下两种方法解决。
    1种方法)重载一下GetRecordCount()让它从第一个记录Move到最后一条记录。
    2种方法)更改游标类型为静态的
    m_pConnection->CursorLocation=adUseClient; //游标类型