Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error al marcar duplicados en tabla (https://www.clubdelphi.com/foros/showthread.php?t=78796)

tarco35 17-05-2012 13:38:03

Error al marcar duplicados en tabla
 
Saludos... Pretendo recorrer una tabla paradox con delphi 6 con el siguiente codigo:
Código Delphi [-]
  ModuloDatos.TablaProductos.First;
  Cd := '';
  While Not ModuloDatos.TablaProductos.Eof Do Begin
    If Cd=ModuloDatos.TablaProductosFARMACO.AsString Then Begin
       ModuloDatos.TablaProductos.Edit;
       ModuloDatos.TablaProductosBORRABLE.AsBoolean := False;
    End Else Cd := ModuloDatos.TablaProductosFARMACO.AsString;
    ModuloDatos.TablaProductos.Next;
  End;
  ModuloDatos.TablaProductos.First;
lo que pretendo es que si al recorrer la tabla que esta ordenada por FARMACO hay 2 o mas FARMACOS iguales que marque BORRABLE a false al resto que no sean el primero.
Con este codigo me falla...
Aguien me puede decir que me esta pasando??? Gracias

ecfisa 18-05-2012 02:45:06

Hola tarco35.

Proba de este modo:
Código Delphi [-]
  with ModuloDatos do
  begin
    TablaProductos.First;
    Cd := TablaProductosFARMACO.AsString;
    TablaProductos.Next;
    while not TablaProductos.Eof do
    begin
      if Cd = TablaProductosFARMACO.AsString then
      begin
        TablaProductos.Edit;
        TablaProductosBORRABLE.AsBoolean := False;
      end
      else
        Cd := TablaProductosFARMACO.AsString;
      TablaProductos.Next;
    end;
  end;

Saludos.

tarco35 18-05-2012 13:09:46

No lo se
 
Gracias....pues he probado con codigo y no me funciona... aunque teoricamente tendria que hacerlo bien.
lo he resuelto, de forma poco eficiente asi:
Código Delphi [-]
  Cd := '';
  ModuloDatos.TablaProductos.First;
  While Not ModuloDatos.TablaProductos.Eof Do Begin
    If Cd=ModuloDatos.TablaProductosFARMACO.AsString Then Begin
       ModuloDatos.TablaProductos.Edit;
       ModuloDatos.TablaProductosBORRABLE.AsBoolean := False;
       Cd := '';
       ModuloDatos.TablaProductos.First;
    End Else Begin
      Cd := ModuloDatos.TablaProductosFARMACO.AsString;
      ModuloDatos.TablaProductos.Next;
    End;
  End;


La franja horaria es GMT +2. Ahora son las 17:31:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi