Files
harbour-core/harbour/contrib/hbfbird
Przemyslaw Czerpak 1cc8e1e88c 2013-01-10 23:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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
2013-01-10 22:27:11 +00:00
..

/*
 * $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