64 Bit "locking" with DB_DBFLOCK_HB64

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

Post Reply
User avatar
AUGE_OHR
Posts: 2060
Joined: Sun Aug 25, 2019 3:12 pm
DBs Used: DBF, PostgreSQL, MySQL, SQLite
Location: Hamburg, Germany

64 Bit "locking" with DB_DBFLOCK_HB64

Post by AUGE_OHR »

hi,

under 64 Bit i can run 64 Bit harnour App with

Code: Select all

   IF HMG_Is64Bits()
      SET DBFLOCKSCHEME TO DB_DBFLOCK_HB64
   ENDIF
but "when" to ask/set DB_DBFLOCK_HB64 :idea:
does "all" RDD support it :?: (i know it is not compatible )

Code: Select all

#include "DbInfo.ch"

PROCEDURE ThisDbfInfo( cDBF, cWorkArea )
LOCAL nHandle, _CodePage := "", cMsg := "", nRDD, cRDD

   cMsg := "DBF         " + cDBF + CRLF
   cMsg += "WorkArea    " + cWorkArea + CRLF
   cMsg += "Extension   " + SP_cInxExt() + CRLF
   cMsg += "Codepage    " + SP_cCodepage() + CRLF
   cMsg += "last update " + DTOC( DBINFO( DBI_LASTUPDATE ) ) + CRLF
   cMsg += "Fields      " + hb_NTOS( DBINFO( DBI_FCOUNT ) ) + CRLF
   cMsg += "Header Size " + hb_NTOS( DBINFO( DBI_GETHEADERSIZE ) ) + CRLF
   cMsg += "Rec Size    " + hb_NTOS( DBINFO( DBI_GETRECSIZE ) ) + CRLF
   cMsg += "Records     " + hb_NTOS( RECCOUNT() ) + CRLF
   cMsg += "DBF Size    " + hb_NTOS( ( DBINFO( DBI_GETRECSIZE ) * RECCOUNT() ) + DBINFO( DBI_GETHEADERSIZE ) + 1 ) + CRLF + CRLF

   /* LOCK SCHEMES: RDDI_LOCKSCHEME, DBI_LOCKSCHEME */
   //    #define DB_DBFLOCK_DEFAULT      0
   //    #define DB_DBFLOCK_CLIPPER      1   /* default Cl*pper locking scheme */
   //    #define DB_DBFLOCK_COMIX        2   /* COMIX and CL53 DBFCDX hyper locking scheme */
   //    #define DB_DBFLOCK_VFP          3   /* [V]FP, CL52 DBFCDX, SIx3 SIXCDX, CDXLOCK.OBJ */
   //    #define DB_DBFLOCK_HB32         4   /* Harbour hyper locking scheme for 32bit file API */
   //    #define DB_DBFLOCK_HB64         5   /* Harbour hyper locking scheme for 64bit file API */
   //    #define DB_DBFLOCK_CLIPPER2     6   /* extended Cl*pper locking scheme NTXLOCK2.OBJ */
   //
   //    #ifdef HB_LEGACY_LEVEL5
   //       #define DB_DBFLOCK_CLIP         DB_DBFLOCK_CLIPPER
   //       #define DB_DBFLOCK_CL53         DB_DBFLOCK_COMIX
   //       #define DB_DBFLOCK_CL53EXT      DB_DBFLOCK_HB32
   //    #endif

   nRDD := hb_rddInfo( RDDI_LOCKSCHEME )
   DO CASE
      CASE nRDD = DB_DBFLOCK_DEFAULT 
         cRDD := "DB_DBFLOCK_DEFAULT"
      CASE nRDD = DB_DBFLOCK_CLIPPER 
         cRDD := "default Cl*pper locking scheme"
      CASE nRDD = DB_DBFLOCK_COMIX 
         cRDD := "COMIX and CL53 DBFCDX hyper locking scheme"
      CASE nRDD = DB_DBFLOCK_VFP 
         cRDD := "[V]FP, CL52 DBFCDX, SIx3 SIXCDX, CDXLOCK.OBJ"
      CASE nRDD = DB_DBFLOCK_HB32 
         cRDD := "Harbour hyper locking scheme for 32bit file API"
      CASE nRDD = DB_DBFLOCK_HB64 
         cRDD := "Harbour hyper locking scheme for 64bit file API"
      CASE nRDD = DB_DBFLOCK_CLIPPER2 
         cRDD := "extended Cl*pper locking scheme NTXLOCK2.OBJ"
   ENDCASE
   cMsg += "Lockscheme  " + cRDD + CRLF

   nRDD := DBINFO( DBI_LOCKSCHEME )
   DO CASE
      CASE nRDD = DB_DBFLOCK_DEFAULT 
         cRDD := "DB_DBFLOCK_DEFAULT"
      CASE nRDD = DB_DBFLOCK_CLIPPER 
         cRDD := "default Cl*pper locking scheme"
      CASE nRDD = DB_DBFLOCK_COMIX 
         cRDD := "COMIX and CL53 DBFCDX hyper locking scheme"
      CASE nRDD = DB_DBFLOCK_VFP 
         cRDD := "[V]FP, CL52 DBFCDX, SIx3 SIXCDX, CDXLOCK.OBJ"
      CASE nRDD = DB_DBFLOCK_HB32 
         cRDD := "Harbour hyper locking scheme for 32bit file API"
      CASE nRDD = DB_DBFLOCK_HB64 
         cRDD := "Harbour hyper locking scheme for 64bit file API"
      CASE nRDD = DB_DBFLOCK_CLIPPER2 
         cRDD := "extended Cl*pper locking scheme NTXLOCK2.OBJ"
   ENDCASE
   cMsg += "DbInfo      " + cRDD + CRLF

   MsgInfo( cMsg )

RETURN
have fun
Jimmy
Post Reply