* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new internal C function:
void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource,
PHB_NESTED_CLONED pClonedList );
it copies object or clone it if class overloaded clone operation.
; TODO: add support for user defined class clone operation
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
* changed returned type of hb_itemCloneTo() to void
* harbour/src/vm/itemapi.c
* use hb_objCloneTo() in hb_itemClone*() functions.
* harbour/src/vm/arrays.c
* use hb_objCloneTo() in array/hash clone code.
* harbour/src/vm/arrayshb.c
! fixed return values in AEVAL() and ACOPY() when array
is passed by reference.
* harbour/src/rtl/tclass.prg
* harbour/src/vm/classes.c
* declare :SUPER and :__SUPER messages as non virtual ones.
Now ::SUPER and ::__SUPER messages executed in object method
returns casting to 1-st super object of the class in which
executed method was defined.
* harbour/include/hbclass.ch
* removed xtranslations for SUPER(): - this workaround for
missing non virtual messages in some Clipper OOP implementations
was breaking valid code which tried to use real :SUPER message
and made SUPER reserved word, i.e. it was not possible to create
code like:
LOCAL super := ::parent2
? super:v1, super:v2
Now this hack is not longer necessary and :SUPER is non virtual
massage in Harbour.
INCOMPATIBLE: If someone has some code like:
SUPER():MSG()
SUPER( PARENT ):MSG()
then please change it to:
::SUPER:MSG()
::PARENT:MSG()
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/hbmysql/tsqlbrw.prg
! fixed to use ::super() instead of super()
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
+ added GOCOLD() method - this method is necessary for WAs
passed to HB_DBDETACH()
* harbour/doc/xhb-diff.txt
* small update
* harbour/contrib/*/*.hbx
* regenerated
/* * $Id$ */ README 2003.12.23 - Harbour Low Level api for Firebird and Interbase RDBMS This work is not finished yet. It's to be seem like Harbour TMysql routines. For full firebird documentation look at: Firebird home: http://firebird.sourceforge.net/index.php Api: http://www.ibphoenix.com/downloads/60ApiGuide.zip Data Definition: http://www.ibphoenix.com/downloads/60DataDef.zip Language Reference: http://www.ibphoenix.com/downloads/60LangRef.zip Developers guide: http://www.ibphoenix.com/downloads/60DevGuide.zip The Class implementation has no all implementation like TMysql has, because Firebird it's diferent. For example, you can't navigate in records like Mysql do, ex: Getrow( number of row ), in firebird you can just go forward. FILES: firebird.c - Low level api TFirebrd.prg - Class implementation, it's to be seems like TMysql. tests\simple.prg - Simple test class tests\stress.prg - Stress test class tests\test.prg - Testing using only low level api tests\testapi.c - Pure C code to test firebird access. TODO: Full implementation of blob control. For now, we have only partial control, only for text blobs (subtype 1). Improve Insert and Update commands using DSQL. Implements to do: FBOpenBlob( blob_id ) FBReadBlob( blob_id, string, segment_size ) FBCreateBlob() FBPutBlob( blob_id, string, segment_size ) FBCloseBlob( blob_id ) BUGS: Fix a few segment faults. I Need some help to find what's going on here. That's all folks and sorry my poor english Rodrigo Moreno - rodrigo_moreno@yahoo.com