truncate delete区别
昨天刚学习了数据库的基本四项操作——增删改查。于是就用到vs2010对数据库的表进行操作。可是后来却发现一个问题:在用delete语句时,不能删除条件给出项,却始终把表的第一项删除了。





    于是打断点,调试,发现程序中,用户给出条件后,赋值给SID,即db.m_strFilter = str,右边str=3了,可是前面db.m_strFilter却没有变,仍旧是为1:

猜测前面给出条件时,表中指针仍旧是指向第一列,也就是说虽然给出条件咛赋值成功,但却没有改变指针的指向

打开文档,再查看delete的用法,文档中是这样解释的:“Delete:Deletes the current record from the recordset. You must explicitly scroll to another record after the deletion。”意思说是删除当前记录。反过来说,也就是我们之前的做法,当前记录即是在第一列。反思解决方法,如果在打开表之前先把条件赋值,应该 就能在打开表之后把指针指向“SID=3”的那一列了:

再进行操作,删除SID==11的一列,结果可见,已经成功:

编程的乐趣就在于不断发现问题,解决问题。当你做出一个产品之后就会产生一种成就感,正式这种成就感驱动下才会对枯燥的代码孜孜不倦。
关于Crecordset::delete的使用
bbs.qiuxueke/forum.php?mod=viewthread&tid=2354&fromuid=729

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。