diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 547c6f892b..7949e5d687 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,25 @@ 2002-12-01 23:12 UTC+0100 Foo Bar */ +2002-10-14 0:10 UTC-0800 Brian Hays + * contrib/rdd_ads/rddads.h + * contrib/rdd_ads/ads1.c + * created iFileType to pArea so each workarea knows + whether it's ADT or CDX or NTX + * contrib/rdd_ads/adsfunc.c + - removed the 'far' from a char far * added in last post + + * include/dbstruct.ch + Added a note that it's also used by C code + #included it in hbapirdd.h (where I removed redundancies) + * include/ord.ch + + include/dbInfo.ch + * moved all the DBI_*, DBRI_* and DBOI_* constants to the + new dbInfo.ch, and included this in ord.ch and hbapirdd.h + * include/hbapirdd.h + * removed the redundancies, included dbinfo.ch and dbstruct.ch + + 2002-10-12 19:00 UTC-0300 Luiz Rafael Culik * contrib/mysql/mysql.c ! Fixed Buffer sizes on DATATOSQL() and FILETOSQLBINARY() It was leading to GPF due buffer underflow. diff --git a/harbour/contrib/rdd_ads/ads1.c b/harbour/contrib/rdd_ads/ads1.c index 7b92f3b3e7..098429c194 100644 --- a/harbour/contrib/rdd_ads/ads1.c +++ b/harbour/contrib/rdd_ads/ads1.c @@ -73,7 +73,7 @@ static ERRCODE adsSetScope( ADSAREAP pArea, LPDBORDSCOPEINFO sInfo ); HB_FUNC( _ADS ); HB_FUNC( ADS_GETFUNCTABLE ); -extern int adsFileType; +extern int adsFileType; /* current global setting */ extern int adsLockType; extern int adsRights; extern int adsCharType; @@ -1508,7 +1508,7 @@ static ERRCODE adsInfo( ADSAREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) } case DBI_TABLEEXT: - hb_itemPutC( pItem, ((adsFileType==ADS_ADT) ? ".adt" : ".dbf") ); + hb_itemPutC( pItem, ((pArea->iFileType==ADS_ADT) ? ".adt" : ".dbf") ); break; case DBI_FULLPATH : @@ -1531,8 +1531,8 @@ static ERRCODE adsInfo( ADSAREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) break; case DBI_MEMOEXT: - hb_itemPutC( pItem, ((adsFileType==ADS_ADT) ? ".adm" : - (adsFileType==ADS_CDX) ? ".fpt" : ".dbt") ); + hb_itemPutC( pItem, ((pArea->iFileType==ADS_ADT) ? ".adm" : + (pArea->iFileType==ADS_CDX) ? ".fpt" : ".dbt") ); break; /* TODO ... */ @@ -1571,7 +1571,9 @@ static ERRCODE adsNewArea( ADSAREAP pArea ) /* Size for deleted records flag */ pArea->uiRecordLen = 1; - pArea->uiMaxFieldNameLength = (adsFileType == ADS_ADT) ? ADS_MAX_FIELD_NAME : ADS_MAX_DBF_FIELD_NAME; + pArea->uiMaxFieldNameLength = (pArea->iFileType == ADS_ADT) ? ADS_MAX_FIELD_NAME : ADS_MAX_DBF_FIELD_NAME; + pArea->iFileType = adsFileType; + return SUCCESS; } @@ -1602,7 +1604,7 @@ static ERRCODE adsOpen( ADSAREAP pArea, LPDBOPENINFO pOpenInfo ) pArea->hOrdCurrent = 0; ulRetVal = AdsOpenTable ( 0, pOpenInfo->abName, pOpenInfo->atomAlias, - adsFileType, adsCharType, adsLockType, adsRights, + pArea->iFileType, adsCharType, adsLockType, adsRights, ( (pOpenInfo->fShared) ? ADS_SHARED : ADS_EXCLUSIVE ) | ( (pOpenInfo->fReadonly) ? ADS_READONLY : ADS_DEFAULT ), &hTable); @@ -2154,14 +2156,17 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde break; case ADS_NUMERIC: - if ( adsFileType == ADS_NTX ) /* TODO: This should be a table-specific switch */ + if ( pArea->iFileType == ADS_NTX ) { if ( aucBuffer[0] == '-' || aucBuffer[0] == ',') /* negative number encoding */ { pus16 = 0; while ( pus16 < pusLen && aucBuffer[pus16] == ',') /* leading zeros were set as commas for sorting */ aucBuffer[pus16++] = '0'; - if ( aucBuffer[pus16] == '-' ) pus16++; /* skip past the minus */ + + if ( aucBuffer[pus16] == '-' ) + pus16++; /* skip past the minus */ + while ( pus16 < pusLen ) aucBuffer[pus16] = (SIGNED8) 0x5C - aucBuffer[pus16++]; @@ -2246,7 +2251,7 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde case DBOI_BAGEXT: hb_itemPutC( pOrderInfo->itmResult, - ((adsFileType==ADS_ADT) ? ".adi" : (adsFileType==ADS_CDX) ? ".cdx" : ".ntx") ); + ((pArea->iFileType==ADS_ADT) ? ".adi" : (pArea->iFileType==ADS_CDX) ? ".cdx" : ".ntx") ); break; case DBOI_ORDERCOUNT: diff --git a/harbour/contrib/rdd_ads/adsfunc.c b/harbour/contrib/rdd_ads/adsfunc.c index 8a20baa557..ab966b6baa 100644 --- a/harbour/contrib/rdd_ads/adsfunc.c +++ b/harbour/contrib/rdd_ads/adsfunc.c @@ -1244,7 +1244,7 @@ HB_FUNC( ADSGETLASTERROR ) AdsGetLastError( &ulLastErr, aucError, &usLength ); if ( hb_pcount() > 0 ) - hb_storclen( ( char far * ) aucError, usLength, 1 ); + hb_storclen( ( char * ) aucError, usLength, 1 ); hb_retnl( ulLastErr ); } diff --git a/harbour/contrib/rdd_ads/rddads.h b/harbour/contrib/rdd_ads/rddads.h index ff6658f457..025be354f6 100644 --- a/harbour/contrib/rdd_ads/rddads.h +++ b/harbour/contrib/rdd_ads/rddads.h @@ -113,6 +113,7 @@ typedef struct _ADSAREA_ ADSHANDLE hTable; ADSHANDLE hOrdCurrent; ADSHANDLE hStatement; + int iFileType; /* adt/cdx/ntx */ } ADSAREA; typedef ADSAREA * ADSAREAP; diff --git a/harbour/include/dbinfo.ch b/harbour/include/dbinfo.ch new file mode 100644 index 0000000000..e0cc3ed639 --- /dev/null +++ b/harbour/include/dbinfo.ch @@ -0,0 +1,162 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * Header file for the RDD API Index OrderInfo and DBInfo support + * + * Copyright 2000 {list of individual authors and e-mail addresses} + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ + +#ifndef HB_DBINFO_CH_ +#define HB_DBINFO_CH_ + +/* + Constants for SELF_ORDINFO () + Be sure these stay in sync with the same ones in hbapirdd.h +*/ + +#define DBOI_CONDITION 1 /* Get the order's condition */ +#define DBOI_EXPRESSION 2 /* Get the order's expression */ +#define DBOI_POSITION 3 /* Get current key position in scope and filter */ +#define DBOI_RECNO 4 /* Get current key position disregarding filters */ +#define DBOI_NAME 5 /* Get the order's name */ +#define DBOI_NUMBER 6 /* Get the order's list position */ +#define DBOI_BAGNAME 7 /* Get the order's Bag name */ +#define DBOI_BAGEXT 8 /* Get the order's Bag Extension */ +#define DBOI_INDEXEXT DBOI_BAGEXT +#define DBOI_INDEXNAME DBOI_BAGNAME +#define DBOI_ORDERCOUNT 9 /* Get the count of ORDERS in an index file or in total */ +#define DBOI_FILEHANDLE 10 /* Get the handle of the index file */ +#define DBOI_ISCOND 11 /* Does the order have a FOR condition */ +#define DBOI_ISDESC 12 /* Is the order DESCENDing */ +#define DBOI_UNIQUE 13 /* Does the order have the unique attribute set? */ + +/* 53-level constants */ +#define DBOI_FULLPATH 20 /* Get the order Bag's Full Path */ +#define DBOI_KEYTYPE 24 /* Get the type of the order's key */ +#define DBOI_KEYSIZE 25 /* Get the size of the order's key */ +#define DBOI_KEYCOUNT 26 /* Get the count of keys in scope and filter*/ +#define DBOI_SETCODEBLOCK 27 /* Set codeblock for order key */ +#define DBOI_KEYDEC 28 /* Get # of decimals in order's key */ +#define DBOI_HPLOCKING 29 /* Using High performance index locking? */ +#define DBOI_LOCKOFFSET 35 /* New locking offset */ + +#define DBOI_KEYADD 36 /* Gets/Sets the Key to be added */ +#define DBOI_KEYDELETE 37 /* Gets/Sets the Key to be deleted */ +#define DBOI_KEYVAL 38 /* Get current key's value */ +#define DBOI_SCOPETOP 39 /* Gets/Sets the scope top */ +#define DBOI_SCOPEBOTTOM 40 /* Gets/Sets the scope bottom */ +#define DBOI_SCOPETOPCLEAR 41 /* Clear the top scope setting */ +#define DBOI_SCOPEBOTTOMCLEAR 42 /* Clear the bottom scope setting */ + +#define DBOI_CUSTOM 45 /* Custom created order */ +#define DBOI_SKIPUNIQUE 46 /* Flag for skip unique */ + +#define DBOI_KEYSINCLUDED 50 /* # of keys included while indexing */ +/* key numbers and counts */ +#define DBOI_KEYGOTO DBOI_POSITION +#define DBOI_KEYNORAW 51 /* keyno ignoring any filter */ +#define DBOI_KEYCOUNTRAW 52 /* keycount ignoring any filter */ + +/* Query Optimization */ +#define DBOI_OPTLEVEL 53 /* Optimization level for current query */ + +/* Perhaps change these so they don't require an open table */ +#define DBOI_STRICTREAD 60 /* Get/set read-thru RDD when indexing */ +#define DBOI_OPTIMIZE 61 /* Get/set use of query optimization */ +#define DBOI_AUTOOPEN 62 /* Get/set auto-open of structural index */ +#define DBOI_AUTOORDER 63 /* Get/set default order of structural index */ +#define DBOI_AUTOSHARE 64 /* Get/set automatic share control */ + +/* Return values for DBOI_OPTLEVEL */ +#define DBOI_OPTIMIZED_NONE 0 +#define DBOI_OPTIMIZED_PART 1 +#define DBOI_OPTIMIZED_FULL 2 + +/* constants for SELF_RECINFO() */ +#define DBRI_DELETED 1 +#define DBRI_LOCKED 2 +#define DBRI_RECSIZE 3 +#define DBRI_RECNO 4 +#define DBRI_UPDATED 5 + + +/* constants for DBINFO() */ +#define DBI_ISDBF 1 /* Logical: does RDD support DBF file format? */ +#define DBI_CANPUTREC 2 /* Logical: does RDD support Putting Records? */ +#define DBI_GETHEADERSIZE 3 /* Numeric: Get file header size */ +#define DBI_LASTUPDATE 4 /* Date: Last date RDD file was updated */ +#define DBI_GETDELIMITER 5 /* String: Get the default delimiter */ +#define DBI_SETDELIMITER 6 /* String: Set the default delimiter */ +#define DBI_GETRECSIZE 7 /* Numeric: The size of 1 record in the file */ +#define DBI_GETLOCKARRAY 8 /* Array: Get the array of locked records */ +#define DBI_TABLEEXT 9 /* String: Get the table's file extension */ +#define DBI_FULLPATH 10 /* String: Full path name of the file */ + +#define DBI_ISFLOCK 20 /* Get the file lock status */ +#define DBI_CHILDCOUNT 22 /* Number of open child relations */ +#define DBI_FILEHANDLE 23 /* Handle of the open data file */ +#define DBI_BOF 26 /* BOF flag - alternate for bof() */ +#define DBI_EOF 27 /* EOF flag - alternate for eof() */ +#define DBI_DBFILTER 28 /* Current Filter expression */ +#define DBI_FOUND 29 /* FOUND flag - alternate to found() */ +#define DBI_FCOUNT 30 /* Number of fields in a record */ +#define DBI_LOCKCOUNT 31 /* Number of record locks */ +#define DBI_VALIDBUFFER 32 /* Is the current buffer valid? */ +#define DBI_ALIAS 33 /* Alias (name) of workarea */ +#define DBI_GETSCOPE 34 /* LOCATE codeblock */ +#define DBI_LOCKOFFSET 35 /* Locking offset */ +#define DBI_SHARED 36 /* Get/Set the shared flag */ +#define DBI_MEMOEXT 37 /* The memo file's file extension */ +#define DBI_MEMOHANDLE 38 /* File handle of memo file */ +#define DBI_MEMOBLOCKSIZE 39 /* Memo File Blocksize */ + +#define DBI_DB_VERSION 101 /* Version of Host driver */ +#define DBI_RDD_VERSION 102 /* current RDD version */ + +#define DBI_USER 1000 /* Start of user-defined DBI_ values */ + +#endif /* HB_DBINFO_CH_ */ diff --git a/harbour/include/dbstruct.ch b/harbour/include/dbstruct.ch index 83ca2a2692..e13a5c34f3 100644 --- a/harbour/include/dbstruct.ch +++ b/harbour/include/dbstruct.ch @@ -4,7 +4,7 @@ /* * Harbour Project source code: - * Header file for DBSTRUCT() function + * Header file for DBSTRUCT() function. >> Also used by C code << * * Copyright 1999 {list of individual authors and e-mail addresses} * www - http://www.harbour-project.org diff --git a/harbour/include/hbapirdd.h b/harbour/include/hbapirdd.h index 7014ed648a..0342b848fb 100644 --- a/harbour/include/hbapirdd.h +++ b/harbour/include/hbapirdd.h @@ -54,7 +54,8 @@ #define HB_APIRDD_H_ #include "hbapifs.h" -//#include "ord.ch" +#include "dbinfo.ch" /* Constants for SELF_ORDINFO, SELF_INFO(), SELF_RECINFO() */ +#include "dbstruct.ch" /* Constants for SELF_FIELDINFO() */ #if defined(HB_EXTERN_C) extern "C" { @@ -62,8 +63,6 @@ extern "C" { #define HARBOUR_MAX_RDD_DRIVERNAME_LENGTH 32 #define HARBOUR_MAX_RDD_ALIAS_LENGTH 32 -/* #define HARBOUR_MAX_RDD_FIELDNAME_LENGTH 32 */ - /* RDD virtual machine integration functions */ @@ -116,120 +115,6 @@ extern void hb_rddShutDown( void ); #define DBLM_FILE 3 -/* Constants for SELF_ORDINFO() - Be sure these stay in sync with the same ones in ord.ch - */ - -#define DBOI_CONDITION 1 /* Get the order condition */ -#define DBOI_EXPRESSION 2 /* Get the order expression */ -#define DBOI_POSITION 3 /* Get the order position */ -#define DBOI_RECNO 4 /* Get the order record number */ -#define DBOI_NAME 5 /* Get the order list name */ -#define DBOI_NUMBER 6 /* Get the order list position */ -#define DBOI_BAGNAME 7 /* Get the order Bag name */ -#define DBOI_BAGEXT 8 /* Get the order Bag Extension */ -#define DBOI_INDEXEXT DBOI_BAGEXT -#define DBOI_INDEXNAME DBOI_BAGNAME -#define DBOI_ORDERCOUNT 9 /* Get the number of orders in the index file */ -#define DBOI_FILEHANDLE 10 /* Get the handle of the index file */ -#define DBOI_ISCOND 11 /* Get the flag if the order has a for condition */ -#define DBOI_ISDESC 12 /* Get the flag if the order is descending */ -#define DBOI_UNIQUE 13 /* Get the flag if the order has the unique attribute set */ - -/* 53-level constants */ -#define DBOI_FULLPATH 20 /* Get the order Bag Full Path */ -#define DBOI_KEYTYPE 24 /* Get the keytype of order */ -#define DBOI_KEYSIZE 25 /* Get the keysize of order */ -#define DBOI_KEYCOUNT 26 /* Get the number of keys */ -#define DBOI_SETCODEBLOCK 27 /* Set codeblock for order key */ -#define DBOI_KEYDEC 28 /* Get decimals of order key */ -#define DBOI_HPLOCKING 29 /* High performance index locking */ -#define DBOI_LOCKOFFSET 35 /* New locking offset */ - -#define DBOI_KEYADD 36 /* Gets/Sets the Key to be added */ -#define DBOI_KEYDELETE 37 /* Gets/Sets the Key to be deleted */ -#define DBOI_KEYVAL 38 /* Get current key value */ -#define DBOI_SCOPETOP 39 /* Gets/Sets top of scope */ -#define DBOI_SCOPEBOTTOM 40 /* Gets/Sets bottom of scope */ -#define DBOI_SCOPETOPCLEAR 41 /* Clears top scope setting */ -#define DBOI_SCOPEBOTTOMCLEAR 42 /* Clears bottom scope setting */ - -#define DBOI_CUSTOM 45 /* Custom created order */ -#define DBOI_SKIPUNIQUE 46 /* Flag for skip unique */ - -#define DBOI_KEYSINCLUDED 50 /* # of keys included while indexing */ -/* keyno */ -#define DBOI_KEYGOTO DBOI_POSITION -#define DBOI_KEYNORAW 51 /* keyno ignoring any filter */ -#define DBOI_KEYCOUNTRAW 52 /* keycount ignoring any filter */ -#define DBOI_OPTLEVEL 53 /* Optimization achieved for last query */ - -// Ideally shoud be an entry point that doesn't require an open table -#define DBOI_STRICTREAD 60 /* Get/set read thru RDD when indexing */ -#define DBOI_OPTIMIZE 61 /* Get/set use of query optimization */ -#define DBOI_AUTOOPEN 62 /* Get/set auto open of production index */ -#define DBOI_AUTOORDER 63 /* Get/set default order: production index */ -#define DBOI_AUTOSHARE 64 /* Get/set automatic sharing control */ - -/* Return values for DBOI_OPTLEVEL */ -#define DBOI_OPTIMIZED_NONE 0 -#define DBOI_OPTIMIZED_PART 1 -#define DBOI_OPTIMIZED_FULL 2 - -/* Codes for SELF_INFO() */ - -#define DBI_ISDBF 1 /* Logical: RDD support DBF file format? */ -#define DBI_CANPUTREC 2 /* Logical: RDD support Putting Records? */ -#define DBI_GETHEADERSIZE 3 /* Numeric: Get header size of the file */ -#define DBI_LASTUPDATE 4 /* Date: Last date RDD file updated */ -#define DBI_GETDELIMITER 5 /* String: Get default delimiter */ -#define DBI_SETDELIMITER 6 /* String: Set default delimiter */ -#define DBI_GETRECSIZE 7 /* Numeric: Get record size of the file */ -#define DBI_GETLOCKARRAY 8 /* Array: Get an array of locked records */ -#define DBI_TABLEEXT 9 /* String: Get table file extension */ -#define DBI_FULLPATH 10 /* String: Full path name of opened file */ -#define DBI_ISFLOCK 20 /* Get file lock status */ -#define DBI_CHILDCOUNT 22 /* Number of opened relations */ -#define DBI_FILEHANDLE 23 /* Handle of opened file */ -#define DBI_BOF 26 /* BOF flag - alternate to bof() */ -#define DBI_EOF 27 /* EOF flag - alternate to eof() */ -#define DBI_DBFILTER 28 /* Filter expression */ -#define DBI_FOUND 29 /* FOUND flag - alternate to found */ -#define DBI_FCOUNT 30 /* Number of fields */ -#define DBI_LOCKCOUNT 31 /* Locked records */ -#define DBI_VALIDBUFFER 32 /* Is the current buffer valid */ -#define DBI_ALIAS 33 /* Alias name of workarea */ -#define DBI_GETSCOPE 34 /* Locate codeblock */ -#define DBI_LOCKOFFSET 35 /* New locking offset */ -#define DBI_SHARED 36 /* Gets/Sets the shared flag */ -#define DBI_MEMOEXT 37 /* String: Get memo file extension */ -#define DBI_MEMOHANDLE 38 /* Dos handle for memo file */ -#define DBI_MEMOBLOCKSIZE 39 /* Blocksize in memo files */ -#define DBI_DB_VERSION 101 /* HOST driver Version */ -#define DBI_RDD_VERSION 102 /* RDD version (current RDD) */ -#define DBI_USER 1000 /* Start of user definable DBI_ values */ - - - -/* Codes for SELF_RECINFO() */ - -#define DBRI_DELETED 1 -#define DBRI_LOCKED 2 -#define DBRI_RECSIZE 3 -#define DBRI_RECNO 4 -#define DBRI_UPDATED 5 - - - -/* Codes for SELF_FIELDINFO() */ - -#define DBS_NAME 1 -#define DBS_TYPE 2 -#define DBS_LEN 3 -#define DBS_DEC 4 - - - /* Codes for RawLock types */ #define FILE_LOCK 1 diff --git a/harbour/include/ord.ch b/harbour/include/ord.ch index 05f646a53e..49dcea0498 100644 --- a/harbour/include/ord.ch +++ b/harbour/include/ord.ch @@ -75,66 +75,6 @@ #command SET SCOPE TO , => OrdScope( 1, ) - -/* - Constants for SELF_ORDINFO () - Be sure these stay in sync with the same ones in hbapirdd.h -*/ - -#define DBOI_CONDITION 1 /* Get the order's condition */ -#define DBOI_EXPRESSION 2 /* Get the order's expression */ -#define DBOI_POSITION 3 /* Get current key position in scope and filter */ -#define DBOI_RECNO 4 /* Get current key position disregarding filters */ -#define DBOI_NAME 5 /* Get the order's name */ -#define DBOI_NUMBER 6 /* Get the order's list position */ -#define DBOI_BAGNAME 7 /* Get the order's Bag name */ -#define DBOI_BAGEXT 8 /* Get the order's Bag Extension */ -#define DBOI_INDEXEXT DBOI_BAGEXT -#define DBOI_INDEXNAME DBOI_BAGNAME -#define DBOI_ORDERCOUNT 9 /* Get the count of ORDERS in an index file or in total */ -#define DBOI_FILEHANDLE 10 /* Get the handle of the index file */ -#define DBOI_ISCOND 11 /* Does the order have a FOR condition */ -#define DBOI_ISDESC 12 /* Is the order DESCENDing */ -#define DBOI_UNIQUE 13 /* Does the order have the unique attribute set? */ - -/* 53-level constants */ -#define DBOI_FULLPATH 20 /* Get the order Bag's Full Path */ -#define DBOI_KEYTYPE 24 /* Get the type of the order's key */ -#define DBOI_KEYSIZE 25 /* Get the size of the order's key */ -#define DBOI_KEYCOUNT 26 /* Get the count of keys in scope and filter*/ -#define DBOI_SETCODEBLOCK 27 /* Set codeblock for order key */ -#define DBOI_KEYDEC 28 /* Get # of decimals in order's key */ -#define DBOI_HPLOCKING 29 /* Using High performance index locking? */ -#define DBOI_LOCKOFFSET 35 /* New locking offset */ - -#define DBOI_KEYADD 36 /* Gets/Sets the Key to be added */ -#define DBOI_KEYDELETE 37 /* Gets/Sets the Key to be deleted */ -#define DBOI_KEYVAL 38 /* Get current key's value */ -#define DBOI_SCOPETOP 39 /* Gets/Sets the scope top */ -#define DBOI_SCOPEBOTTOM 40 /* Gets/Sets the scope bottom */ -#define DBOI_SCOPETOPCLEAR 41 /* Clear the top scope setting */ -#define DBOI_SCOPEBOTTOMCLEAR 42 /* Clear the bottom scope setting */ - -#define DBOI_CUSTOM 45 /* Custom created order */ -#define DBOI_SKIPUNIQUE 46 /* Flag for skip unique */ - -#define DBOI_KEYSINCLUDED 50 /* # of keys included while indexing */ -/* keyno */ -#define DBOI_KEYGOTO DBOI_POSITION -#define DBOI_KEYNORAW 51 /* keyno ignoring any filter */ -#define DBOI_KEYCOUNTRAW 52 /* keycount ignoring any filter */ -#define DBOI_OPTLEVEL 53 /* Optimization achieved for last query */ - -/* Ideally should be an entry point that doesn't require an open table */ -#define DBOI_STRICTREAD 60 /* Get/set read thru RDD when indexing */ -#define DBOI_OPTIMIZE 61 /* Get/set use of query optimization */ -#define DBOI_AUTOOPEN 62 /* Get/set auto open of production index */ -#define DBOI_AUTOORDER 63 /* Get/set default order: production index */ -#define DBOI_AUTOSHARE 64 /* Get/set automatic sharing control */ - -/* Return values for DBOI_OPTLEVEL */ -#define DBOI_OPTIMIZED_NONE 0 -#define DBOI_OPTIMIZED_PART 1 -#define DBOI_OPTIMIZED_FULL 2 +#include "dbinfo.ch" #endif /* HB_ORD_CH_ */