键列信息不足或不正确。更新影响到过多的行!var
  ProStr: array[0..2] of string;
  IndexSn: integer;
  IndexName: integer;
  final: integer;
begin
  ADOTable1.Open;  while not ADOTable1.Eof do
  begin
    //可能出现的注册码分隔符
    ProStr[0] := ADOTable1.Fields.Fields[0].AsString;
 if ComboBox2.Text<>'' then
 begin
    indexsn := Pos(ComboBox2.Text, ProStr[0]);    if indexsn <> 0 then
      final := indexsn
    else
      final := length(ProStr[0]);    if final = Length(Prostr[0]) then
      ProStr[1] := ''
    else
    begin
      ProStr[1] := Copy(ProStr[0], final, length(ProStr[0]) - final + 1);
      Delete(ProStr[0], final, length(ProStr[0]) - final + 1);
    end;
 end;
  if ComboBox1.Text<>'' then
  begin
    Indexname := Pos(ComboBox1.Text, ProStr[0]);    if indexname <> 0 then
      final := indexname
    else
      final := length(ProStr[0]);
    if final = Length(Prostr[0]) then
      ProStr[2] := ''
    else
    begin
      ProStr[2] := Copy(ProStr[0], final, length(ProStr[0]) - final + 1);
      Delete(ProStr[0], final, length(ProStr[0]) - final + 1);
    end;
   end;
    ProgressBar1.Position := trunc(100 * ADOTable1.RecNo div ADOTable1.RecordCount);
    ADOTable1.Edit;
    if ProStr[1] <> '' then
      ADOTable1.Fields.Fields[1].AsString := ProStr[1];
    if ProStr[2] <> '' then
      ADOTable1.Fields.Fields[2].AsString := ProStr[2];    ADOTable1.Fields.Fields[0].AsString := ProStr[0];
    ADOTable1.Next;
  end;
  ShowMessage('完成');
end;