diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7ae6bbfdb5..a016343b60 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,21 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-09-20 00:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + + harbour/source/rdd/wadetach.c + + added .prg functions: + hb_waDetach( [|], [] ) -> + hb_waRequest( [], [], [<@xCargo>], [] ) + -> + The first one detach workarea from current thread and move it + to special hidden holder. Before detaching all relations (parent + and child) to detached workarea are cleared. + The second one restores area from the holder and attach it + to calling thread. + + added xBase++ compatible functions DbRelease() / DbRequest() + xBase++ users please test. If possible please also check what xBase++ + does with relations and active RLOCKs/FLOCK on released WA. + 2008-09-19 22:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/set.c ! fixed casting @@ -37,40 +52,40 @@ ! fixed return value after rt error. * Added rt error as in clipper when OrdkeyVal is greater than 240, with default capabilities as in clipper. - code to test it: - FUNCTION MAIN() + code to test it: + FUNCTION MAIN() - LOCAL i - LOCAL nSec := SECONDS() + LOCAL i + LOCAL nSec := SECONDS() - REQUEST DBFCDX - RddSetDefault( "DBFCDX" ) + REQUEST DBFCDX + RddSetDefault( "DBFCDX" ) - DBCREATE( "__MYTEST", { { "test", "C", 241, 0 } } ) + DBCREATE( "__MYTEST", { { "test", "C", 241, 0 } } ) - USE __MYTEST - INDEX ON FIELD->Test TO __MYTEST + USE __MYTEST + INDEX ON FIELD->Test TO __MYTEST - FOR i := 1 TO 10 - APPEND BLANK - FIELD->test := Replicate( "1", 240 ) + Str( 10 - i, 1 ) - NEXT + FOR i := 1 TO 10 + APPEND BLANK + FIELD->test := Replicate( "1", 240 ) + Str( 10 - i, 1 ) + NEXT - DbGoTop() - ? &(OrdKey()) - ? "Length of &(OrdKey()) :" + Str( Len( &(OrdKey()) ) ) - ? OrdKeyVal() - ? "Length of OrdKeyVal() :" + Str( Len(OrdKeyVal()) ) - WHILE ! EOF() - ? Right( FIELD->Test, 1 ) - DbSkip() - ENDDO + DbGoTop() + ? &(OrdKey()) + ? "Length of &(OrdKey()) :" + Str( Len( &(OrdKey()) ) ) + ? OrdKeyVal() + ? "Length of OrdKeyVal() :" + Str( Len(OrdKeyVal()) ) + WHILE ! EOF() + ? Right( FIELD->Test, 1 ) + DbSkip() + ENDDO - USE - FERASE( "__MYTEST.DBF" ) - FERASE( "__MYTEST.CDX" ) + USE + FERASE( "__MYTEST.DBF" ) + FERASE( "__MYTEST.CDX" ) - RETURN NIL + RETURN NIL 2008-09-19 11:00 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * contrib/hbct/fcopy.prg diff --git a/harbour/common.mak b/harbour/common.mak index f7e406309b..d2d1c43dd0 100644 --- a/harbour/common.mak +++ b/harbour/common.mak @@ -891,6 +891,7 @@ RDD_LIB_OBJS = \ $(OBJ_DIR)\dbcmdhb$(OBJEXT) \ $(OBJ_DIR)\dbcmdx$(OBJEXT) \ $(OBJ_DIR)\dbdrop$(OBJEXT) \ + $(OBJ_DIR)\dbdetach$(OBJEXT) \ $(OBJ_DIR)\dbexists$(OBJEXT) \ $(OBJ_DIR)\fieldhb$(OBJEXT) \ $(OBJ_DIR)\hbdbsort$(OBJEXT) \ diff --git a/harbour/source/rdd/Makefile b/harbour/source/rdd/Makefile index d2b23a5323..ac9fae3fbb 100644 --- a/harbour/source/rdd/Makefile +++ b/harbour/source/rdd/Makefile @@ -10,6 +10,7 @@ C_SOURCES=\ dbcmdhb.c \ dbcmdx.c \ dbdrop.c \ + dbdetach.c \ dbexists.c \ fieldhb.c \ workarea.c \