table does not support this operation because it is not uniquely indexed和''is not a valid floating point value这两个错误,怎么解决,还有为什么我的修改生效,只执行 insert不执行delete
修改生效的程序
begin
//Btn_ok.Enabled:=false;
if Clicksign=2 then//先将其删除
begin
With Pro_DM.Qry_qc do
begin
Close;
Sql.Clear ;
Sql.Text:='Delete from QCFLOW where Check_no= :cno';
Params[0].AsString:=Tedtno;
Prepare;
ExecSql;
Tedtno:='';
end;
end;
For RI:=1 to SGrid_flow.RowCount-1 do
begin
if (SGrid_flow.Cells[0,RI]<>'') and (SGrid_flow.Cells[1,RI]<>'') then
begin
With Pro_DM.Qry_qc do
begin
Close;
Sql.Clear ;
Sql.Text:='Insert into QCFLOW '
+' Values(:Qcflow_no,:Qcflow_name,:Check_level,:Check_no,:Check_name,:Check_per,:Treatment_no,:Treatment_name,'
+':Treatment_mode,:Treatmentchk,:re)';
Parambyname('Qcflow_no').AsString:=Trim(Edt_no.Text);
Parambyname('Qcflow_name').AsString:=Edt_name.Text;
Parambyname('re').AsString:=Memo_re.Lines.Text;
With SGrid_flow do
begin
Parambyname('Check_level').AsString:=Cells[0,RI];
Parambyname('Check_no').AsString:=Cells[1,RI];
Parambyname('Check_name').AsString:=Cells[2,RI];
Parambyname('Check_per').AsFloat:=Strtofloat(Trim(Cells[3,RI]));
Parambyname('Treatment_no').AsString:=Cells[4,RI];
Parambyname('Treatment_name').AsString:=Cells[5,RI];
Parambyname('Treatment_mode').AsString:=Cells[6,RI];
Parambyname('Treatmentchk').AsString:=Cells[7,RI];
end;
Prepare;
Try
ExecSql;
Except
application.MessageBox('保存数据记录时发生错误,请检查记录!','记录错误',mb_iconwarning);
end;
end;
end;
end;
修改生效的程序
begin
//Btn_ok.Enabled:=false;
if Clicksign=2 then//先将其删除
begin
With Pro_DM.Qry_qc do
begin
Close;
Sql.Clear ;
Sql.Text:='Delete from QCFLOW where Check_no= :cno';
Params[0].AsString:=Tedtno;
Prepare;
ExecSql;
Tedtno:='';
end;
end;
For RI:=1 to SGrid_flow.RowCount-1 do
begin
if (SGrid_flow.Cells[0,RI]<>'') and (SGrid_flow.Cells[1,RI]<>'') then
begin
With Pro_DM.Qry_qc do
begin
Close;
Sql.Clear ;
Sql.Text:='Insert into QCFLOW '
+' Values(:Qcflow_no,:Qcflow_name,:Check_level,:Check_no,:Check_name,:Check_per,:Treatment_no,:Treatment_name,'
+':Treatment_mode,:Treatmentchk,:re)';
Parambyname('Qcflow_no').AsString:=Trim(Edt_no.Text);
Parambyname('Qcflow_name').AsString:=Edt_name.Text;
Parambyname('re').AsString:=Memo_re.Lines.Text;
With SGrid_flow do
begin
Parambyname('Check_level').AsString:=Cells[0,RI];
Parambyname('Check_no').AsString:=Cells[1,RI];
Parambyname('Check_name').AsString:=Cells[2,RI];
Parambyname('Check_per').AsFloat:=Strtofloat(Trim(Cells[3,RI]));
Parambyname('Treatment_no').AsString:=Cells[4,RI];
Parambyname('Treatment_name').AsString:=Cells[5,RI];
Parambyname('Treatment_mode').AsString:=Cells[6,RI];
Parambyname('Treatmentchk').AsString:=Cells[7,RI];
end;
Prepare;
Try
ExecSql;
Except
application.MessageBox('保存数据记录时发生错误,请检查记录!','记录错误',mb_iconwarning);
end;
end;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货