Saludos al foro,
Tengo un programa que tiene un comportamiento distinto en FW y FWH, es referente a indices condicionales. Anexo un ejemplo:
Esta aplicacion debe eliminar registros dentro de un rango utilizando un indice condicional, si creamos el archivo sin la condicion !NOT DELETED()funciona bien, pero si lo creamos con la condicion !NOT DELETED() el scope no se queda en el rango indicado y sigue hasta el final del archivo.
Esto funciona bien en FW. Será un bug de FWH ?, recuerdo que en un foro de xHarbour encontre un reporte similar.
Saludos
#include "FiveWin.ch"
#include "ord.ch"
//----------------------------------------------------------------------------//
function Main()
local cNumero
local aCampos := {{ 'NUMERO', 'C', 6, 0 }}
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
SET DATE FRENCH
SET CENT ON
dbcreate( 'PRUEBA', aCampos )
use PRUEBA alias PRUEBA
APPEND BLANK
prueba->NUMERO := "100000"
APPEND BLANK
prueba->NUMERO := "200000"
// CASO 1: Con este indice funcion bien lee unicamente el numero "100000"
// INDEX ON prueba->NUMERO TAG prueba1 TO prueba
// CASO 2: Con este indice lee todos los registros
INDEX ON prueba->NUMERO TAG prueba1 TO prueba FOR !DELETED()
cNumero := "100000"
SET SCOPE TO cNumero
GO TOP
DO WHILE !eof()
msginfo( prueba->NUMERO )
DELETE
SKIP
ENDDO
CLOSE ALL
return nil
Gracias.