2008-05-16 09:30 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* source/rtl/tbrowse.prg
     + HIDDEN -> PROTECTED

   * contrib/rddads/rddads.h
     * Comment.

   * contrib/rddads/adsfunc.c
     ! ADSCOPYTABLECONTENTS() fixed to throw an RTE if 
       destination area is not ADS.
     ! ADSCOPYTABLECONTENTS() fixed to not change the 
       current workarea to the destination area
       (even if destination area wasn't ADS).

   * contrib/rddads/ads1.c
     ! Added some missing bits to VFP support.
       Requires ACE 9.00 or upper.
This commit is contained in:
Viktor Szakats
2008-05-16 07:42:37 +00:00
parent 2f707a4e15
commit 6cb1bc6211
5 changed files with 94 additions and 54 deletions

View File

@@ -8,6 +8,24 @@
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2008-05-16 09:30 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/tbrowse.prg
+ HIDDEN -> PROTECTED
* contrib/rddads/rddads.h
* Comment.
* contrib/rddads/adsfunc.c
! ADSCOPYTABLECONTENTS() fixed to throw an RTE if
destination area is not ADS.
! ADSCOPYTABLECONTENTS() fixed to not change the
current workarea to the destination area
(even if destination area wasn't ADS).
* contrib/rddads/ads1.c
! Added some missing bits to VFP support.
Requires ACE 9.00 or upper.
2008-05-15 17:58 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/gtwvg/gtwvg.c
* harbour/source/rtl/gtwvt/gtwvt.c

View File

@@ -3397,8 +3397,13 @@ static ERRCODE adsSetRel( ADSAREAP pArea, LPDBRELINFO lpdbRelations )
szExp = ( UNSIGNED8 * ) hb_itemGetCPtr( lpdbRelations->abKey );
rddID = lpdbRelations->lpaChild->rddID;
if( *szExp && ( rddID == s_uiRddIdADS || rddID == s_uiRddIdADT ||
rddID == s_uiRddIdADSNTX || rddID == s_uiRddIdADSCDX ) )
if( *szExp && ( rddID == s_uiRddIdADS ||
rddID == s_uiRddIdADT ||
#if ADS_LIB_VERSION >= 900
rddID == s_uiRddIdADSVFP ||
#endif
rddID == s_uiRddIdADSNTX ||
rddID == s_uiRddIdADSCDX ) )
{
ADSHANDLE hIndex = ( ( ADSAREAP ) lpdbRelations->lpaChild )->hOrdCurrent;
@@ -4940,6 +4945,17 @@ HB_FUNC_STATIC( ADSCDX_GETFUNCTABLE )
adsRegisterRDD( &s_uiRddIdADSCDX );
}
#if ADS_LIB_VERSION >= 900
HB_FUNC_STATIC( ADSVFP_GETFUNCTABLE )
{
HB_TRACE(HB_TR_DEBUG, ("ADSVFP_GETFUNCTABLE()"));
adsRegisterRDD( &s_uiRddIdADSVFP );
}
#endif
HB_FUNC( ADS ) { ; }
#define __PRG_SOURCE__ __FILE__
@@ -4957,6 +4973,9 @@ static void hb_adsRddInit( void * cargo )
if( hb_rddRegister( "ADS", RDT_FULL ) > 1 ||
hb_rddRegister( "ADT", RDT_FULL ) > 1 ||
#if ADS_LIB_VERSION >= 900
hb_rddRegister( "ADSVFP", RDT_FULL ) > 1 ||
#endif
hb_rddRegister( "ADSCDX", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSNTX", RDT_FULL ) > 1 )
{
@@ -4968,6 +4987,9 @@ HB_INIT_SYMBOLS_BEGIN( ads1__InitSymbols )
{ "ADS", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADS )}, NULL },
{ "ADS_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADS_GETFUNCTABLE )}, NULL },
{ "ADT_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADT_GETFUNCTABLE )}, NULL },
#if ADS_LIB_VERSION >= 900
{ "ADSVFP_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSVFP_GETFUNCTABLE )}, NULL },
#endif
{ "ADSNTX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSNTX_GETFUNCTABLE )}, NULL },
{ "ADSCDX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSCDX_GETFUNCTABLE )}, NULL }
HB_INIT_SYMBOLS_END( ads1__InitSymbols )
@@ -4998,8 +5020,14 @@ ADSAREAP hb_adsGetWorkAreaPointer( void )
if( pArea )
{
USHORT rddID = pArea->rddID;
if( rddID == s_uiRddIdADS || rddID == s_uiRddIdADT ||
rddID == s_uiRddIdADSNTX || rddID == s_uiRddIdADSCDX )
if( rddID == s_uiRddIdADS ||
rddID == s_uiRddIdADT ||
#if ADS_LIB_VERSION >= 900
rddID == s_uiRddIdADSVFP ||
#endif
rddID == s_uiRddIdADSNTX ||
rddID == s_uiRddIdADSCDX )
return pArea;
}
return NULL;

View File

@@ -115,7 +115,8 @@ void hb_adsOemAnsiFree( char * pcString )
#endif
HB_FUNC( ADSTESTRECLOCKS ) /* Debug Implicit locks Set/Get call */
/* Debug Implicit locks Set/Get call */
HB_FUNC( ADSTESTRECLOCKS )
{
hb_retl( hb_ads_bTestRecLocks );
@@ -1305,23 +1306,14 @@ HB_FUNC( ADSISTABLEENCRYPTED )
HB_FUNC( ADSCONNECT )
{
if( ISCHAR( 1 ) )
ADSHANDLE hConnect = 0;
if( ISCHAR( 1 ) &&
AdsConnect( ( UNSIGNED8 * ) hb_parcx( 1 ),
&hConnect ) == AE_SUCCESS )
{
ADSHANDLE hConnect = 0;
UNSIGNED32 ulRetVal;
ulRetVal = AdsConnect( ( UNSIGNED8 * ) hb_parcx( 1 ),
&hConnect );
if( ulRetVal == AE_SUCCESS )
{
hb_ads_hConnect = hConnect;
hb_retl( TRUE );
}
else
{
hb_retl( FALSE );
}
hb_ads_hConnect = hConnect;
hb_retl( TRUE );
}
else
{
@@ -1331,7 +1323,7 @@ HB_FUNC( ADSCONNECT )
HB_FUNC( ADSDISCONNECT )
{
/* NOTE: From ACE.HLP:
/* NOTE: From ace.hlp:
*
* AdsDisconnect() is used to disconnect a connection from the specified server.
* If tables are currently opened, all data is flushed, locks are released,
@@ -1348,25 +1340,15 @@ HB_FUNC( ADSDISCONNECT )
(hConnect might be 0 if caller accidentally disconnects twice;
this should not close all connections! */
if( hConnect != 0 || ISNUM( 1 ) )
if( ( hConnect != 0 || ISNUM( 1 ) ) &&
AdsDisconnect( hConnect ) == AE_SUCCESS )
{
UNSIGNED32 ulRetVal;
ulRetVal = AdsDisconnect( hConnect );
if( ulRetVal == AE_SUCCESS )
if( hConnect == hb_ads_hConnect )
{
if( hConnect == hb_ads_hConnect )
{
hb_ads_hConnect = 0;
}
hb_ads_hConnect = 0;
}
hb_retl( TRUE );
}
else
{
hb_retl( FALSE );
}
hb_retl( TRUE );
}
else
{
@@ -1399,11 +1381,7 @@ HB_FUNC( ADSCREATESQLSTATEMENT )
}
#endif
if( !hb_rddInsertAreaNode( "ADS" ) )
{
AdsCloseSQLStatement( adsStatementHandle );
}
else
if( hb_rddInsertAreaNode( "ADS" ) )
{
ADSAREAP pArea = hb_adsGetWorkAreaPointer();
@@ -1427,6 +1405,17 @@ HB_FUNC( ADSCREATESQLSTATEMENT )
hb_rddReleaseCurrentArea();
}
}
#if 0
/* QUESTION: Shouldn't we call AdsCloseSQLStatement() if pArea was NULL? [vszakats] */
else
{
AdsCloseSQLStatement( adsStatementHandle );
}
#endif
}
else
{
AdsCloseSQLStatement( adsStatementHandle );
}
}
}
@@ -2430,18 +2419,23 @@ HB_FUNC( ADSCOPYTABLECONTENTS )
if( pArea )
{
int iOldArea = hb_rddGetCurrentWorkAreaNumber();
if( hb_rddSelectWorkAreaAlias( hb_parcx( 1 ) /* szAliasDest */ ) == SUCCESS )
{
ADSAREAP pDest = hb_adsGetWorkAreaPointer();
hb_rddSelectWorkAreaNumber( iOldArea );
if( pDest )
{
UNSIGNED32 ulRetVal;
ulRetVal = AdsCopyTableContents( pArea->hTable,
pDest->hTable,
ADS_IGNOREFILTERS );
hb_retl( ulRetVal == AE_SUCCESS );
hb_retl( AdsCopyTableContents( pArea->hTable,
pDest->hTable,
ADS_IGNOREFILTERS ) == AE_SUCCESS );
}
else
{
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ADSCOPYTABLECONTENTS" );
}
}
else

View File

@@ -81,14 +81,14 @@
#elif defined(ADS_USER_DEFINED)
#define _ADS_LIB_VERSION 611 /* or upper */
#else
#define _ADS_LIB_VERSION 500 /* or lower */
#define _ADS_LIB_VERSION 500
#endif
/* Compatibility ACE version override.
Usage is discouraged and unnecessary unless we want to
override autodetection. For the latter, ADS_LIB_VERSION
is recommended. If ADS_LIB_VERSION is defined, the old
define will be ignored. [vszakats] */
is recommended. If ADS_LIB_VERSION is #defined,
ADS_REQUIRE_VERSION will be ignored. [vszakats] */
#if !defined( ADS_LIB_VERSION )
#if ADS_REQUIRE_VERSION == 5
#define ADS_LIB_VERSION 500

View File

@@ -124,7 +124,7 @@ CREATE CLASS TBrowse
/* === Start of CA-Cl*pper compatible TBrowse instance area === */
VAR cargo AS USUAL EXPORTED // 01. User-definable variable
HIDDEN:
PROTECTED:
VAR n_Top AS NUMERIC INIT 0 // 02. Top row number for the TBrowse display
VAR n_Left AS NUMERIC INIT 0 // 03. Leftmost column for the TBrowse display
VAR n_Bottom AS NUMERIC INIT 0 // 04. Bottom row number for the TBrowse display
@@ -262,7 +262,7 @@ EXPORTED:
METHOD new( nTop, nLeft, nBottom, nRight ) // constructor, NOTE: This method is a Harbour extension [vszakats]
HIDDEN:
PROTECTED:
VAR nRowPos AS INTEGER INIT 1 // current cursor row position
VAR nColPos AS INTEGER INIT 1 // current cursor column position
VAR nLeftVisible AS INTEGER INIT 0 // indicates position of leftmost unfrozen column in display