为什么第一次插入记录成功,第二次插入记录就出错?
代码如下,点击Button1第一次插入可以成功,然后修改各edit.text再次插入记录就会出错。三天了,百思不得其解,望指点~~~~~~~~~谢谢
错误信息“Exception class EDatabaseError with message 'ADOCommand1: Parameter 'ljh' not found'”
procedure TInForm.Equal();//参数赋值
begin
ADOCommand1.Parameters.ParamByName('ljh').Value:=Edit1.Text;
ADOCommand1.Parameters.ParamByName('mc').Value:=Edit2.Text;
ADOCommand1.Parameters[2].Value:=Edit3.Text;
ADOCommand1.Parameters[3].Value:=Edit6.Text;
if Edit8.Text='' then
begin
ADOCommand1.Parameters[4].Value.sl:=0;
end
else
begin
ADOCommand1.Parameters[4].Value:=StrToFloat(Edit8.text);
end;
if Edit9.Text='' then
begin
ADOCommand1.Parameters[5].Value:=0;
end
else
begin
ADOCommand1.Parameters[5].Value:=StrToFloat(Edit8.text);
end;
ADOCommand1.Parameters[6].Value:=DateTimePicker1.Date;
ADOCommand1.Parameters[7].Value:=ComboBox1.Text;
ADOCommand1.Parameters[8].Value:=Edit7.Text;
ADOCommand1.Parameters[9].Value:=Edit5.Text;
ADOCommand1.Parameters[10].Value:=Memo1.Text;
end;
procedure TInForm.Button1Click(Sender: TObject);//插入记录
begin
Equal;
place:='ljh,pxh,mc,sl,dw,dj,ckdm,ckkw,bz';
sqlstr:=formatStr(place);
ADOCommand1.CommandText:='insert into [accessory] ([ljh],[pxh],[mc],[sl],[dw],[dj],[ckdm],[ckkw],[bz]) values ('+sqlstr+')';
ADOCommand1.Execute;
end;
function TInForm.FormatStr(place:string):string;//构建SQL字符串
var
arr:TStringList;
i:Integer;
begin
arr:=TStringList.Create;
arr.DelimitedText:=place;
arr.Delimiter:=',';
for i:=0 to arr.Count-1 do
begin
case ADOCommand1.Parameters.FindParam(arr[i]).DataType of
ftString:
begin
Result:=Result+QuotedStr(ADOCommand1.Parameters.ParamValues[arr[i]])+',';
end;
ftFloat:
begin
Result:=Result+FloatToStr(ADOCommand1.Parameters.ParamValues[arr[i]])+',';
end;
ftDateTime:
begin
Result:=Result+QuotedStr(ADOCommand1.Parameters.ParamValues[arr[i]])+',';
end;
end;
end;
Result:=LeftStr(Result,Length(Result)-1);
end;