SQL Updatedata()报错

shui0501 2011-05-13 04:03:54
各位大侠:
小弟最近编写个程序,用ADO访问SQL Server,在调用m_pRecordset->Update()是有时报错,调试状态下直接进入msado15.dll中的 inline HRESULT Recordset15::Update(const _variant & Fields, const _variant_t &Values)
{
HRESULT _hr=raw_Update(Fields,Values);
if(FAILED(hr)) _com_issue_errorex(_hr, this, _uuidof(this));
return _hr;//错误提示在这里
}
请各位大侠分析具体原因
...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shui0501 2011-05-19
  • 打赏
  • 举报
回复
不能把,我把系统时间设置成主键,这个时间不能有一样的啊
zyq5945 2011-05-19
  • 打赏
  • 举报
回复
主键有重复的数据插入的时候会报这个错。
shui0501 2011-05-19
  • 打赏
  • 举报
回复
今天又在release下跑了2个多小时,结果崩出个错误,提示如下:
违反了PRIMARY KEY 约束‘PK_DW_HISTORY_DATA’,不能在对象‘DW_HISTORY_DATA’中插入重复键

请各位大侠分下什么意思?
zyq5945 2011-05-19
  • 打赏
  • 举报
回复
用GUID作主键,时间肯定没法保证是唯一的
API:CoCreateGUID或者数据库本身的newGuid
shui0501 2011-05-19
  • 打赏
  • 举报
回复
数据库里就有一个表 表名:DW_HISTORY_DATA
表中一共有4列
第一列为datatime 类型为:datetime 长度 8 非空
第二列为 MACHINE_ID类型为:VARCHAR 长度 10 非空
第三列为 JDU 类型为:VARCHAR 长度 100 非空
第四列为 WDU 类型为:VARCHAR 长度 100 非空

其中第一列为主键

请给位大侠分析一下结果
claro 2011-05-19
  • 打赏
  • 举报
回复
违反了PRIMARY KEY 约束‘PK_DW_HISTORY_DATA’,不能在对象‘DW_HISTORY_DATA’中插入重复键
数据问题导致的错误,检查更新或生成的数据。
zyq5945 2011-05-16
  • 打赏
  • 举报
回复
加异常捕获看是什么错误
try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}

shui0501 2011-05-16
  • 打赏
  • 举报
回复
还没搞定,请各位大侠赐教
King_hhuang 2011-05-14
  • 打赏
  • 举报
回复
try catch一下错误
秋~至~ 2011-05-14
  • 打赏
  • 举报
回复
LZ我们的问题一样啊,解决了没
shui0501 2011-05-13
  • 打赏
  • 举报
回复
这个报错是程序运行一段时间后发生,不是程序运行后立即出现的。

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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