Hola:
Tengo el siguiente procedimiento al cual le paso como parametros dos ADOTables y me esta dando un error (
Informacion de columna clave insuficiente o incorrecta; demasiadas filas afectadas por la actualizacion) realmente no se el pq... me podrian ayudar con esto ?
Código Delphi
[-]
procedure TMain.UpdateNames(TOrig, TDest: TADOTable; Flag: Integer);
var
Codigo: string;
begin
ShowProgress.Show;
ShowProgress.Caption:='Actualizando nombres...';
ShowProgress.ProgressBar1.Position:=0;
ShowProgress.ProgressBar1.Max:= TDest.RecordCount;
TDest.First;
while not TDest.Eof do
begin
TOrig.First;
while not TOrig.Eof do
begin
If Flag = 0 Then
Codigo:= '0' + TOrig.FieldByName('Codigo').AsString
else
Codigo:= TOrig.FieldByName('Codigo').AsString;
If ((TDest.FieldByName('Codigo').AsString = Codigo)) and ((TDest.FieldByName('Nombre').AsString <> TOrig.FieldByName('Nombre').AsString) or (TDest.FieldByName('Direccion').AsString <> TOrig.FieldByName('Direccion').AsString))Then
begin
TDest.Edit;
If TDest.FieldByName('Direccion').AsString <> TOrig.FieldByName('Direccion').AsString Then
TDest.FieldByName('Direccion').AsString:= TOrig.FieldByName('Direccion').AsString;
If TDest.FieldByName('Nombre').AsString <> TOrig.FieldByName('Nombre').AsString Then
TDest.FieldByName('Nombre').AsString:= TOrig.FieldByName('Nombre').AsString;
TDest.Post;
break;
end
else
TOrig.Next;
end;
ShowProgress.ProgressBar1.Position:= TDest.RecNo;
ShowProgress.ProgressBar1.Repaint;
ShowProgress.Refresh;
Main.Repaint;
TDest.Next;
end;
TDest.First;
TOrig.First;
ShowProgress.Close;
end;
La llamada al procedimiento es
Código Delphi
[-]Main.UpdateNames(Main.ADOExtensiones_Libres, Main.ADOEstad_Table,0);
Saludos y gracias