Page 1 of 1

Duda con DBFs

Posted: Sun Oct 26, 2025 4:48 pm
by Armando
Saludos al foro:

Amigos, tengo una aplicación hecha con DBFs la que no he tocado en años desde que me mude a tablas MySql,
ahora necesito hacerle unos cambios y la duda que tengo es la siguiente:

En el siguiente trozo de código abro la DBF cCamiones y hago un DO WHILE, por cada registro
de la DBF cCamiones hago un filtro a la DBF cDetBdv, hasta haí todo bien, ahora la pregunta:

Cómo puedo saber si el registro de la DBF cCamiones no tiene registros en la DBF cDetBdv?

Code: Select all | Expand

	DO WHILE ! (cCamiones)->(EOF())

         (cDetBdv)->(DBSETFILTER({||(cDetBdv)->DET_NUM == (cCamiones)->TRN_NUM},;
                                    "(cDetBdv)->BIT_NUM == (cCamiones)->TRN_NUM"))
Muchas gracias por la orientación.

Un abrazo

Re: Duda con DBFs

Posted: Sun Oct 26, 2025 4:57 pm
by Armando
Amigos:

Lo he resuelto validando que el campo (cDetBdv)->DET_NUM tenga valor mayor a 0

No sé si sea la mejor forma o hay otra

Saludos

Re: Duda con DBFs

Posted: Mon Nov 24, 2025 4:04 am
by LuchoMontero

Hola Armando:
Buenas noches.
Utilizar DBSETFILTER es como hacer un index, pero a diferencia de los índices que se graban en el disco duro, el DBSETFILTER lo crea en la ram y si la tabla es grande, la aplicación se pone lenta.
Una mejor forma sería:

Code: Select all | Expand

(cCamiones)->(DBGOTOP())
WHILE !(cCamiones)->(EOF())
    IF (cDetBdv)->(DBSEEK((cCamiones)->TRN_NUM))
      Alert('Si existe en tabla detalle')
    ELSE
       Alert('No existe en tabla detalle')
    ENDIF
    (cCamiones)->(DBSKIP())
ENDDO

Lucho Montero - Lima - Perú.


Re: Duda con DBFs

Posted: Mon Nov 24, 2025 5:37 pm
by Armando

Lucho:

Muchas gracias.

Saludos