我想用SQL语句来实现删除一条记录,CRecordset recset1;
CString sSql ="DELETE FROM [连接清单$]"
"WHERE 起始部位 = '"+stemp.buwei+"' AND 末端端子号 = '"+stemp.NO+"'"
"AND 末端部位 = '"+Frontbuwei+"' AND 末端端子号 = '"+FrontNO+"'";
recset1.Open(CRecordset::snapshot ,sSql,CRecordset::none);不知道这个语句问题在哪,初学数据库很多知识不理解,我自己理解成Open函数的参数不对,但是试过每个参数都得不到结果,
我还想过用记录集的delete函数来实现,但是因为每次删除之前都要判断,并且删除不是最终目的,只是为了读取一次删除一次,在下次读取的时候不重复出现,请问各位有没有什么好的语句,能帮我想个办法?

解决方案 »

  1.   


    CString sSql ="DELETE FROM [连接清单$] "--此處要加一個空格
    "WHERE 起始部位 = '"+stemp.buwei+"' AND 末端端子号 = '"+stemp.NO+"' "--此處要加一個空格
    "AND 末端部位 = '"+Frontbuwei+"' AND 末端端子号 = '"+FrontNO+"'";--還有末端端子号用了兩次,明顯不對,你應該有一個寫錯了
      

  2.   

    哦,这个是后来打得,应该是CString sSql ="DELETE FROM [连接清单$] "--此處要加一個空格
    "WHERE 起始部位 = '"+stemp.buwei+"' AND 起始端子号 = '"+stemp.NO+"' "--此處要加一個空格
    "AND 末端部位 = '"+Frontbuwei+"' AND 末端端子号 = '"+FrontNO+"'";
    但这样也是不对的,运行会出现错误
      

  3.   

    搜到这个帖子的可以用update来实现,
    CString sDelSql="UPDATE [连接清单$] SET 起始部位=NULL,起始端子号=NULL "
    "WHERE 起始部位='"+CurrentSItem.buwei+"' AND 起始端子号 = '"+CurrentSItem.NO+"' "
    "AND 末端部位 = '"+Frontbuwei+"' AND 末端端子号 = '"+FrontNO+"' ";
    database.ExecuteSQL(sDelSql);
    }
    这样就可以排除掉了