如我现在的在职员工为
序号       工号
1          t01 
2          t02
3          t03
4          t04  
5          t05
现有序号为4的员工离职了。做了离职表后。我又要加新员工。这时,序号变为
1          t01
2          t02
3          t03
5          t05
6          t06//新增加的。这里序号4就永远没了。有没有办法补齐。各位在做这样的操作时是怎样做了。

解决方案 »

  1.   

    tmpquery1.sql.add('select 序号,工号 from 表 order by 工号');
    tmpquery1.open;
    for i:=1 to tmpquery1.recordcount do
    begin
       tmpquery1['序号']:=i;
       tmpquery1.next;
    end;
    tmpquery1.close
      

  2.   

    或者用一个虚拟列实现, 而不用编程.
    select rownum,工号 from 员工表rownum为序号只适合于oracle,其它数据库自己查参考书
      

  3.   

    效率好低啊!干吗这样这样数据库?如果有1万个职工,而且经常人来人往,呵呵,程序不要忙死啦!
    用GUID作为主键的类型,永远不重复,或者重复的概率很低,是极端的低。
    要知道有多少职工,呵呵,一句SQL查询就完成了,干吗这样设计数据库?不懂,不懂啊!
      

  4.   

    adoq_temp1.active:=true;
    adoq_temp1.edit;
    for i:=1 to adoq_temp1.recordcount do
    begin
      adoq_temp1.fieldbyname('employee_no').asinteger:=i;
      adoq_temp1.next;
    end;
    为什么总是说我的dataset不在edit或insert状态。
      

  5.   

    是不是adoq_temp1.edit要放在循环里面呢?
      

  6.   

    是的。应该把adoq_temp1.edit放在循环里面就对了。如:
    adoq_temp1.active:=true;
    for i:=1 to adoq_temp1.recordcount do
    begin
      adoq_temp1.edit;
      adoq_temp1.fieldbyname('employee_no').asinteger:=i;
      adoq_temp1.next;
    end;