2010-12-23 22:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/src/rtl/fieldbl.prg
    ! fixed FieldBLock() and FieldWBLock() to be CA-Cl*pper compatible
      (they should return NIL for field names which are not valid
      identifiers and generate RTE during evaluation if field does
      not exist)
This commit is contained in:
Przemyslaw Czerpak
2010-12-23 21:40:45 +00:00
parent 2ac9ec265f
commit 1363a5c8fb
2 changed files with 22 additions and 10 deletions

View File

@@ -16,6 +16,13 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-12-23 22:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/fieldbl.prg
! fixed FieldBLock() and FieldWBLock() to be CA-Cl*pper compatible
(they should return NIL for field names which are not valid
identifiers and generate RTE during evaluation if field does
not exist)
2010-12-23 13:45 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/rddads/ads1.c
+ added DBFIELDINFO( DBS_ISNULL, ) support

View File

@@ -53,19 +53,24 @@
#include "common.ch"
FUNCTION FIELDBLOCK( cFieldName )
LOCAL bField
IF ISCHARACTER( cFieldName )
RETURN {| x | iif( x == NIL, FieldGet( FieldPos( cFieldName ) ),;
FieldPut( FieldPos( cFieldName ), x ) ) }
ENDIF
BEGIN SEQUENCE WITH {|| BREAK() }
bField := &( "{|x| IIF( x == NIL, FIELD->" + cFieldName + ", " + ;
"FIELD->" + cFieldName + " := x ) }" )
END SEQUENCE
RETURN NIL
RETURN bField
FUNCTION FIELDWBLOCK( cFieldName, nWorkArea )
LOCAL bField, cAlias
IF ISCHARACTER( cFieldName ) .AND. ISNUMBER( nWorkArea )
RETURN {| x | iif( x == NIL, ( nWorkArea )->( FieldGet( FieldPos( cFieldName ) ) ),;
( nWorkArea )->( FieldPut( FieldPos( cFieldName ), x ) ) ) }
ENDIF
BEGIN SEQUENCE WITH {|| BREAK() }
IF Int( nWorkArea ) != 0
cAlias := "(" + HB_NToS( Int( nWorkArea ) ) + ")->"
bField := &( "{|x| IIF( x == NIL, " + cAlias + cFieldName + ", " + ;
+ cAlias + cFieldName + " := x ) }" )
ENDIF
END SEQUENCE
RETURN NIL
RETURN bField