From 94bfc4d0f2fde6cc9750fc3726349e76e14f3179 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 4 Jun 2008 00:09:49 +0000 Subject: [PATCH] 2008-06-04 02:05 UTC+0100 Viktor Szakats (harbour.01 syenar hu) * contrib/rddads/adsfunc.c ! Fix to ADSCREATEFTSINDEX(). Thanks Brian and Luis. * contrib/rddads/ads.ch * Formatting: Moved #commands together to end of the file. * Formatting: Aligned #define values to look more organized. --- harbour/ChangeLog | 9 + harbour/contrib/rddads/ads.ch | 382 ++++++++++++++++--------------- harbour/contrib/rddads/adsfunc.c | 2 +- 3 files changed, 202 insertions(+), 191 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 5ad700b44b..6aa399f225 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,15 @@ 2008-12-31 13:59 UTC+0100 Foo Bar */ +2008-06-04 02:05 UTC+0100 Viktor Szakats (harbour.01 syenar hu) + * contrib/rddads/adsfunc.c + ! Fix to ADSCREATEFTSINDEX(). + Thanks Brian and Luis. + + * contrib/rddads/ads.ch + * Formatting: Moved #commands together to end of the file. + * Formatting: Aligned #define values to look more organized. + 2008-06-04 00:32 UTC+0100 Viktor Szakats (harbour.01 syenar hu) * contrib/hbcurl/hbcurl.c * CURL_GETDATE(): using hb_retnint(). diff --git a/harbour/contrib/rddads/ads.ch b/harbour/contrib/rddads/ads.ch index f147edecbc..4b2e6fdf26 100644 --- a/harbour/contrib/rddads/ads.ch +++ b/harbour/contrib/rddads/ads.ch @@ -71,47 +71,217 @@ */ /* Supported file types */ -#define ADS_NTX 1 -#define ADS_CDX 2 -#define ADS_ADT 3 -#define ADS_VFP 4 +#define ADS_NTX 1 +#define ADS_CDX 2 +#define ADS_ADT 3 +#define ADS_VFP 4 /* Advantage Optimized Filter (AOF) optimization levels */ -#define ADS_OPTIMIZED_FULL 1 -#define ADS_OPTIMIZED_PART 2 -#define ADS_OPTIMIZED_NONE 3 +#define ADS_OPTIMIZED_FULL 1 +#define ADS_OPTIMIZED_PART 2 +#define ADS_OPTIMIZED_NONE 3 /* Advantage Optimized Filter (AOF) resolution options */ -#define ADS_RESOLVE_IMMEDIATE 1 -#define ADS_RESOLVE_DYNAMIC 2 +#define ADS_RESOLVE_IMMEDIATE 1 +#define ADS_RESOLVE_DYNAMIC 2 /* Advantage Optimized Filter (AOF) customization options */ -#define ADS_AOF_ADD_RECORD 1 -#define ADS_AOF_REMOVE_RECORD 2 -#define ADS_AOF_TOGGLE_RECORD 3 +#define ADS_AOF_ADD_RECORD 1 +#define ADS_AOF_REMOVE_RECORD 2 +#define ADS_AOF_TOGGLE_RECORD 3 /* For retrieving scope settings In the Harbour RDD, use TOPSCOPE and BOTTOMSCOPE as the values are different (Top = 0, Bottom = 1) - #define ADS_TOP 1 - #define ADS_BOTTOM 2 + #define ADS_TOP 1 + #define ADS_BOTTOM 2 */ /* for calls that can optionally use filters */ -#define ADS_RESPECTFILTERS 1 -#define ADS_IGNOREFILTERS 2 -#define ADS_RESPECTSCOPES 3 +#define ADS_RESPECTFILTERS 1 +#define ADS_IGNOREFILTERS 2 +#define ADS_RESPECTSCOPES 3 + +/* Server type constants for ORing with AdsSetServerType() */ +#define ADS_LOCAL_SERVER 1 +#define ADS_REMOTE_SERVER 2 +#define ADS_AIS_SERVER 4 + +/* character set types */ +#define ADS_ANSI 1 +#define ADS_OEM 2 + +/* + * Constants for AdsMgGetServerType() + * Note ADS_MGMT_NETWARE_SERVER remains for backwards compatibility only. + */ +#define ADS_MGMT_NETWARE_SERVER 1 +#define ADS_MGMT_NETWARE4_OR_OLDER_SERVER 1 +#define ADS_MGMT_NT_SERVER 2 +#define ADS_MGMT_LOCAL_SERVER 3 +#define ADS_MGMT_WIN9X_SERVER 4 +#define ADS_MGMT_NETWARE5_OR_NEWER_SERVER 5 +#define ADS_MGMT_LINUX_SERVER 6 + +/* ACE Handle types */ +#define ADS_CONNECTION 1 +#define ADS_TABLE 2 +#define ADS_INDEX_ORDER 3 +#define ADS_STATEMENT 4 +#define ADS_CURSOR 5 +#define ADS_DATABASE_CONNECTION 6 +#define ADS_SYS_ADMIN_CONNECTION 7 +#define ADS_FTS_INDEX_ORDER 8 + +#define AE_NO_CONNECTION 5036 + +#define ADS_DD_TABLE_OBJECT 1 +#define ADS_DD_RELATION_OBJECT 2 +#define ADS_DD_INDEX_FILE_OBJECT 3 +#define ADS_DD_FIELD_OBJECT 4 +#define ADS_DD_COLUMN_OBJECT 4 +#define ADS_DD_INDEX_OBJECT 5 +#define ADS_DD_VIEW_OBJECT 6 +#define ADS_DD_VIEW_OR_TABLE_OBJECT 7 /* Used in AdsFindFirst/NextTable */ +#define ADS_DD_USER_OBJECT 8 +#define ADS_DD_USER_GROUP_OBJECT 9 +#define ADS_DD_PROCEDURE_OBJECT 10 +#define ADS_DD_DATABASE_OBJECT 11 +#define ADS_DD_LINK_OBJECT 12 +#define ADS_DD_TABLE_VIEW_OR_LINK_OBJECT 13 /* Used in v6.2 AdsFindFirst/NextTable */ + +/* Common properties numbers < 100 */ +#define ADS_DD_COMMENT 1 +#define ADS_DD_VERSION 2 +#define ADS_DD_USER_DEFINED_PROP 3 + +/* Database properties between 100 and 199 */ +#define ADS_DD_DEFAULT_TABLE_PATH 100 +#define ADS_DD_ADMIN_PASSWORD 101 +#define ADS_DD_TEMP_TABLE_PATH 102 +#define ADS_DD_LOG_IN_REQUIRED 103 +#define ADS_DD_VERIFY_ACCESS_RIGHTS 104 +#define ADS_DD_ENCRYPT_TABLE_PASSWORD 105 +#define ADS_DD_ENCRYPT_NEW_TABLE 106 +#define ADS_DD_ENABLE_INTERNET 107 +#define ADS_DD_INTERNET_SECURITY_LEVEL 108 +#define ADS_DD_MAX_FAILED_ATTEMPTS 109 +#define ADS_DD_ALLOW_ADSSYS_NET_ACCESS 110 +#define ADS_DD_VERSION_MAJOR 111 /* properties for customer dd version */ +#define ADS_DD_VERSION_MINOR 112 + +/* Table properties between 200 and 299 */ +#define ADS_DD_TABLE_VALIDATION_EXPR 200 +#define ADS_DD_TABLE_VALIDATION_MSG 201 +#define ADS_DD_TABLE_PRIMARY_KEY 202 +#define ADS_DD_TABLE_AUTO_CREATE 203 +#define ADS_DD_TABLE_TYPE 204 +#define ADS_DD_TABLE_PATH 205 +#define ADS_DD_TABLE_FIELD_COUNT 206 +#define ADS_DD_TABLE_RI_GRAPH 207 +#define ADS_DD_TABLE_OBJ_ID 208 +#define ADS_DD_TABLE_RI_XY 209 +#define ADS_DD_TABLE_IS_RI_PARENT 210 +#define ADS_DD_TABLE_RELATIVE_PATH 211 +#define ADS_DD_TABLE_CHAR_TYPE 212 +#define ADS_DD_TABLE_DEFAULT_INDEX 213 +#define ADS_DD_TABLE_ENCRYPTION 214 +#define ADS_DD_TABLE_MEMO_BLOCK_SIZE 215 +#define ADS_DD_TABLE_PERMISSION_LEVEL 216 + +/* Field properties between 300 - 399 */ +#define ADS_DD_FIELD_DEFAULT_VALUE 300 +#define ADS_DD_FIELD_CAN_NULL 301 +#define ADS_DD_FIELD_MIN_VALUE 302 +#define ADS_DD_FIELD_MAX_VALUE 303 +#define ADS_DD_FIELD_VALIDATION_MSG 304 +#define ADS_DD_FIELD_DEFINITION 305 +#define ADS_DD_FIELD_TYPE 306 +#define ADS_DD_FIELD_LENGTH 307 +#define ADS_DD_FIELD_DECIMAL 308 + +/* Index tag properties between 400 - 499 */ +#define ADS_DD_INDEX_FILE_NAME 400 +#define ADS_DD_INDEX_EXPRESSION 401 +#define ADS_DD_INDEX_CONDITION 402 +#define ADS_DD_INDEX_OPTIONS 403 +#define ADS_DD_INDEX_KEY_LENGTH 404 +#define ADS_DD_INDEX_KEY_TYPE 405 + +/* RI properties between 500-599 */ +#define ADS_DD_RI_PARENT_GRAPH 500 +#define ADS_DD_RI_PRIMARY_TABLE 501 +#define ADS_DD_RI_PRIMARY_INDEX 502 +#define ADS_DD_RI_FOREIGN_TABLE 503 +#define ADS_DD_RI_FOREIGN_INDEX 504 +#define ADS_DD_RI_UPDATERULE 505 +#define ADS_DD_RI_DELETERULE 506 +#define ADS_DD_RI_NO_PKEY_ERROR 507 +#define ADS_DD_RI_CASCADE_ERROR 508 + +/* User properties between 600-699 */ +#define ADS_DD_USER_GROUP_NAME 600 + +/* View properties between 700-749 */ +#define ADS_DD_VIEW_STMT 700 +#define ADS_DD_VIEW_STMT_LEN 701 + +/* Stored procedure properties 800-899 */ +#define ADS_DD_PROC_INPUT 800 +#define ADS_DD_PROC_OUTPUT 801 +#define ADS_DD_PROC_DLL_NAME 802 +#define ADS_DD_PROC_DLL_FUNCTION_NAME 803 +#define ADS_DD_PROC_INVOKE_OPTION 804 + +/* Index file properties 900-999 */ +#define ADS_DD_INDEX_FILE_PATH 900 +#define ADS_DD_INDEX_FILE_PAGESIZE 901 + +/* + * Object rights properties 1001 - 1099 . They can be used + * with either user or user group objects. + */ +#define ADS_DD_TABLES_RIGHTS 1001 +#define ADS_DD_VIEWS_RIGHTS 1002 +#define ADS_DD_PROCS_RIGHTS 1003 +#define ADS_DD_OBJECTS_RIGHTS 1004 +#define ADS_DD_FREE_TABLES_RIGHTS 1005 + +/* User Properties 1101 - 1199 */ +#define ADS_DD_USER_PASSWORD 1101 +#define ADS_DD_USER_GROUP_MEMBERSHIP 1102 +#define ADS_DD_USER_BAD_LOGINS 1103 + +/* User group Properties 1201 - 1299 */ +/* None at this moment. */ + +/* Link properties 1301 - 1399 */ +#define ADS_DD_LINK_PATH 1300 +#define ADS_DD_LINK_OPTIONS 1301 +#define ADS_DD_LINK_USERNAME 1302 + +#define ADS_DD_LEVEL_0 0 +#define ADS_DD_LEVEL_1 1 +#define ADS_DD_LEVEL_2 2 + +/* Referential Integrity (RI) update and delete rules */ +#define ADS_DD_RI_CASCADE 1 +#define ADS_DD_RI_RESTRICT 2 +#define ADS_DD_RI_SETNULL 3 +#define ADS_DD_RI_SETDEFAULT 4 + +/* Default Field Value Options */ +#define ADS_DD_DFV_UNKNOWN 1 +#define ADS_DD_DFV_NONE 2 +#define ADS_DD_DFV_VALUES_STORED 3 + +/* Commands */ #command SET FILETYPE TO ; => AdsSetFileType( iif( Upper( <(x)> ) == "NTX", ADS_NTX, ; iif( Upper( <(x)> ) == "CDX", ADS_CDX, ; iif( Upper( <(x)> ) == "VFP", ADS_VFP, ADS_ADT ) ) ) ) -/* Server type constants for ORing with AdsSetServerType() */ -#define ADS_LOCAL_SERVER 1 -#define ADS_REMOTE_SERVER 2 -#define ADS_AIS_SERVER 4 - #command SET SERVER LOCAL => AdsSetServerType( ADS_LOCAL_SERVER ) #command SET SERVER REMOTE => AdsSetServerType( ADS_REMOTE_SERVER ) @@ -121,10 +291,6 @@ #command SET RIGHTS CHECKING ; => AdsRightsCheck( Upper( <(x)> ) == "ON" ) -/* character set types */ -#define ADS_ANSI 1 -#define ADS_OEM 2 - #command SET CHARTYPE TO ; => AdsSetCharType( iif( Upper( <(x)> ) == "OEM", ADS_OEM, ADS_ANSI ) ) @@ -156,167 +322,3 @@ [; dbSetIndex( <(index1)> )] ; [; dbSetIndex( <(indexn)> )] ; ; ENDIF - -/* - * Constants for AdsMgGetServerType() - * Note ADS_MGMT_NETWARE_SERVER remains for backwards compatibility only. - */ -#define ADS_MGMT_NETWARE_SERVER 1 -#define ADS_MGMT_NETWARE4_OR_OLDER_SERVER 1 -#define ADS_MGMT_NT_SERVER 2 -#define ADS_MGMT_LOCAL_SERVER 3 -#define ADS_MGMT_WIN9X_SERVER 4 -#define ADS_MGMT_NETWARE5_OR_NEWER_SERVER 5 -#define ADS_MGMT_LINUX_SERVER 6 - -/* ACE Handle types */ -#define ADS_CONNECTION 1 -#define ADS_TABLE 2 -#define ADS_INDEX_ORDER 3 -#define ADS_STATEMENT 4 -#define ADS_CURSOR 5 -#define ADS_DATABASE_CONNECTION 6 -#define ADS_SYS_ADMIN_CONNECTION 7 -#define ADS_FTS_INDEX_ORDER 8 - -#define AE_NO_CONNECTION 5036 - -#define ADS_DD_TABLE_OBJECT 1 -#define ADS_DD_RELATION_OBJECT 2 -#define ADS_DD_INDEX_FILE_OBJECT 3 -#define ADS_DD_FIELD_OBJECT 4 -#define ADS_DD_COLUMN_OBJECT 4 -#define ADS_DD_INDEX_OBJECT 5 -#define ADS_DD_VIEW_OBJECT 6 -#define ADS_DD_VIEW_OR_TABLE_OBJECT 7 /* Used in AdsFindFirst/NextTable */ -#define ADS_DD_USER_OBJECT 8 -#define ADS_DD_USER_GROUP_OBJECT 9 -#define ADS_DD_PROCEDURE_OBJECT 10 -#define ADS_DD_DATABASE_OBJECT 11 -#define ADS_DD_LINK_OBJECT 12 -#define ADS_DD_TABLE_VIEW_OR_LINK_OBJECT 13 /* Used in v6.2 AdsFindFirst/NextTable */ - -/* Common properties numbers < 100 */ -#define ADS_DD_COMMENT 1 -#define ADS_DD_VERSION 2 -#define ADS_DD_USER_DEFINED_PROP 3 - -/* Database properties between 100 and 199 */ -#define ADS_DD_DEFAULT_TABLE_PATH 100 -#define ADS_DD_ADMIN_PASSWORD 101 -#define ADS_DD_TEMP_TABLE_PATH 102 -#define ADS_DD_LOG_IN_REQUIRED 103 -#define ADS_DD_VERIFY_ACCESS_RIGHTS 104 -#define ADS_DD_ENCRYPT_TABLE_PASSWORD 105 -#define ADS_DD_ENCRYPT_NEW_TABLE 106 -#define ADS_DD_ENABLE_INTERNET 107 -#define ADS_DD_INTERNET_SECURITY_LEVEL 108 -#define ADS_DD_MAX_FAILED_ATTEMPTS 109 -#define ADS_DD_ALLOW_ADSSYS_NET_ACCESS 110 -#define ADS_DD_VERSION_MAJOR 111 /* properties for customer dd version */ -#define ADS_DD_VERSION_MINOR 112 - -/* Table properties between 200 and 299 */ -#define ADS_DD_TABLE_VALIDATION_EXPR 200 -#define ADS_DD_TABLE_VALIDATION_MSG 201 -#define ADS_DD_TABLE_PRIMARY_KEY 202 -#define ADS_DD_TABLE_AUTO_CREATE 203 -#define ADS_DD_TABLE_TYPE 204 -#define ADS_DD_TABLE_PATH 205 -#define ADS_DD_TABLE_FIELD_COUNT 206 -#define ADS_DD_TABLE_RI_GRAPH 207 -#define ADS_DD_TABLE_OBJ_ID 208 -#define ADS_DD_TABLE_RI_XY 209 -#define ADS_DD_TABLE_IS_RI_PARENT 210 -#define ADS_DD_TABLE_RELATIVE_PATH 211 -#define ADS_DD_TABLE_CHAR_TYPE 212 -#define ADS_DD_TABLE_DEFAULT_INDEX 213 -#define ADS_DD_TABLE_ENCRYPTION 214 -#define ADS_DD_TABLE_MEMO_BLOCK_SIZE 215 -#define ADS_DD_TABLE_PERMISSION_LEVEL 216 - -/* Field properties between 300 - 399 */ -#define ADS_DD_FIELD_DEFAULT_VALUE 300 -#define ADS_DD_FIELD_CAN_NULL 301 -#define ADS_DD_FIELD_MIN_VALUE 302 -#define ADS_DD_FIELD_MAX_VALUE 303 -#define ADS_DD_FIELD_VALIDATION_MSG 304 -#define ADS_DD_FIELD_DEFINITION 305 -#define ADS_DD_FIELD_TYPE 306 -#define ADS_DD_FIELD_LENGTH 307 -#define ADS_DD_FIELD_DECIMAL 308 - -/* Index tag properties between 400 - 499 */ -#define ADS_DD_INDEX_FILE_NAME 400 -#define ADS_DD_INDEX_EXPRESSION 401 -#define ADS_DD_INDEX_CONDITION 402 -#define ADS_DD_INDEX_OPTIONS 403 -#define ADS_DD_INDEX_KEY_LENGTH 404 -#define ADS_DD_INDEX_KEY_TYPE 405 - -/* RI properties between 500-599 */ -#define ADS_DD_RI_PARENT_GRAPH 500 -#define ADS_DD_RI_PRIMARY_TABLE 501 -#define ADS_DD_RI_PRIMARY_INDEX 502 -#define ADS_DD_RI_FOREIGN_TABLE 503 -#define ADS_DD_RI_FOREIGN_INDEX 504 -#define ADS_DD_RI_UPDATERULE 505 -#define ADS_DD_RI_DELETERULE 506 -#define ADS_DD_RI_NO_PKEY_ERROR 507 -#define ADS_DD_RI_CASCADE_ERROR 508 - -/* User properties between 600-699 */ -#define ADS_DD_USER_GROUP_NAME 600 - -/* View properties between 700-749 */ -#define ADS_DD_VIEW_STMT 700 -#define ADS_DD_VIEW_STMT_LEN 701 - -/* Stored procedure properties 800-899 */ -#define ADS_DD_PROC_INPUT 800 -#define ADS_DD_PROC_OUTPUT 801 -#define ADS_DD_PROC_DLL_NAME 802 -#define ADS_DD_PROC_DLL_FUNCTION_NAME 803 -#define ADS_DD_PROC_INVOKE_OPTION 804 - -/* Index file properties 900-999 */ -#define ADS_DD_INDEX_FILE_PATH 900 -#define ADS_DD_INDEX_FILE_PAGESIZE 901 - -/* - * Object rights properties 1001 - 1099 . They can be used - * with either user or user group objects. - */ -#define ADS_DD_TABLES_RIGHTS 1001 -#define ADS_DD_VIEWS_RIGHTS 1002 -#define ADS_DD_PROCS_RIGHTS 1003 -#define ADS_DD_OBJECTS_RIGHTS 1004 -#define ADS_DD_FREE_TABLES_RIGHTS 1005 - -/* User Properties 1101 - 1199 */ -#define ADS_DD_USER_PASSWORD 1101 -#define ADS_DD_USER_GROUP_MEMBERSHIP 1102 -#define ADS_DD_USER_BAD_LOGINS 1103 - -/* User group Properties 1201 - 1299 */ -/* None at this moment. */ - -/* Link properties 1301 - 1399 */ -#define ADS_DD_LINK_PATH 1300 -#define ADS_DD_LINK_OPTIONS 1301 -#define ADS_DD_LINK_USERNAME 1302 - -#define ADS_DD_LEVEL_0 0 -#define ADS_DD_LEVEL_1 1 -#define ADS_DD_LEVEL_2 2 - -/* Referential Integrity (RI) update and delete rules */ -#define ADS_DD_RI_CASCADE 1 -#define ADS_DD_RI_RESTRICT 2 -#define ADS_DD_RI_SETNULL 3 -#define ADS_DD_RI_SETDEFAULT 4 - -/* Default Field Value Options */ -#define ADS_DD_DFV_UNKNOWN 1 -#define ADS_DD_DFV_NONE 2 -#define ADS_DD_DFV_VALUES_STORED 3 diff --git a/harbour/contrib/rddads/adsfunc.c b/harbour/contrib/rddads/adsfunc.c index 1cc1928fbf..91b1966c62 100644 --- a/harbour/contrib/rddads/adsfunc.c +++ b/harbour/contrib/rddads/adsfunc.c @@ -2178,7 +2178,7 @@ HB_FUNC( ADSCREATEFTSINDEX ) ( UNSIGNED8 * ) hb_parc( 1 ) /* pucFileName */ , /* if NULL or the base name is the same as the table, then creates a compound AutoOpen index. */ ( UNSIGNED8 * ) hb_parc( 2 ) /* pucTag */ , ( UNSIGNED8 * ) hb_parc( 3 ) /* pucField */ , - ( UNSIGNED32 ) hb_parnl( 4 ) /* ulPageSize */ , + ( UNSIGNED32 ) ISNUM( 4 ) ? hb_parnl( 4 ) : ADS_DEFAULT /* ulPageSize */ , ( UNSIGNED32 ) ISNUM( 5 ) ? hb_parnl( 5 ) : 3 /* ulMinWordLen */ , ( UNSIGNED32 ) ISNUM( 6 ) ? hb_parnl( 6 ) : 30 /* ulMaxWordLen */ , ( UNSIGNED16 ) ISLOG( 7 ) ? hb_parl( 7 ) : TRUE /* usUseDefaultDelim */ ,