急~~~~~关于Delphi的数据的插入
用table就会在所在部门报错:classEVariantTypeCastError with message 'Could not convert varient of type(null) into type(string). '
要是用query的话,程序可以运行,但数据没有插入数据库.
我今天才注册的,不知道有没有分,要是有的话,一定给....
拜托各位高手帮帮我~~~~~~~
代码如下:
procedure TEBappend.BitBtn1Click(Sender: TObject);
begin
try
with DM.E_BasicTab do
begin
Append;
FieldByName( 'EMP_NO ').AsString:=Edit1.Text; //员工编号
FieldByName( 'EMP_NAME ').AsString:=Edit2.Text; //姓名
FieldByName( 'EMP_GENDER ').Value:=Trim(ComboBox1.Text); //性别
FieldByName( 'EMP_EDUCATION ').Value:=Trim(ComboBox2.Text); //学历
FieldByName( 'EMP_BIRTHDAY ').Value:=Trim(MaskEdit1.Text); //出生年月
FieldByName( 'EMP_HOMETOWN ').Value:=Trim(Edit4.Text); //籍贯
FieldByName( 'EMP_ID ').Value:=Trim(MaskEdit3.Text); //身份证号码
FieldByName( 'EMP_MARRIAGE ').Value:=Trim(ComboBox3.Text); //婚姻状况
FieldByName( 'EMP_WORKTIME ').Value:=Trim(MaskEdit4.Text); //参加工作时间
FieldByName( 'EMP_ADDRESS ').Value:=Trim(Edit5.Text); //住址
FieldByName( 'EMP_TELENO ').Value:=Trim(MaskEdit2.Text);//电话
FieldByName( 'EMP_EMAIL ').Value:=Trim(Edit3.Text); //邮箱地址
FieldByName( 'DEPT_ID ').AsString:=Trim(DBLookupComboBox1.KeyValue); //所在部门
FieldByName( 'PHOTO ').Assign(image1.Picture.Bitmap); //照片
DM.E_BasicTab.post;
end;
application.MessageBox( '保存成功! ', '提示 ',64);
except
application.MessageBox( '系统出错! ', '提示 ',64);
end;
close;
end;
{begin
try
with DM.E_BQuery1 do
begin
Close;
SQL.Clear;
SQL.Add( 'insert into PERSONNEL_PLAN(EMP_NO,EMP_NAME,EMP_GENDER,EMP_EDUCATION,EMP_BIRTHDAY,EMP_HOMETOWN,EMP_ID,EMP_MARRIAGE,EMP_WORKTIME,EMP_ADDRESS,EMP_TELENO,EMP_EMAIL,DEPT_ID,PHOTO) ');
SQL.Add( 'values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n) ');
ParamByName( 'a ').AsString:=Edit1.Text; //员工编号
ParamByName( 'b ').AsString:=Edit2.Text; //姓名
ParamByName( 'c ').Value:=Trim(ComboBox1.Text); //性别
ParamByName( 'd ').Value:=Trim(ComboBox2.Text); //学历
ParamByName( 'e ').Value:=Trim(MaskEdit1.Text); //出生年月
ParamByName( 'f ').Value:=Trim(Edit4.Text); //籍贯
ParamByName( 'g ').Value:=Trim(MaskEdit3.Text); //身份证号码
ParamByName( 'h ').Value:=Trim(ComboBox3.Text); //婚姻状况
ParamByName( 'i ').Value:=Trim(MaskEdit4.Text); //参加工作时间
ParamByName( 'j ').Value:=Trim(Edit5.Text); //住址
ParamByName( 'k ').Value:=Trim(MaskEdit2.Text);//电话
ParamByName( 'l ').Value:=Trim(Edit3.Text); //邮箱地址
ParamByName( 'm ').Value:=Trim(DBLookupComboBox1.KeyValue); //所在部门
ParamByName( 'n ').Assign(image1.Picture.Bitmap); //照片
ExecSQL;
end;
application.MessageBox( '保存成功! ', '提示 ',64);
except
application.MessageBox( '系统出错! ', '提示 ',64);
end;
close;
end; }
[解决办法]
要么就
if DBLookupComboBox1.KeyValue <> null then ParamByName( 'm ').Value:=Trim(DBLookupComboBox1.KeyValue)