我的程序有个变量row.我就是想把记录集中的第row行删除,谁能写出?我用到了ADO技术,大概为:
_ConnetionPtr pCon;
Cstring sql="delete table form (select top "+row"* from table) AS t1 where table.id=t1.id "     //这是删除前row行的,可是编译时也会抱错,我现在要的是删除第row行
//...

解决方案 »

  1.   

    Cstring sql="delete [table] where id=(select top 1 id from(select top " + row + " id from tb order by id)a order by id desc)"
      

  2.   

    Cstring sql="DELETE [table] FROM [table] a WEHRE " + row + "=(SELECT COUNT(1) FROM [table] b WHERE b.id<=a.id)";
      

  3.   

    Cstring sql="delete [table] where id=(select top 1 id from(select top " + row + " id from tb order by id)a order by id desc)"row=2
    这个应该不行吧,假如一共2条纪录
    select top " + row + " id from tb order by id 返回前2条纪录
    select top 1 id from(...)  是选择出了第1条纪录了
      

  4.   

    你要刪除第row條,如果你的表中記錄小于row條,那就無法按要求刪除了.那麼在兩種寫法後都加AND (SELECT COUNT(1) FROM [table])>=" + row就可以了.
      

  5.   

    select top 1 id from(...)  是选择出了第1条纪录了
    ============
    有个order by id desc
    是倒数第一行,即二行。