diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 1de10f4230..c88e22b4ba 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,13 @@ +2000-09-14 10:23 UTC+0800 Brian Hays + * contrib/rdd_ads/ads1.c + * adsSkip(): fix for dbskip(0) + * contrib/rdd_ads/doc/en/readme.txt + * formatting tweaks + + contrib/rdd_ads/doc/en/adsfuncs.txt + + docs for exposed functions in adsfunc.c (work in progress)) + * source/rdd/workarea.c + * fixed some spelling in TRACE calls + 2000-09-13 16:45 UTC-0400 David G. Holm * include/hbver.h diff --git a/harbour/contrib/rdd_ads/ads1.c b/harbour/contrib/rdd_ads/ads1.c index ecbf1a1c7f..0d5dd474d3 100644 --- a/harbour/contrib/rdd_ads/ads1.c +++ b/harbour/contrib/rdd_ads/ads1.c @@ -33,6 +33,7 @@ * */ + #define SUPERTABLE ( &adsSuper ) #define HB_OS_WIN_32_USED #define MAX_STR_LEN 255 @@ -227,6 +228,7 @@ static BOOL strcmpNoCase( char * s1, char * s2, int n ) #define adsEof NULL #define adsFound NULL + static ERRCODE adsGoBottom( ADSAREAP pArea ) { HB_TRACE(HB_TR_DEBUG, ("adsGoBottom(%p)", pArea)); @@ -354,8 +356,12 @@ static ERRCODE adsSkip( ADSAREAP pArea, LONG lToSkip ) pArea->fTop = pArea->fBottom = FALSE; AdsSkip ( (pArea->hOrdCurrent) ? pArea->hOrdCurrent : pArea->hTable, lToSkip ); + hb_adsCheckBofEof( pArea ); - return SUPER_SKIPFILTER( (AREAP)pArea, 1 ); + if ( lToSkip==0 ) + return SUCCESS; /*bh: dbskip(0) created infinite loop; this should never move the record pointer via skipfilter */ + else + return SUPER_SKIPFILTER( (AREAP)pArea, lToSkip>0 ? 1:-1 ); } #define adsSkipFilter NULL @@ -1503,4 +1509,4 @@ HB_FUNC( ADS_GETFUNCTABLE ) hb_retni( hb_rddInherit( pTable, &adsTable, &adsSuper, 0 ) ); else hb_retni( FAILURE ); -} \ No newline at end of file +} diff --git a/harbour/contrib/rdd_ads/doc/en/adsfuncs.txt b/harbour/contrib/rdd_ads/doc/en/adsfuncs.txt new file mode 100644 index 0000000000..8bc508ab97 --- /dev/null +++ b/harbour/contrib/rdd_ads/doc/en/adsfuncs.txt @@ -0,0 +1,725 @@ +/* + * $Id$ + */ + +/* + * The following are Copyright of the individual authors. + * www - http://www.harbour-project.org + * + * Copyright 2000 Extended Systems, Inc. + * Documentation for Advantage Database Server and Local Server + * + * Copyright 2000 Brian Hays + * Documentation for Harbour-specific features + * + * See doc/license.txt for licensing terms. + * + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSBlob2File() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Write a Binary (memo) field's contents to a file + * $SYNTAX$ + * ADSBlob2File(cFileName, cFieldName) --> lSuccess + * $ARGUMENTS$ + * File to create. If it already exists, it will be + * overwritten on success and destroyed on error. + * + * Field in the current workarea that contains binary data. + * + * $RETURNS$ + * True if the file is successfully written. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * ADSBlob2File() is a wrapper for AdsBinaryToFile. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit only + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSFile2Blob() + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSFile2Blob() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Save a Binary file to a field + * $SYNTAX$ + * ADSFile2Blob(cFileName, cFieldName, ) --> lSuccess + * $ARGUMENTS$ + * File to read. Can be in UNC format. A common example is an image file. + * + * Field in the current workarea to contain the binary data. + * + * Either ADS_BINARY (the default) or ADS_IMAGE. + * This parameter is for fields in DBF files. + * ADT tables cannot store binary and image data in standard character + * memo fields (they have specific field types for that). + * + * $RETURNS$ + * True if the file is successfully written. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * ADSFile2Blob() is a wrapper for AdsFileToBinary. + * Use of this function is illegal in an ADS transaction. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit only + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSBlob2File() + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSClearAOF() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Clears an Advantage Optimized Filter in the current workarea. + * $SYNTAX$ + * ADSClearAOF() + * $ARGUMENTS$ + * + * $RETURNS$ + * NIL + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSCustomizeAOF, ADSEvalAOF, ADSGetAOF, ADSGetAOFoptLevel, ADSIsRecordInAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSCustomizeAOF() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Add or remove records from an existing AOF + * $SYNTAX$ + * ADSCustomizeAOF( [] [, ] ) --> lSuccess + * $ARGUMENTS$ + * Can be either a single record number or an array of + * record numbers to add or delete from the AOF. If omitted, defaults to + * the current record. + * + * The type of operation: + * ADS_AOF_ADD_RECORD Add the record to the AOF (set the bit). This is the default operation. + * ADS_AOF_REMOVE_RECORD Remove the record from the AOF (clear the bit). + * ADS_AOF_TOGGLE_RECORD Switch the record into or out of the AOF. + *
+ * $RETURNS$ + * True if the operation is successful. + * $DESCRIPTION$ + * An Advantage Optimized Filter (AOF) consists of a bitmap of the records in + * the database. If bit 5 is on, record 5 is considered a visible record. + * If bit 5 is off, record 5 is not visible. It does not "pass the test". + * Initially, the bits are set by the Server according to a filter expression + * from SET FILTER TO or adsSetAOF(). But by using ADSCustomizeAOF() you can + * add or remove records at will from the visible set. This is useful for + * tagging records or for refining a result set after the data has been retrieved + * from the server. + + * The maximum number of records that can be customized in a single call is + * 16,383, so must not be longer than this. + + * Calls to AdsCustomizeAOF must be made after an application has created a + * filter with a call to AdsSetAOF. To create a completely empty record set + * (to which records can be added with calls to AdsCustomizeAOF), use ".F." as + * the filter expression given to AdsSetAOF. To create a completely full + * record set (from which records can be removed), use ".T." as the filter + * expression. + + * WARNING: Always start with a FULLY optimized AOF! + * If an application must use a filter expression that is not fully optimized + * as the starting point for customization, the ADS_RESOLVE_IMMEDIATE option + * should be used with the call to AdsSetAOF. Otherwise, the dynamic filter + * resolution that occurs on the server will automatically remove records that + * have been added through the AdsCustomizeAOF calls. The + * filter expressions ".T." and ".F." both result in fully optimized AOFs + * regardless of available indexes. + + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSEvalAOF, ADSGetAOF, ADSGetAOFoptLevel, ADSIsRecordInAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSEvalAOF() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Evaluate a filter expression to determine its optimization level + * $SYNTAX$ + * ADSEvalAOF() --> nOptimizationLevel + * $ARGUMENTS$ + * Expression to test. + * $RETURNS$ + * + * Values are defined in ads.ch: + * ADS_OPTIMIZED_FULL, ADS_OPTIMIZED_PART, ADS_OPTIMIZED_NONE. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSGetAOF, ADSGetAOFoptLevel, ADSIsRecordInAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSGetAOFoptLevel() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Returns optimization level of the current AOF filter + * $SYNTAX$ + * ADSGetAOFoptLevel() --> nOptimizationLevel + * $ARGUMENTS$ + * + * $RETURNS$ + * + * Values are defined in ads.ch: + * ADS_OPTIMIZED_FULL, ADS_OPTIMIZED_PART, ADS_OPTIMIZED_NONE. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSGetAOF, ADSIsRecordInAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSGetAOF() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Retrieve the filter expression used in the call to AdsSetAOF + * $SYNTAX$ + * ADSGetAOF() --> cFilter + * $ARGUMENTS$ + * + * $RETURNS$ + * The filter expression used in the call to AdsSetAOF. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSGetAOFoptLevel, ADSIsRecordInAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSGetAOFnoOpt() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Return the non-optimized portion of the current filter expression + * $SYNTAX$ + * ADSGetAOFnoOpt() --> cFilterFragment + * $ARGUMENTS$ + * + * $RETURNS$ + * If an AOF filter expression is not fully optimizable, + * the non-optimizable part of the expression can be retrieved with this function. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSIsRecordInAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSRefreshAOF() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Update the filter snapshot + * $SYNTAX$ + * ADSRefreshAOF() + * $ARGUMENTS$ + * + * $RETURNS$ + * NIL + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * If record updates occur after an AOF is set, the updated records may + * or may not be valid records for the filter. ADSRefreshAOF() + * re-evaluates the data to include or exclude changed records. + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSIsRecordInAOF, ADSSetAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSSetAOF() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Create an Advantage Optimized Filter + * $SYNTAX$ + * ADSSetAOF( [, ] ) --> lSuccess + * $ARGUMENTS$ + * Filter expression to set. + + * Option to indicate how the filter should be resolved + * in the event that the expression cannot be fully optimized. + * Options are defined in ads.ch: + * ADS_RESOLVE_IMMEDIATE, ADS_RESOLVE_DYNAMIC. + * $RETURNS$ + * True if AOF is created. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSIsRecordInAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSIsRecordInAOF() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Determine if a record is in the current AOF + * $SYNTAX$ + * ADSIsRecordInAOF( [] ) --> lSatisfiesFilter + * $ARGUMENTS$ + * Record number to test. Default is current record. + * $RETURNS$ + * True if the record satisfies the filter criteria. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSClearAOF, ADSRefreshAOF + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSGetRelKeyPos() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Estimated key position of current record within the specified index + * $SYNTAX$ + * ADSGetRelKeyPos([]) --> nKeyPos + * $ARGUMENTS$ + * Index to use. Default is current index. + * $RETURNS$ + * The relative key position within the current index. + * This function estimates the position of the current key in the indicated + * index order. The value returned is between 0.0 and 1.0, inclusive. + * If there are scopes set on the index order, the position returned + * is relative to the visible records. + + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSKeyNo(), ADSKeyCount() + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSKeyCount() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Retrieve the number of keys in a specified index + * $SYNTAX$ + * ADSKeyCount([], , []) --> nKeyCount + * $ARGUMENTS$ + * Numeric order number OR index tag name. Default is current index. + + This parameter is not processed. In other Harbour RDDs, + the second parameter to "ordKeyCount" takes a second argument to identify + a particular Index File in cases where two files are open that contain + orders with the same name. The ADS driver does not support this and + will select the first order with the requested name. To stay consistent + with other RDDs, therefore, the second parameter is reserved and the + is passed as a third parameter. + + * Indicates if filters and/or scopes are to be respected if set. + + * Options are defined in ads.ch: + + * ADS_RESPECTFILTERS Respect filters and scopes + * ADS_IGNOREFILTERS Ignore filters and scopes + * ADS_RESPECTSCOPES Respect scopes only +
+ * $RETURNS$ + * The number of keys within the current index. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSKeyNo, ADSGetRelKeyPos + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSKeyNo() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Get the logical key number of the current record in the given index + * $SYNTAX$ + * ADSKeyNo([], []) --> nKeyNo + * $ARGUMENTS$ + Numeric order number OR index tag name. Default is current index. + + Indicates if filters and/or scopes are to be respected if set. + + * Options are defined in ads.ch: + * ADS_RESPECTFILTERS Respect filters and scopes + * ADS_IGNOREFILTERS Ignore filters and scopes + * ADS_RESPECTSCOPES Respect scopes only + + * $RETURNS$ + * The logical key number of the current record in the given index. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * Wrapper for AdsGetKeyNum. + This function may be slow on a large database with + ADS_RESPECTFILTERS set because it walks through the keys to get the + current position. Compare to ADSGetRelKeyPos(). + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * ADSKeyCount, ADSGetRelKeyPos + * $END$ + */ + + + +/* $DOC$ + * $FUNCNAME$ + * ADSLocking() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Turns on/off the Advantage proprietary locking mode + * $SYNTAX$ + * ADSLocking( ) --> lPriorSetting + * $ARGUMENTS$ + * .T. to use the Advantage proprietary locking mode + * (this is the default setting if a remote server is used) + * or pass .F. to use "compatibility" locking. + * + * $RETURNS$ + * .T. if prior setting was for the proprietary mode. + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * The Advantage Database Server has a fast Proprietary locking mode that + * is more efficient than traditional network locking. It is only available + * when using the remote server (not the local server). + + * If a file is opened in the proprietary mode, other applications cannot + * open it in a "write" mode. So if non-Advantage applications need + * concurrent access to the data files, use the Compatibility locking mode + * by calling ADSLocking( .F. ). + + * ADSLocking() is a Get/Set function for the locking mode. It affects + * files at the time they are opened. So when a data + * file is opened, the current setting is used for that file until it is + * closed. Different files can have different locking modes by changing + * the setting before opening a second file. + * + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * + * $END$ + */ + +/* $DOC$ + * $FUNCNAME$ + * ADSRightsCheck() + * $CATEGORY$ + * Advantage Database RDD + * $ONELINER$ + * Sets the "rights checking" setting for opening files + * $SYNTAX$ + * ADSRightsCheck( ) --> lPriorSetting + * $ARGUMENTS$ + * .T. to check rights upon opening data files (the default), + * or .F. to ignore rights + * + * $RETURNS$ + * + * $DESCRIPTION$ + * See ACE.HLP for full details about the Advantage Database Server. + * ADSRightsCheck() is a Get/Set function for the "rights checking" mode. + * If the setting is .T. when a file is opened, then the Advantage + * Database Server will use the rights of the connected user when + * opening the file. If the user does not have rights to the + * directory or server, then the open call will fail. + + * If the setting is .F., then the ADS will + * ignore the connected user's rights and open the file + * regardless. This lets you allow only + * Advantage-based applications to access specific data. + + * + * $EXAMPLES$ + * + * $TESTS$ + * + * $STATUS$ + * R + * $COMPLIANCE$ + * Harbour extension + * $PLATFORMS$ + * Windows 32-bit + * $FILES$ + * Library is RddAds + * Header is ads.ch + * + * $SEEALSO$ + * + * $END$ + */ + + +/* TO-DO: + +ADSSetCharType +ADSSetDefault +ADSSetDeleted +ADSSetFileType +ADSSetServerType + +ADSDecryptRecord +ADSDecryptTable +ADSDisableEncryption +ADSEnableEncryption +ADSEncryptRecord +ADSEncryptTable +ADSIsEncryptionEnabled +ADSIsRecordEncrypted +ADSIsTableEncrypted +*/ + diff --git a/harbour/contrib/rdd_ads/doc/en/readme.txt b/harbour/contrib/rdd_ads/doc/en/readme.txt index 8e16d8e0fd..631e8ffc26 100644 --- a/harbour/contrib/rdd_ads/doc/en/readme.txt +++ b/harbour/contrib/rdd_ads/doc/en/readme.txt @@ -19,8 +19,8 @@ * ADSLOC32.DLL for stand-alone or even small network installations. * * For using this RDD you need to have: - * ace32.dll ( Advantage Client Engine ), - * AXCWS32.DLL ( communication layer for remote server ) or + * ACE32.DLL ( Advantage Client Engine ), + * AXCWS32.DLL ( communication layer for remote server ) or * ADSLOC32.DLL ( local server ) * * You need also to create ace32.lib with the help of implib.exe: @@ -29,22 +29,26 @@ * Then build rddads.lib using make_b32.bat or make_vc.bat. * * For building executables don't forget to include the ace32.lib and - * rddads.lib to the make file or link script. + * rddads.lib in the make file or link script. * - * You need also to include to your prg file following lines: + * You also need to include in your PRG file following lines: * * REQUEST _ADS * rddRegister( "ADS", 1 ) * rddsetdefault( "ADS" ) * * By default RDDADS is tuned for remote server and cdx indexes. To - * change this you may use commands, defined in ads.ch: + * change this you may use these commands defined in ads.ch: * * SET SERVER LOCAL + * SET SERVER REMOTE * - * SET FILETYPE TO NTX ( SET FILETYPE TO ADT ) + * SET FILETYPE TO NTX + * SET FILETYPE TO ADT + * SET FILETYPE TO CDX * * or functions AdsSetServerType(), AdsSetFileType(). + * See the header file ADS.CH for details. * * Note that the default local server (ADSLOC32.DLL) is useable for * file sharing on a small network. The default DLL is limited to diff --git a/harbour/source/rdd/workarea.c b/harbour/source/rdd/workarea.c index a3712f6767..02d2037465 100644 --- a/harbour/source/rdd/workarea.c +++ b/harbour/source/rdd/workarea.c @@ -659,7 +659,7 @@ ERRCODE hb_waClearRel( AREAP pArea ) */ ERRCODE hb_waRelArea( AREAP pArea, USHORT uiRelNo, void * pRelArea ) { - HB_TRACE(HB_TR_DEBUG, ("hb_waRelArea(%p, %hu, %p)", pArea, uiRelNo, pExpr)); + HB_TRACE(HB_TR_DEBUG, ("hb_waRelArea(%p, %hu, %p)", pArea, uiRelNo, pRelArea)); HB_SYMBOL_UNUSED( pArea ); HB_SYMBOL_UNUSED( uiRelNo ); HB_SYMBOL_UNUSED( pRelArea ); @@ -795,7 +795,7 @@ ERRCODE hb_waFilterText( AREAP pArea, PHB_ITEM pFilter ) */ ERRCODE hb_waSetFilter( AREAP pArea, LPDBFILTERINFO pFilterInfo ) { - HB_TRACE(HB_TR_DEBUG, ("hb_wsSetFilter(%p, %p)", pArea, pFilterInfo)); + HB_TRACE(HB_TR_DEBUG, ("hb_waSetFilter(%p, %p)", pArea, pFilterInfo)); /* Clear the active filter expression */ SELF_CLEARFILTER( pArea ); @@ -825,19 +825,19 @@ ERRCODE hb_waSetLocate( AREAP pArea, LPDBSCOPEINFO pScopeInfo ) if( pScopeInfo->lpstrFor ) pArea->dbsi.lpstrFor = hb_itemNew( pScopeInfo->lpstrFor ); - if( pScopeInfo->itmCobWhile ) + if( pScopeInfo->itmCobWhile ) pArea->dbsi.itmCobWhile = hb_itemNew( pScopeInfo->itmCobWhile ); if( pScopeInfo->lpstrWhile ) pArea->dbsi.lpstrWhile = hb_itemNew( pScopeInfo->lpstrWhile ); - if( pScopeInfo->lNext ) + if( pScopeInfo->lNext ) pArea->dbsi.lNext = hb_itemNew( pScopeInfo->lNext ); if( pScopeInfo->itmRecID ) pArea->dbsi.itmRecID = hb_itemNew( pScopeInfo->itmRecID ); - if( pScopeInfo->fRest ) + if( pScopeInfo->fRest ) pArea->dbsi.fRest = hb_itemNew( pScopeInfo->fRest ); return SUCCESS; @@ -891,4 +891,4 @@ ERRCODE hb_waEvalBlock( AREAP pArea, PHB_ITEM pBlock ) hb_itemCopy( pArea->valResult, hb_vmEvalBlock( pBlock ) ); return SUCCESS; -} \ No newline at end of file +}