Comportamiento ERRONEO
Publicado: Mié Feb 03, 2010 10:15 am
Buenos dias
¿ Alguien podria decirme porque la comparacion de == y != arrojan el
mismo resultado en el mismo momento de evaluación ?
Dicho de otra forma el primer codigo no funciona correctamente y he
debido adaptarlo al segundo codigo para que funcione cambiando el tipo
de comparacion y teniendo que generar un IF vacio para poder utilizar la
rama del ElSE
¿Alguna explicación?
Codigo que no funciona
IF (::nRegistros != ::oMaskEdit1:Value) .OR. (::cFiltro1 !=
::oMaskEdit2:Value) .OR. (::cFiltro2 != ::oMaskEdit3:Value)
::nRegistros := ::oMaskEdit1:Value
::cFiltro1 := ::oMaskEdit2:Value
::cFiltro2 := ::oMaskEdit3:Value
WITH OBJECT ::oSQLQuery1 // Abrimos el cursor.
IF :lOpen == .T.
:lOpen := .F.
ENDIF
:cSelect := "SELECT TOP " + ALLTRIM(STR(::nRegistros,5,0)) +
cSelect
:lOpen := .T.
END WITH
ENDIF
Codigo adaptado para que funcione
IF (::nRegistros == ::oMaskEdit1:Value) .AND. (::cFiltro1 ==
::oMaskEdit2:Value) .AND. (::cFiltro2 == ::oMaskEdit3:Value)
ELSE
::nRegistros := ::oMaskEdit1:Value
::cFiltro1 := ::oMaskEdit2:Value
::cFiltro2 := ::oMaskEdit3:Value
WITH OBJECT ::oSQLQuery1 // Abrimos el cursor.
IF :lOpen == .T.
:lOpen := .F.
ENDIF
:cSelect := "SELECT TOP " + ALLTRIM(STR(::nRegistros,5,0)) +
cSelect
:lOpen := .T.
END WITH
ENDIF
Gracias de antemano
Un saludo
¿ Alguien podria decirme porque la comparacion de == y != arrojan el
mismo resultado en el mismo momento de evaluación ?
Dicho de otra forma el primer codigo no funciona correctamente y he
debido adaptarlo al segundo codigo para que funcione cambiando el tipo
de comparacion y teniendo que generar un IF vacio para poder utilizar la
rama del ElSE
¿Alguna explicación?
Codigo que no funciona
IF (::nRegistros != ::oMaskEdit1:Value) .OR. (::cFiltro1 !=
::oMaskEdit2:Value) .OR. (::cFiltro2 != ::oMaskEdit3:Value)
::nRegistros := ::oMaskEdit1:Value
::cFiltro1 := ::oMaskEdit2:Value
::cFiltro2 := ::oMaskEdit3:Value
WITH OBJECT ::oSQLQuery1 // Abrimos el cursor.
IF :lOpen == .T.
:lOpen := .F.
ENDIF
:cSelect := "SELECT TOP " + ALLTRIM(STR(::nRegistros,5,0)) +
cSelect
:lOpen := .T.
END WITH
ENDIF
Codigo adaptado para que funcione
IF (::nRegistros == ::oMaskEdit1:Value) .AND. (::cFiltro1 ==
::oMaskEdit2:Value) .AND. (::cFiltro2 == ::oMaskEdit3:Value)
ELSE
::nRegistros := ::oMaskEdit1:Value
::cFiltro1 := ::oMaskEdit2:Value
::cFiltro2 := ::oMaskEdit3:Value
WITH OBJECT ::oSQLQuery1 // Abrimos el cursor.
IF :lOpen == .T.
:lOpen := .F.
ENDIF
:cSelect := "SELECT TOP " + ALLTRIM(STR(::nRegistros,5,0)) +
cSelect
:lOpen := .T.
END WITH
ENDIF
Gracias de antemano
Un saludo