Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Opinión sobre un código (https://www.clubdelphi.com/foros/showthread.php?t=58860)

Carmelo Cash 04-08-2008 15:45:47

Opinión sobre un código
 
Hola Foro:

Este código borra un registro de un RXMemoryData.
Cuando hago in click en el dbgrid, cargo la variable ID_INI y luego para borrar hago una busqueda secuencial desde el primer registro hasta el último. Si por una de esas no está OK queda en False y no hago nada.
Esto anda bién, pero me parece mucha cosa para borrar un registro.

Qué opinión les merece?. Desde ya muchas gracias por su opinión.


Código Delphi [-]
 
  with RxMDCompleto do begin
    OK:=False;
    First;
    while not(eof) do begin
      if fieldByName('ID_INI').AsInteger=ID_INI then begin
        OK:=True;
        Break;
      end;
      next;
    end;    // while

    if OK=True then begin
      Delete;
    end;
  end;

eduarcol 04-08-2008 16:02:20

pero ese dataset del cual quieres borrar el registro esta conectado al grid?

Carmelo Cash 04-08-2008 16:06:37

Si
 
Si, eduarcol, y lo borra correctamente.

Caro 04-08-2008 16:07:15

Hola Carmelo Cash, tu RXMemoryData, es el que esta enlazado a tu DbGrid, o es es otro DataSet el cual enlazas a tu DBGrid, porque si es el primero no necesitas recorrer, haces directamente el Delete, pero si es otro entonces, para hubicarte en el registro que quieres borrar puedes utilizar el Locate. Supongo que la RXMemoryData tiene el Locate.

Saluditos

maeyanes 04-08-2008 16:13:30

Hola...

Podrías usar el método Locate:

Código Delphi [-]
with RxMDCompleto do
  if Locate('ID_INI', ID_INI, []) then
    Delete


Saludos...

eduarcol 04-08-2008 16:16:55

Cita:

Empezado por Carmelo Cash (Mensaje 305570)
Si, eduarcol, y lo borra correctamente.

entonces como te explica caro te bastaria con un delete

Carmelo Cash 04-08-2008 16:31:11

Listo.
 
El método Locate con el ejemplo, me parece la solución que estaba buscando.

Gracias Caro, Maeyanes y Eduarcol. :)

Neftali [Germán.Estévez] 04-08-2008 16:53:25

Cita:

Empezado por Carmelo Cash (Mensaje 305570)
Si, eduarcol, y lo borra correctamente.

Cita:

Empezado por Carmelo Cash (Mensaje 305577)
El método Locate con el ejemplo, me parece la solución que estaba buscando.

Funcionar, funcionará, pero yo creo que estás haciendo más trabajo de la cuenta (como ya te han dicho antes), porque el registro que estás buscando es el registro sobre el que estás posicionado. Entonces ¿para qué buscar lo que ya tienes?

Locate funcionará (siempre te va a encontrar el registro actual), pero no es necesario.

Carmelo Cash 04-08-2008 17:53:24

ok
 
Entendido.
Gracias.


La franja horaria es GMT +2. Ahora son las 13:13:35.

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