大家好,我用Delphi2007,我现在是想这样做,不知道可不可以实现:
我有一已存在的表,并且还有一个记录集,结构想同,记录集中的记录既有要更新表的记录也有需要增加的记录,主键为标志,
我的想法是AdoDataSet怎样才能一次将记录需要更新的记录取出来,然后就可以在DataSet中更新,如果用笨点的方法也可以实现,但我认为这样效率比较高,因为是服务器端用,这样可以节省很多的资源,大家看看有没有实现的方法或是有什么变通的方法.    再次谢谢大家

解决方案 »

  1.   

    忘了说,数据库是SQL Server 2000或SQL SERVER 2005
      

  2.   

    像楼主这样的问题,真需要用数据集打开表,然后遍历表,根据要求去修改即可.qry.open;
    qry.first;
    while not qry.eof do
    beign
    //...每个记录的处理操作
    qry.next;
    end;
      

  3.   

    2楼的兄弟,我明白是要这样做的,你提出的是后一步,而前一步是如何从数据库中取得记录集cds中存在的数据到ADODataSet中,这样下一步就可以按兄弟你的遍历表方法处理了(如果记录存在则编辑,不存在记录则增加记录).其中的关键问题就是,怎么才能按记录集CDS的主键来作条件,让ADODataSet一次性取出全部CDS中已有的记录,这样效率比较高.
      

  4.   

    提供思路:
    分两步
    1.把cds里的主键id保存到一列表中(如Tstringlist或其他,项之间加',')
    2.select * from 表 where id in (Tstringlist的text)