这个问题已经困饶小第2个星期了,我用过DBGridEh控件,可是这个空间只能在最底下显示行数,并不能对行实行自动编号,各位大虾有什么好的控件或是好的解决方法啊??小弟跪求了!!!

解决方案 »

  1.   

    你其实可以直接在SQL语句中写好了
      

  2.   

    直接在SQL中写??如何写??数据库是sybase11.9.2,我记忆中好象没有对行自动编号的函数,只有count函数。
      

  3.   

    我没有用过这个数据库,但是在SQL SERVER中可以这样用的
    select *,IDENTITY(int,1,1) as NewCol into #tmp from publishers,这个函数可以产生序列号,但是一定要和INTO语句一起用,你看看在你那个sybase11.9.2中有没有
      

  4.   

    如果你的关键字是排序的话,这样的语句可以实现新增序列号
    select T.*,count(*)  from publishers T,(select * from publishers )S
    where T.pub_id>=S.pub_id
    group by T.pub_id,T.pub_name,T.city,T.state,T.country数据表publishers 是SQL SERVER中自带的那个数据库PUB中的表。你可以根据这个思路试试,至少我的这个语句我验证是对的
      

  5.   

    结帖,问题已经解决,在QUERY字段加入一个计算字段,然后写QUERY的OnCalcFields事件,代码如下:Query1.FieldByName('ID').AsInteger:=Query1.RecNo;
      

  6.   

    这个只能解决固定字段,如果你是对DBGRID动态赋值这个方法就解决不了,还是采用
    AdoQuery.text:='select *,IDENTITY(int,1,1) as Reco into #tmp from publishers Select * From #temp drop table #temp';
    这样可以解决各种类型的问题
      

  7.   

    只能在数据库里设计一个自动编号字段,然后把dbgrideh设为点击标题排序。这就解决了。
    对于指定字段进行汇总,可以在dbgrideh 设一个footer.