我在学习一个DELPHI的MDI的数据库管理程序,在登录到主窗口后,点击人事管理下的添加新员工时,出现提示: project personnel.exe raised exception class evarianterror with message 'invalid type conversion'.process stopped.
use step or run to continue.
     程序代码如下:
     procedure TF_add.AddInit;
var
  counter:integer;
  id:String;
begin
  With DataModule1 do
  begin
    //生成员工号
    T_counter.Filter:='ID=''P''';
    T_counter.Filtered:=True;
    T_counter.Open;
    counter:=T_counter['COUNTER_VALUE'];
    T_counter.Close;
    id:='00000'+IntToStr(counter);
    id:='P'+Copy(id,length(id)-4,5);
    //增加新记录
    T_add_user.Open;
    T_add_user.Append;
    T_add_user['ID']:=id;
    T_add_user['SEX']:='M';
    T_add_user['STATE']:='T';
    i_passwd.Text:=id;
  end;
end;procedure TF_add.FormCreate(Sender: TObject);
begin
  F_main.M_add.Enabled:=False;
  F_main.TB_add.Enabled:=False;
  Width:=272;
  Height:=469;
  With DataModule1 do
  begin
    if not T_department.Active then T_department.Open;
    if not T_job.Active then T_job.Open;
    if not T_edu_level.Active then T_edu_level.Open;
  end;
  AddInit;
end;
----------
数据库如下:
SQL Statement
/* Table: PERSON, Owner: MISDBA */
CREATE TABLE PERSON (ID CHAR(6) NOT NULL,
        PASSWD CHAR(20) NOT NULL,
        AUTHORITY CHAR(1) DEFAULT '0',
        NAME VARCHAR(10),
        SEX CHAR(1) DEFAULT 'M' NOT NULL,
        BIRTHDAY TIMESTAMP,
        DEPARTMENT CHAR(3),
        JOB CHAR(3),
        EDU_LEVEL CHAR(1),
        SPECIALTY VARCHAR(20),
        ADDRESS VARCHAR(50),
        TEL VARCHAR(20),
        EMAIL VARCHAR(50),
        STATE CHAR(1) DEFAULT 'T',
        REMARK VARCHAR(4000),
CONSTRAINT PERSON_ID PRIMARY KEY (ID));SQL Statement
/* Table: PERSONNEL, Owner: MISDBA */
CREATE TABLE PERSONNEL (ID INTEGER NOT NULL,
        PERSON CHAR(6) NOT NULL,
        CHANGE CHAR(1) NOT NULL,
        RECORD_TIME TIMESTAMP NOT NULL,
        DESCRIPTION VARCHAR(4000),
CONSTRAINT PERSONEL_ID PRIMARY KEY (ID));SQL Statement
/* Table: DEPARTMENT, Owner: MISDBA */
CREATE TABLE DEPARTMENT (ID CHAR(3) NOT NULL,
        NAME VARCHAR(20) NOT NULL,
        MANAGER CHAR(6),
        INTRO VARCHAR(4000),
CONSTRAINT DEPARTMENT_ID PRIMARY KEY (ID));SQL Statement
/* Table: EDU_LEVEL, Owner: MISDBA */
CREATE TABLE EDU_LEVEL (CODE CHAR(1) NOT NULL,
        DESCRIPTION VARCHAR(20) NOT NULL,
CONSTRAINT EDU_LEVEL_CODE PRIMARY KEY (CODE));SQL Statement
/* Table: JOB, Owner: MISDBA */
CREATE TABLE JOB (CODE CHAR(3) NOT NULL,
        DESCRIPTION VARCHAR(20) NOT NULL,
CONSTRAINT JOB_CODE PRIMARY KEY (CODE));SQL Statement
/* Table: PERSONNEL_CHANGE, Owner: MISDBA */
CREATE TABLE PERSONNEL_CHANGE (CODE CHAR(1) NOT NULL,
        DESCRIPTION VARCHAR(20),
CONSTRAINT PERSONNEL_CHANGE_CODE PRIMARY KEY (CODE));SQL Statement
/* Table: COUNTER, Owner: MISDBA */
CREATE TABLE COUNTER (ID CHAR(1) NOT NULL,
        COUNTER_VALUE INTEGER,
        DESCRIPTION VARCHAR(10),
CONSTRAINT COUNTER_ID PRIMARY KEY (ID));SQL Statement
/*  ForeignKey DEPARTMENT  */
ALTER TABLE PERSON
  ADD CONSTRAINT DEPARTMENT
  FOREIGN KEY (DEPARTMENT)
  REFERENCES DEPARTMENT;
/*  ForeignKey EDU_LEVEL  */
ALTER TABLE PERSON
  ADD CONSTRAINT EDU_LEVEL
  FOREIGN KEY (EDU_LEVEL)
  REFERENCES EDU_LEVEL;
/*  ForeignKey JOB  */
ALTER TABLE PERSON
  ADD CONSTRAINT JOB
  FOREIGN KEY (JOB)
  REFERENCES JOB;
/*  CheckConstraint SEX  */
ALTER TABLE PERSON
  ADD CONSTRAINT SEX
  CHECK (SEX='M' OR SEX='F');
/*  CheckConstraint STATE  */
ALTER TABLE PERSON
  ADD CONSTRAINT STATE
  CHECK (STATE='T' OR STATE='F');
/*  ForeignKey CHANGE  */
ALTER TABLE PERSONNEL
  ADD CONSTRAINT CHANGE
  FOREIGN KEY (CHANGE)
  REFERENCES PERSONNEL_CHANGE;
/*  ForeignKey PERSON  */
ALTER TABLE PERSONNEL
  ADD CONSTRAINT PERSON
  FOREIGN KEY (PERSON)
  REFERENCES PERSON;
/*  ForeignKey MANAGER  */
ALTER TABLE DEPARTMENT
  ADD CONSTRAINT MANAGER
  FOREIGN KEY (MANAGER)
  REFERENCES PERSON;
如果把AddInit 注释掉程序就不会出此提示,请问是哪里错了啊!!!
    菜鸟呈上!