最近做一个东西,碰到几个问题,请大家帮忙解决一下。
1:怎么样快速有效的检索出数据库中的重复记录?只检索其中的某一个字段,数据库的记录数很多,怎样才能做到高效?
2: 使用ADOquery,第一次编辑某一条数据,正常。但第二次编辑该条数据时,报错:“无法更新定位行,一些值可能已经已在最后一次读取后更改”。后来在编辑完成post后refresh了一下,不报错了。但是好像刷新数据库的这个方法不太好,影响速度,请问有没有其他好方法?
3:用ENlib的DBgridEh控件,想把表格黑色箭头标示的记录(即指针指向的记录)突出用某种颜色表示,应该如何做?在DrawColumnCell事件中写了 
 if State = [gdSelected, gdFocused] then
  begin
   DBGrid1.Canvas.Brush.Color := clLime;
   DBGrid1.Canvas.Font.Color := clBlack;
 end;
 但是不起作用,不知道为什么?
4:有没有什么办法可以把主程序的数据模块中的某个ADOquery传递到DLL中使用?可以的话请帮忙给出代码。

解决方案 »

  1.   

    select a.id from _a as a where a.id in (select id from _b as b where (b.id <> a.id) and (a.name = b.name))
      

  2.   

    不好意思,弄错了,检查重复记录,请试试:
    select id from _a as a where a.id in (select id from _a as b where (b.id <> a.id) and (a.name = b.name))
      

  3.   

    1、查询重复记录:
    select * from a where id in (select  id from  a group  by  id having  count(id) > 1)
      

  4.   

     谢谢xiaxia421!不知道效率怎么样,试一下。
     其他几个问题呢?还请各位指教!
     手上没有分,真是不好意思