[Error] Unit1.pas(37): Type 'Student' needs finalization - not allowed in file type我定义的记录类型老是编译不通过

解决方案 »

  1.   

    implementation
      type
        Student=record
         v_date:string;
         v_start:integer;
         v_max:integer;
         v_min:integer;
         v_end:integer;
         v_bargain:integer;
         v_content:integer;
      end;
        StudentFile=File of Student;
      var
        VFStudent:StudentFile;
        Stu:Student;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
     var
       fn:string;
    begin
        opendialog1.execute
        fn:=opendialog1.FileName;
        assignfile(VFStudent,fn);
        reset(VFStudent);
        seek(VFStudent,3);
        read(VFStudent,Stu);
        query1.Close;
        query1.SQL.Clear;
        query1.SQL.add('insert into glue values');
        query1.SQL.Add('(strtodatetime(Stu.v_date),Stu.v_start,Stu.v_max,Stu.v_min,Stu.v_end,Stu.v_bargain,Stu.v_content)');
        query1.Prepare;
        query1.ExecSQL;
        query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add('select * from glue')
        closeFile(VFStudent);end;end.
      

  2.   

    你的v_date:string;是字符串
    不能那么写,用个参数吧。例如
    implementation
      type
        Student=record
         v_date:string;
         v_start:integer;
         v_max:integer;
         v_min:integer;
         v_end:integer;
         v_bargain:integer;
         v_content:integer;
      end;
        StudentFile=File of Student;
      var
        VFStudent:StudentFile;
        Stu:Student;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
     var
       fn:string;
    begin
        opendialog1.execute
        fn:=opendialog1.FileName;
        assignfile(VFStudent,fn);
        reset(VFStudent);
        seek(VFStudent,3);
        read(VFStudent,Stu);
        query1.Close;
        query1.SQL.Clear;
        query1.SQL.add('insert into glue values');
        query1.SQL.Add(':#date,Stu.v_start,Stu.v_max,Stu.v_min,Stu.v_end,Stu.v_bargain,Stu.v_content)');
        Query1.ParamByName('#date').AsString := v_date;
        query1.Prepare;
        query1.ExecSQL;
        query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add('select * from glue')
        closeFile(VFStudent);end;end.
      

  3.   

    glue表中的属性Vdate是日期型的,由于DELPHI的基本类型中没有日期型我才用字符串代替,
    插入数据的时候才要做个转换
    strtodate(Stu.v_date)是符合要求,
    主要是记录类型student编译不通过,finalization是错误原因,我不懂该怎么改