Bueno ya aligere un poco el codigo, lo que hice fue mejor importar a una tabla DBF los datos que necesito , pense que estando en el mismo entorno de BD no iba a tener problema y pues si lo tengo , el codigo quedo asi:
Código Delphi
[-]tblact.First;
while not tblact.Eof do
begin
IF TBLPROD.Locate('CCODIGOP01',TblActcodigo_pro.Value,[]) THEN
BEGIN
TBLPROD.Edit;
TblProdcidunida01.Value:=TblActunidad_bas.Value;
TBLPROD.Post;
end;
end;
SHOWMESSAGE('Proceso Terminado');
end;
Ejecutando el codigo linea por linea simple y sencillamente es reemplazar un 2 por un 11, es decir, son numeros enteros no veo cual puede ser el problema y el mensaje de error es el mismo..