2008-09-20 00:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

+ harbour/source/rdd/wadetach.c
    + added .prg functions:
         hb_waDetach( [<nWorkArea>|<cAlias>], [<xCargo>] ) -> <lSuccess>
         hb_waRequest( [<cAlias>], [<lFreeArea>], [<@xCargo>], [<lWait>] )
            -> <lSuccess>
      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.
This commit is contained in:
Przemyslaw Czerpak
2008-09-19 22:43:02 +00:00
parent 7cc11cf5e2
commit e67c40b7de
3 changed files with 43 additions and 26 deletions

View File

@@ -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( [<nWorkArea>|<cAlias>], [<xCargo>] ) -> <lSuccess>
hb_waRequest( [<cAlias>], [<lFreeArea>], [<@xCargo>], [<lWait>] )
-> <lSuccess>
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

View File

@@ -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) \

View File

@@ -10,6 +10,7 @@ C_SOURCES=\
dbcmdhb.c \
dbcmdx.c \
dbdrop.c \
dbdetach.c \
dbexists.c \
fieldhb.c \
workarea.c \