还有一个问题:下面修改数据的程序 sql.Add这样用对不对,
if radiobutton5.Checked then //修改数据表的程序,
begin
if Length(Edit1.Text )<>10 then
begin
messagedlg('ÇëÊäÈë10λÊý×ֵıàºÅÈ磺0123456789µÄÈë¿â±àºÅ',mtError,[mbok],0);
Edit1.SetFocus ;
exit;
end;
try
with datamoduleado.ADOQuery1 do
begin
sql.Clear;
sql.Add('update book set code=:Edit1,name=:edit2,author=:edit4,press=:edit5,outdate=:edit6,
cost=:edit7,memo0=:edit8'+ 'where code='''+edit1.Text+'''');
parameters.ParamByName('code').Value :=Edit1.Text ;
parameters.ParamByName('name').Value :=Edit2.Text ;
parameters.ParamByName('author').Value := Edit4.Text ;
parameters.ParamByName('press').Value := Edit5.Text ;
try
parameters.ParamByName('outdate').Value :=strtodate(Edit6.Text) ;
except
messagedlg('²ÎÊý<ÊÜ¿Øʱ¼ä>ÉèÖôíÎó',mtError,[mbok],0);
exit;
end;
try
parameters.ParamByName('cost').Value :=strtofloat(Edit7.Text);
except
messagedlg('²ÎÊý<¹æ³Ì¼Û¸ñ>ÉèÖôíÎó',mtError,[mbok],0);
exit;
end;
try
parameters.ParamByName('MMEMO').Value :=edit8.Text;
except
messagedlg('memo erro',mterror,[mbok],0);
exit;
end;
execSQL;
end;
except
messagedlg('ÐÞ¸Ä<'+Edit1.Text+'>ʧ°Ü',mterror,[mbok],0);
exit;
end;
end;
end;