ODBC方式下,为何CRecordset删除SQL2000的表的记录总是出错!

Richuen22 2002-07-14 11:56:44
我用的是向导的方式,但m_nDefaultType = dynaset;(自己改的)
增加、修改都可以,唯独删除就总出错。
...全文
65 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Richuen22 2002-07-24
  • 打赏
  • 举报
回复
完整的出错语句是:
Delete语句与COLUMN REFERENCE约束'FK_Order_Details_Orders'冲突。该冲突发生于数据库'Northwind',表'Order Details',column 'OrderID'。语句已终止。
lishush 2002-07-23
  • 打赏
  • 举报
回复
出错语句是:Delete语句与COLUMN REFERENCE约束'FK_Order_Details_Orders'冲突.......

从这个出错上看,你应该还有一个“Details”的表,应该先删除该表中对应的记录,然后才能删除“Order”表中的记录
lishush 2002-07-23
  • 打赏
  • 举报
回复
Richuen22(丙爷) :
这是外键约束问题,应该先删除外键表内容,然后才能删除主键表内容。
Richuen22 2002-07-23
  • 打赏
  • 举报
回复
To small_wei(small):
没有。
无来 2002-07-21
  • 打赏
  • 举报
回复
把语句写上来看看
small_wei 2002-07-21
  • 打赏
  • 举报
回复
是不是在数据库表中有完全一样的记录
Richuen22 2002-07-21
  • 打赏
  • 举报
回复
其中class COrderRecord : public CRecordset
就是SQL2000样例的NorthWind下的Orders表
主要代码如下:
COrderRecord* pOrderRecord = new COrderRecord(&db);
pOrderRecord->Open();
pOrderRecord->MoveFirst(); //为了显示地说明是在头位
pOrderRecord->MoveNext(); 
pOrderRecord->Delete(); //这里出问题

出错语句是:Delete语句与COLUMN REFERENCE约束'FK_Order_Details_Orders'冲突.......

修改、增加数据都正确,唯独删除就总是出错。SQL权限为初装上时的。
daehappy 2002-07-21
  • 打赏
  • 举报
回复
up!gz!
Richuen22 2002-07-17
  • 打赏
  • 举报
回复
都不行。
wened 2002-07-14
  • 打赏
  • 举报
回复
好像游标要定位到记录上才删除的
while(1)
{
rsCustSet.MoveNext();
rsCustSet.Delete( );
if(rsCustSet.IsEOF())
break;
}
Richuen22 2002-07-14
  • 打赏
  • 举报
回复
To nuaawyd(我是菜鸟,我怕谁!):
不是update的问题,我把它删除了也是如此,我用Debug方式单步跟踪,是
执行到Delete语句时出现的错误。我想应是SQL2000权限的问题,或是VC有些地方要加的问题。
yuanyingtanxi 2002-07-14
  • 打赏
  • 举报
回复
nuaawyd(我是菜鸟,我怕谁!) 兄,再帮我看看我的问题
楼主也帮我看看,我用VC连SQL2000也是权限问题
http://www.csdn.net/Expert/TopicView1.asp?id=872746
nuaawyd 2002-07-14
  • 打赏
  • 举报
回复
要注意:
增加和修改时,可以用update,但是删除时不能用update

// Create a derived CRecordset object
CCustSet rsCustSet( &m_dbCust );
rsCustSet.Open( );

if( rsCustSet.IsEOF( ) || !rsCustSet.CanUpdate( ) ||
!rsCustSet.CanTransact( ) )
return;

if( !m_dbCust.BeginTrans( ) )
{
// Do something to handle a failure
}
else
{
// Perhaps scroll to a new record...
// Delete the current record
rsCustSet.Delete( );
// ...

// Finished commands for this transaction
if( <the user confirms the transaction> )
m_dbCust.CommitTrans( );
else // User changed mind
m_dbCust.Rollback( );
}
// ...

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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