怎样捕获这个错误消息~~~

snowbirdfly 2006-04-19 09:50:44
“由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。”
由于我在数据库中设置了主键(例如以用户名)~
同时往数据库中添加相同的信息,添加相同的用户名时,就会提示:上面的错误~~~
我也知道是由于保存重复内容造成上面的错误~
但是如何捕捉处理这样的错误呢???
就是当我输入数据,加入数据库中已经存在与输入相同的主键时,就会提示数据库中已经存在该信息.
感谢~~~
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2006-04-19
  • 打赏
  • 举报
回复
char errm[900];
try{
.....
}
catch(CDBException* e)
{
e->GetErrorMessage(errm,900);
e->Delete();
}
snowbirdfly 2006-04-19
  • 打赏
  • 举报
回复
恩~
已经搞定~~~
谢谢~~
handsomerun 2006-04-19
  • 打赏
  • 举报
回复
不用捕获来判断,用程序来判断

当你要插入一个值时,先判断,这个记录是否存在,如果已经存在,就给提示信息
lixiaosan 2006-04-19
  • 打赏
  • 举报
回复
Compare ? CompareNoCase
lixiaosan 2006-04-19
  • 打赏
  • 举报
回复
那就先查询是否有相同关键字,没有就插入
snowbirdfly 2006-04-19
  • 打赏
  • 举报
回复
我用的是ODBC~~
具体的功能是作一个注册功能~
UpdateData(TRUE);
CDBVariant varValues;
CServerDlg Server;
CLogOnSet m_recordset(&m_database);
CString strSQL;
strSQL.Format("select * from User_Password");
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
m_recordset.GetFieldValue(1,varValues);//提取数据库中用户名的信息,用于查找注册名是否已经被占用
//如果输入的用户名和数据库中的用户名相同,则提示用户名已经被占用
if(m_username.IsEmpty() || m_formpswd.IsEmpty() || m_formpswd.IsEmpty())
{
AfxMessageBox(_T("输入的信息不全\r\n请重试!"));
UpdateData(FALSE);//清空已经输入的信息
}
else if(m_username.Compare(varValues.m_pstring->GetBuffer(1)) == 0)//?为什么没有执行???
{
AfxMessageBox(_T("该用户名已经被占用!\r\n请重试!"));
m_username.Empty();//将信息清空
m_formpswd.Empty();
m_confirmpswd.Empty();
UpdateData(FALSE);//清空已经输入的信息
}
else if(m_formpswd.Compare(m_confirmpswd) != 0)//输入的两次口令不一致
{
AfxMessageBox(_T("输入两次的口令不相同!\r\n请重试!"));
m_formpswd.Empty();
m_confirmpswd.Empty();
UpdateData(FALSE);//清空已经输入的信息
}
//注册信息成功,将信息添加到数据库中
else
{
strSQL.Format("insert into User_Password values(\'%s\',\'%s\')",m_username,m_formpswd);
m_database.ExecuteSQL(strSQL);
AfxMessageBox(_T("恭喜注册信息成功!"));
}
请高手帮忙~~~
蒋晟 2006-04-19
  • 打赏
  • 举报
回复
depends on which database engine do you use.

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧