select * from kcbp.dbf order by jh,kdh,sid

解决方案 »

  1.   

    1.你应该还有个学生_科目表吧(除非所有的学生参加所有的考试),假设现在你有如下的表:
        学生_科目S_j(sid,nam,jh),KInfor试室信息表(kdh,kdmc),还有你给出的表
        你的问题是按照你的要求向KCBP.DBF中插入数据,对吗?
    2.如果是这样的话,可以试试.
      Function Getkdh(I:integer;wantfield:string) :string
       Begin
        Query1.FieldByName(wantfield).AsString;
        If  I mod 30 =0 then 
      Query1.Next;
      End;
      插入的过程如下:
       with Query1,Query1.Sql do begin
         Clear;
         Add('select * from Kinfor order by kdfh’);
         Open;
       end;   with Query2,Query2.Sql do begin
         Clear;
         Add('insert into kcbp');
         Add(' (select sid, nam, jh, ((count(sid)-1) mod 30)+1)), 
         Getkdh(count(sid)/30,’kdh’), GetKdh(count(sid)/30,’kdmc’) form S_j group by jh )');
         ExecSql;
       end;
       3. 如果不是这样,请在解释解释你的意思,希望能帮的上忙.
      

  2.   

    完整的问题是这样的:
    要程序实现以下功能:
      1.初始化
       处理:除学生基本情况外清空所有数据库、建立索引、接收Kc-jh.dbf(选择输入的路径,考试时间库:jh(科目代码)、day(考试日期,日期型)、zksj1(正考开始时间)、zksj2(正考结束时间)、bksj1(补考时间开始时间)、bksj2(补考结束时间))
        2.学生基本情况
          实体:学生
          属性:学号(12位长字符串)、姓名、班号(10位长字符串)、班名称
          处理:录入、磁盘转入(来自数据库/文本文件,选择输入的路径)、综合查询(包括某班的在册人数)、打印
        3.科目情况
          实体:科目
          属性:科目代码(3位长字符串,由学生基本情况转入)、科目名称(28位长字符串)
          处理:磁盘转入(来自数据库kmk.dbf/文本文件,选择输入的路径)、查询、增加
        4.报考情况
          实体:考生
          属性:学号(12位长字符串,由学生基本情况转入)、科目代码(3位长字符串)
          处理:录入、磁盘转入(选择输入的路径、注意避免重复)、修改、删除、综合查询(包括某科目的报考人数)、打印
        5.试室情况
          实体:试室
          属性:试室编号(3位长字符串001-999)、试室名称(12位长字符串)、打印
          处理:录入、修改、删除、查询、打印
        6.编排考场情况
          实体:考生
          属性:学号(12位长字符串,由报考转入)、姓名(由学生基本情况转入)、座位号(01-30)、科目代码(3位长字符串,由报考情况转入)、试室编号(3位长字符串001-999)、试室名称(12位长字符串,由试室情况转入)
          处理:试室编排(先按科目代码顺序,接着按试室编号顺序,以按学号顺序/随机两种方式编排试室,注:每试室只能安排30名考生)、综合查询、打印(按试室打印)
      

  3.   

    seewell(草原之子)您哪里去了!帮我实现5、6实体的功能!
      

  4.   

    to seesell(草原之子)
    试室编排还未搞定呀!请看看我上面补充的完整问题。
    实体1-6的库依序为:
    学生基本库basdata.dbf(sid,nam,eid,class)//学号,姓名,班号,班名称
    科目库kcjh.dbf(jh,kcm)//科目代码,科目名称
    报考库ksbmk.dbf(sid,kd)//学号,科目代码
    试室库kdqkk.dbf(kdh.kdmc)//试室编号,试室名称
    编排库kcbp.dbf(sid,name,jh,kdh,kdmc)//学号,姓名,科目代码,试室编号,试室名称
    注:编排库没有座位号字段,要在打印时按下面格式打印,但如果有座位号字段又如何处理?
    格式:1                16
         2                17
         .                .
         .                .
         .                .
         .                .
         15               30 
    除了试室编排问题,还有一个问题想请您指教:在初始化中如何接收考试的相关信息?请不要见怪,我是第一次用delphi编写程序及数据库程序。
      

  5.   

    seewell(草原之子)帮忙呀! 
      

  6.   

    to seesell(草原之子)
    试室编排还未搞定呀!请看看我上面补充的完整问题。
    实体1-6的库依序为:
    学生基本库basdata.dbf(sid,nam,eid,class)//学号,姓名,班号,班名称
    科目库kcjh.dbf(jh,kcm)//科目代码,科目名称
    报考库ksbmk.dbf(sid,kd)//学号,科目代码
    试室库kdqkk.dbf(kdh.kdmc)//试室编号,试室名称
    编排库kcbp.dbf(sid,name,jh,kdh,kdmc)//学号,姓名,科目代码,试室编号,试室名称
    注:编排库没有座位号字段,要在打印时按下面格式打印,但如果有座位号字段又如何处理?
    格式:1                16
        2                17
        .                .
        .                .
        .                .
        .                .
        15              30 
    除了试室编排问题,还有一个问题想请您指教:在初始化中如何接收考试的相关信息?请不要见怪,我是第一次用delphi编写程序及数据库程序。 
      

  7.   

    to seesell(草原之子)
    试室编排还未搞定呀!请看看我上面补充的完整问题。
    实体1-6的库依序为:
    学生基本库basdata.dbf(sid,nam,eid,class)//学号,姓名,班号,班名称
    科目库kcjh.dbf(jh,kcm)//科目代码,科目名称
    报考库ksbmk.dbf(sid,kd)//学号,科目代码
    试室库kdqkk.dbf(kdh.kdmc)//试室编号,试室名称
    编排库kcbp.dbf(sid,name,jh,kdh,kdmc)//学号,姓名,科目代码,试室编号,试室名称
    注:编排库没有座位号字段,要在打印时按下面格式打印,但如果有座位号字段又如何处理?
    格式:1                16
        2                17
        .                .
        .                .
        .                .
        .                .
        15              30 
    除了试室编排问题,还有一个问题想请您指教:在初始化中如何接收考试的相关信息?请不要见怪,我是第一次用delphi编写程序及数据库程序。 
      

  8.   

      我来了,我看看能不能帮上忙,TAKE CARE!
      

  9.   

    1. 关于试室编排:
       你觉得你是想往编排库kcbp.dbf(sid,name,jh,kdh,kdmc)中插入数据,对吗? 我想到一种方法,但是有点笨.呵呵
       var
        sidnumber,i,j:integer;
        strkm: string
      
       Function Getkdh(I:integer;wantfield:string) :string
       Begin
        result := QryKdh.FieldByName(wantfield).AsString;
           If  I mod 30 =0 then 
         Query1.Next;
       End;  with Qrykdh,Qrykdh.Sql do begin
        Clear;
        Add(select * from kcjh order by jh);
        Open;
      end;   with Query1,Query1.Sql do begin
         Clear;
         Add('select count(sid) as sidnum,kd from ksbmk group by kd');
         Open;
       end;
      Query1.First;
      while not Query1.Eof then begin
        for i:=0 to Query1.recordcount-1 do begin
          sidnumber:=Query1.FieldByName('sidnum').AsInteger;
          strkm := Query1.FieldByName('kd').AsString;
          with Query3,Query3.Sql  do begin
            Clear;
            Add('select basdata.sid as aa,name,kd from basdata,ksbmk where basdata.sid=ksbamk.sid and ksbmk='+strkm);
            Open;
          end;      for j:=0 to sidnumber-1 do
          with Query2,Query2.Sql do begin
            Clear;
           Add(format('insert into kcbp values(%s,%s,%s,%s,%s)',[Query3.FieldByName('aa').AsString, Query3.FieldByName('name').AsStirng, Query3.FieldByName('kd').AsString,Getkdh(j,'kdh'),Getkdh(j,'kdmc')]);
             ExecSql;
          end;
        end;
      end2. 在初始化中如何接收考试的相关信息?
      你有接收界面吗?你是想向Kc-jh.dbf里手动插入数据还是由此盘或文件导入?  
      

  10.   

    to seesell(草原之子)  在您给我的解答上我有疑问,您可以给我您的E-Mail地址吗?方便请教哦!我的E-Mail:[email protected]请指教!