2009-05-26 09:24 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/gtwvg/wvgax.prg
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgsink.c
! Fixed HB_OLEAUTO() -> WIN_OLEAUTO()
* Formatting.
! Fixed a few ISNIL()s.
! Fixed a few hb_parc() to hb_parcx() (many potential GPFs).
% Removed unnecessary ISBYREF() and hb_ret() calls.
! Prefixed some static vars with 's_'.
! Fixed potential buffer overrun and memory corruption in
Invoke() function.
* contrib/rddads/adsfunc.c
+ Changed to always define all Harbour level functions.
For unsupported ADS versions, these function will be stubs
returning dummy values.
; TODO: Do the same in other contribs, like hbsqlit3. Anyone?
* contrib/rddads/ads1.c
! Fixed typos and missing casts preventing to compile with
pre-6.00 ACE versions.
* contrib/rddads/Makefile
+ contrib/rddads/adsextrn.ch
+ Added EXTERNAL header.
This commit is contained in:
@@ -17,11 +17,38 @@
|
||||
past entries belonging to these authors: Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-05-26 09:24 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* contrib/gtwvg/wvgax.prg
|
||||
* contrib/gtwvg/wvgwin.c
|
||||
* contrib/gtwvg/wvgsink.c
|
||||
! Fixed HB_OLEAUTO() -> WIN_OLEAUTO()
|
||||
* Formatting.
|
||||
! Fixed a few ISNIL()s.
|
||||
! Fixed a few hb_parc() to hb_parcx() (many potential GPFs).
|
||||
% Removed unnecessary ISBYREF() and hb_ret() calls.
|
||||
! Prefixed some static vars with 's_'.
|
||||
! Fixed potential buffer overrun and memory corruption in
|
||||
Invoke() function.
|
||||
|
||||
* contrib/rddads/adsfunc.c
|
||||
+ Changed to always define all Harbour level functions.
|
||||
For unsupported ADS versions, these function will be stubs
|
||||
returning dummy values.
|
||||
; TODO: Do the same in other contribs, like hbsqlit3. Anyone?
|
||||
|
||||
* contrib/rddads/ads1.c
|
||||
! Fixed typos and missing casts preventing to compile with
|
||||
pre-6.00 ACE versions.
|
||||
|
||||
* contrib/rddads/Makefile
|
||||
+ contrib/rddads/adsextrn.ch
|
||||
+ Added EXTERNAL header.
|
||||
|
||||
2009-05-25 18:16 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/gtwvg/wvgsink.c
|
||||
! HBNIL() -> HB_ISNUM() | HB_ISCHAR().
|
||||
+ Few more convinience functions.
|
||||
|
||||
|
||||
2009-05-26 02:54 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
|
||||
* contrib/xhb/Makefile
|
||||
+ contrib/xhb/datesxhb.c
|
||||
|
||||
@@ -66,24 +66,24 @@
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include 'hbclass.ch'
|
||||
#include 'common.ch'
|
||||
#include 'inkey.ch'
|
||||
#include 'hbgtinfo.ch'
|
||||
#include "hbclass.ch"
|
||||
#include "common.ch"
|
||||
#include "inkey.ch"
|
||||
#include "hbgtinfo.ch"
|
||||
|
||||
#include 'hbgtwvg.ch'
|
||||
#include 'wvtwin.ch'
|
||||
#include 'wvgparts.ch'
|
||||
#include "hbgtwvg.ch"
|
||||
#include "wvtwin.ch"
|
||||
#include "wvgparts.ch"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC nRef := 0
|
||||
STATIC s_nRef := 0
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
CLASS WvgActiveXControl FROM HB_OleAuto, WvgWindow
|
||||
CLASS WvgActiveXControl FROM win_OleAuto, WvgWindow
|
||||
|
||||
DATA CLSID INIT ''
|
||||
DATA CLSID INIT ""
|
||||
DATA server INIT NIL
|
||||
DATA license INIT NIL
|
||||
DATA controlFlags INIT 0
|
||||
@@ -139,7 +139,7 @@ METHOD New( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) CLASS WvgActiv
|
||||
|
||||
::style := WS_CHILD + WS_VISIBLE + WS_CLIPCHILDREN + WS_CLIPSIBLINGS
|
||||
::objType := objTypeActiveX
|
||||
::className := 'WVGACTIVEX'
|
||||
::className := "WVGACTIVEX"
|
||||
|
||||
RETURN Self
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -162,7 +162,7 @@ METHOD Create( oParent, oOwner, aPos, aSize, aPresParams, lVisible, cCLSID, cLic
|
||||
IF ValType( ::hContainer ) + ValType( ::CLSID ) != "NC"
|
||||
RETURN( NIL )
|
||||
ELSEIF HB_AX_AtlAxWinInit()
|
||||
nRef++
|
||||
s_nRef++
|
||||
ENDIF
|
||||
|
||||
::nID := ::oParent:GetControlId()
|
||||
@@ -230,7 +230,7 @@ METHOD Destroy() CLASS WvgActiveXControl
|
||||
::hSink := NIL
|
||||
ENDIF
|
||||
|
||||
IF --nRef == 0
|
||||
IF --s_nRef == 0
|
||||
/* HB_AX_AtlAxWinTerm() */
|
||||
ENDIF
|
||||
ENDIF
|
||||
@@ -301,9 +301,9 @@ CLASS AutomationObject
|
||||
|
||||
DATA interface AS NUMERIC READONLY
|
||||
DATA interfaceName AS CHARACTER READONLY
|
||||
DATA CLSID AS CHARACTER READONLY INIT ' '
|
||||
DATA server AS CHARACTER READONLY INIT ' '
|
||||
DATA license AS CHARACTER READONLY INIT ' '
|
||||
DATA CLSID AS CHARACTER READONLY INIT " "
|
||||
DATA server AS CHARACTER READONLY INIT " "
|
||||
DATA license AS CHARACTER READONLY INIT " "
|
||||
DATA cargo
|
||||
|
||||
METHOD create( cProgID, cServerName, cLicense )
|
||||
@@ -389,4 +389,3 @@ METHOD onError( oError ) CLASS AutomationObject
|
||||
RETURN xValue
|
||||
#endif
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
static HMODULE hLib = NULL;
|
||||
static HMODULE s_hLib = NULL;
|
||||
|
||||
typedef BOOL ( CALLBACK *PATLAXWININIT )( void );
|
||||
typedef BOOL ( CALLBACK *PATLAXWINTERM )( void );
|
||||
@@ -209,7 +209,8 @@ typedef struct
|
||||
} IEventHandlerVtbl;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
typedef struct
|
||||
{
|
||||
IEventHandlerVtbl* lpVtbl;
|
||||
int count;
|
||||
IConnectionPoint* pIConnectionPoint; /* Ref counted of course. */
|
||||
@@ -260,12 +261,12 @@ hb_ToOutDebug( "..................if ( IsEqualIID( vTableGuid, HB_ID_REF( ( ( My
|
||||
return S_OK;
|
||||
}
|
||||
*ppv = 0;
|
||||
return( E_NOINTERFACE );
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
static ULONG STDMETHODCALLTYPE AddRef( IEventHandler *self )
|
||||
{
|
||||
return( ++( ( MyRealIEventHandler * ) self )->count );
|
||||
return ++( ( MyRealIEventHandler * ) self )->count;
|
||||
}
|
||||
|
||||
|
||||
@@ -279,12 +280,12 @@ static ULONG STDMETHODCALLTYPE Release( IEventHandler *self )
|
||||
}
|
||||
|
||||
if( ( MyRealIEventHandler * ) self )
|
||||
{
|
||||
GlobalFree( ( MyRealIEventHandler * ) self );
|
||||
}
|
||||
return( ( ULONG ) 0 );
|
||||
|
||||
return ( ULONG ) 0;
|
||||
}
|
||||
return( ( ULONG ) ( ( MyRealIEventHandler * ) self )->count );
|
||||
else
|
||||
return ( ULONG ) ( ( MyRealIEventHandler * ) self )->count;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE GetTypeInfoCount( IEventHandler *self, UINT *pCount )
|
||||
@@ -381,12 +382,16 @@ hb_ToOutDebug( "event = %i",(int)dispid );
|
||||
}
|
||||
|
||||
iArg = params->cArgs;
|
||||
|
||||
if( iArg > HB_SIZEOFARRAY( pItemArray ) )
|
||||
iArg = HB_SIZEOFARRAY( pItemArray );
|
||||
|
||||
for( i = 1; i <= iArg; i++ )
|
||||
{
|
||||
pItem = hb_itemNew( NULL );
|
||||
hb_oleVariantToItem( pItem, &( params->rgvarg[ iArg-i ] ) );
|
||||
pItemArray[ i-1 ] = pItem;
|
||||
ulRefMask |= ( 1L << (i-1) ); /* set bit i */
|
||||
hb_oleVariantToItem( pItem, &( params->rgvarg[ iArg - i ] ) );
|
||||
pItemArray[ i - 1 ] = pItem;
|
||||
ulRefMask |= ( 1L << ( i - 1 ) ); /* set bit i */
|
||||
}
|
||||
|
||||
if( iArg )
|
||||
@@ -400,15 +405,15 @@ hb_ToOutDebug( "event = %i",(int)dispid );
|
||||
|
||||
for( i = iArg; i > 0; i-- )
|
||||
{
|
||||
if( HB_IS_BYREF( pItemArray[ iArg-i ] ) )
|
||||
hb_oleItemToVariant( &( params->rgvarg[ iArg-i ] ), pItemArray[ iArg-i ] );
|
||||
if( HB_IS_BYREF( pItemArray[ iArg - i ] ) )
|
||||
hb_oleItemToVariant( &( params->rgvarg[ iArg - i ] ), pItemArray[ iArg - i ] );
|
||||
}
|
||||
|
||||
/* Pritpal */
|
||||
if( iArg )
|
||||
{
|
||||
for( i = iArg; i > 0; i-- )
|
||||
hb_itemRelease( pItemArray[ i-1 ] );
|
||||
hb_itemRelease( pItemArray[ i - 1 ] );
|
||||
}
|
||||
hb_vmPopState();
|
||||
}
|
||||
@@ -420,7 +425,8 @@ hb_ToOutDebug( "event = %i",(int)dispid );
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
static const IEventHandlerVtbl IEventHandler_Vtbl = {
|
||||
static const IEventHandlerVtbl IEventHandler_Vtbl =
|
||||
{
|
||||
QueryInterface,
|
||||
AddRef,
|
||||
Release,
|
||||
@@ -449,13 +455,9 @@ static HRESULT SetupConnectionPoint( device_interface* pdevice_interface, REFIID
|
||||
HB_SYMBOL_UNUSED( pn );
|
||||
|
||||
thisobj = ( IEventHandler * ) GlobalAlloc( GMEM_FIXED, sizeof( MyRealIEventHandler ) );
|
||||
if( !( thisobj ) )
|
||||
if( thisobj )
|
||||
{
|
||||
hr = E_OUTOFMEMORY;
|
||||
}
|
||||
else
|
||||
{
|
||||
( ( MyRealIEventHandler* ) thisobj)->lpVtbl = ( IEventHandlerVtbl * ) &IEventHandler_Vtbl;
|
||||
( ( MyRealIEventHandler * ) thisobj )->lpVtbl = ( IEventHandlerVtbl * ) &IEventHandler_Vtbl;
|
||||
( ( MyRealIEventHandler * ) thisobj )->pSelf = NULL;
|
||||
( ( MyRealIEventHandler * ) thisobj )->count = 0;
|
||||
( ( MyRealIEventHandler * ) thisobj )->iID_riid = 0;
|
||||
@@ -508,6 +510,8 @@ static HRESULT SetupConnectionPoint( device_interface* pdevice_interface, REFIID
|
||||
pIUnknown = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
hr = E_OUTOFMEMORY;
|
||||
|
||||
*pThis = ( void * ) thisobj;
|
||||
|
||||
@@ -527,9 +531,7 @@ HB_FUNC( HB_AX_SHUTDOWNCONNECTIONPOINT )
|
||||
}
|
||||
|
||||
if( hSink && hSink->pEvents )
|
||||
{
|
||||
hb_itemRelease( hSink->pEvents );
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -557,7 +559,7 @@ HB_FUNC( HB_AX_ATLAXWININIT )
|
||||
{
|
||||
BOOL bRet = FALSE;
|
||||
|
||||
if( !hLib )
|
||||
if( !s_hLib )
|
||||
{
|
||||
PATLAXWININIT AtlAxWinInit;
|
||||
|
||||
@@ -594,11 +596,11 @@ HB_FUNC( HB_AX_ATLAXWININIT )
|
||||
* developers of few well known MS-Win GUI projects for [x]Harbour.
|
||||
* Please remember about it.
|
||||
*/
|
||||
hLib = LoadLibrary( szLibName );
|
||||
s_hLib = LoadLibrary( szLibName );
|
||||
|
||||
if( hLib )
|
||||
if( s_hLib )
|
||||
{
|
||||
AtlAxWinInit = ( PATLAXWININIT ) GetProcAddress( hLib, HBTEXT( "AtlAxWinInit" ) );
|
||||
AtlAxWinInit = ( PATLAXWININIT ) GetProcAddress( s_hLib, HBTEXT( "AtlAxWinInit" ) );
|
||||
|
||||
if( AtlAxWinInit )
|
||||
{
|
||||
@@ -608,8 +610,8 @@ HB_FUNC( HB_AX_ATLAXWININIT )
|
||||
|
||||
if( !bRet )
|
||||
{
|
||||
FreeLibrary( hLib );
|
||||
hLib = NULL;
|
||||
FreeLibrary( s_hLib );
|
||||
s_hLib = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -625,16 +627,16 @@ HB_FUNC( HB_AX_ATLAXWINTERM )
|
||||
PATLAXWINTERM AtlAxWinTerm;
|
||||
BOOL bRet = FALSE;
|
||||
|
||||
if( hLib )
|
||||
if( s_hLib )
|
||||
{
|
||||
AtlAxWinTerm = ( PATLAXWINTERM ) GetProcAddress( hLib, HBTEXT( "AtlAxWinTerm" ) );
|
||||
AtlAxWinTerm = ( PATLAXWINTERM ) GetProcAddress( s_hLib, HBTEXT( "AtlAxWinTerm" ) );
|
||||
|
||||
if( AtlAxWinTerm )
|
||||
{
|
||||
if( AtlAxWinTerm() )
|
||||
{
|
||||
FreeLibrary( hLib );
|
||||
hLib = NULL;
|
||||
FreeLibrary( s_hLib );
|
||||
s_hLib = NULL;
|
||||
bRet = TRUE;
|
||||
}
|
||||
}
|
||||
@@ -655,7 +657,7 @@ HB_FUNC( HB_AX_ATLAXGETCONTROL ) /* HWND hWnd = handle of control container wind
|
||||
HWND hWnd = NULL;
|
||||
char *lpcclass = hb_parcx( 1 );
|
||||
HWND hParent = ( HWND ) ( HB_PTRDIFF ) hb_parnint( 2 );
|
||||
char *Caption = HB_ISCHAR( 3 ) ? hb_parc( 3 ) : "" ;
|
||||
char *Caption = hb_parcx( 3 );
|
||||
HMENU id = HB_ISNUM( 4 ) ? ( HMENU ) ( HB_PTRDIFF ) hb_parnint( 4 ) : ( HMENU ) ( HB_PTRDIFF ) -1 ;
|
||||
int x = HB_ISNUM( 5 ) ? hb_parni( 5 ) : 0;
|
||||
int y = HB_ISNUM( 6 ) ? hb_parni( 6 ) : 0;
|
||||
@@ -664,7 +666,7 @@ HB_FUNC( HB_AX_ATLAXGETCONTROL ) /* HWND hWnd = handle of control container wind
|
||||
int Style = HB_ISNUM( 9 ) ? hb_parni( 9 ) : WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
|
||||
int Exstyle = HB_ISNUM( 10 ) ? hb_parni( 10 ) : 0;
|
||||
|
||||
AtlAxGetControl = ( PATLAXGETCONTROL ) GetProcAddress( hLib, HBTEXT( "AtlAxGetControl" ) );
|
||||
AtlAxGetControl = ( PATLAXGETCONTROL ) GetProcAddress( s_hLib, HBTEXT( "AtlAxGetControl" ) );
|
||||
if( AtlAxGetControl )
|
||||
{
|
||||
LPTSTR cCaption = HB_TCHAR_CONVTO( Caption );
|
||||
@@ -686,26 +688,12 @@ HB_FUNC( HB_AX_ATLAXGETCONTROL ) /* HWND hWnd = handle of control container wind
|
||||
|
||||
hb_itemReturnRelease( hb_oleItemPut( NULL, obj ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ret();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ret();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ret();
|
||||
}
|
||||
|
||||
/* return the control handle */
|
||||
if ISBYREF( 12 )
|
||||
hb_stornint( ( HB_PTRDIFF ) hWnd, 12 );
|
||||
if ISBYREF( 13 )
|
||||
hb_stornint( ( HB_PTRDIFF ) pUnk, 13 );
|
||||
hb_stornint( ( HB_PTRDIFF ) hWnd, 12 );
|
||||
hb_stornint( ( HB_PTRDIFF ) pUnk, 13 );
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -715,7 +703,7 @@ HB_FUNC( HB_AX_ATLCREATEWINDOW ) /* HWND hWnd = handle of control container wind
|
||||
HWND hWnd;
|
||||
char *lpcclass = hb_parcx( 1 );
|
||||
HWND hParent = ( HWND ) ( HB_PTRDIFF ) hb_parnint( 2 );
|
||||
char *Caption = HB_ISCHAR( 3 ) ? hb_parc( 3 ) : "" ;
|
||||
char *Caption = hb_parcx( 3 );
|
||||
HMENU id = HB_ISNUM( 4 ) ? ( HMENU ) ( HB_PTRDIFF ) hb_parnint( 4 ) : ( HMENU ) ( HB_PTRDIFF ) -1 ;
|
||||
int x = HB_ISNUM( 5 ) ? hb_parni( 5 ) : 0;
|
||||
int y = HB_ISNUM( 6 ) ? hb_parni( 6 ) : 0;
|
||||
@@ -744,7 +732,7 @@ HB_FUNC( HB_AX_ATLGETCONTROL ) /* HWND hWnd = handle of control container window
|
||||
IUnknown *pUnk = NULL;
|
||||
HWND hWnd = ( ISPOINTER( 1 ) ? ( HWND ) hb_parptr( 1 ) : ( HWND )( HB_PTRDIFF ) hb_parnint( 1 ) );
|
||||
|
||||
AtlAxGetControl = ( PATLAXGETCONTROL ) GetProcAddress( hLib, HBTEXT( "AtlAxGetControl" ) );
|
||||
AtlAxGetControl = ( PATLAXGETCONTROL ) GetProcAddress( s_hLib, HBTEXT( "AtlAxGetControl" ) );
|
||||
if( AtlAxGetControl )
|
||||
{
|
||||
if( hWnd )
|
||||
@@ -757,24 +745,9 @@ HB_FUNC( HB_AX_ATLGETCONTROL ) /* HWND hWnd = handle of control container window
|
||||
HB_VTBL( pUnk )->Release( HB_THIS( pUnk ) );
|
||||
|
||||
hb_itemReturnRelease( hb_oleItemPut( NULL, obj ) );
|
||||
if( ISBYREF( 2 ) )
|
||||
{
|
||||
hb_stornint( ( HB_PTRDIFF ) pUnk, 2 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ret();
|
||||
hb_stornint( ( HB_PTRDIFF ) pUnk, 2 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ret();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hb_ret();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -786,7 +759,7 @@ HB_FUNC( HB_AX_ATLGETUNKNOWN ) /* HWND hWnd = handle of control container window
|
||||
IUnknown *pUnk = NULL;
|
||||
HWND hWnd = ( ISPOINTER( 1 ) ? ( HWND ) hb_parptr( 1 ) : ( HWND )( HB_PTRDIFF ) hb_parnint( 1 ) );
|
||||
|
||||
AtlAxGetControl = ( PATLAXGETCONTROL ) GetProcAddress( hLib, HBTEXT( "AtlAxGetControl" ) );
|
||||
AtlAxGetControl = ( PATLAXGETCONTROL ) GetProcAddress( s_hLib, HBTEXT( "AtlAxGetControl" ) );
|
||||
if( AtlAxGetControl )
|
||||
{
|
||||
if( hWnd )
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -26,6 +26,7 @@ C_SOURCES=\
|
||||
|
||||
PRG_HEADERS=\
|
||||
ads.ch \
|
||||
adsextrn.ch \
|
||||
|
||||
include $(TOP)$(ROOT)config/header.cf
|
||||
INSTALL_RULE_HEADERS := $(INSTALL_RULE)
|
||||
|
||||
@@ -576,7 +576,7 @@ static HB_ERRCODE adsScopeSet( ADSAREAP pArea, ADSHANDLE hOrder, USHORT nScope,
|
||||
UNSIGNED16 ucLen = ( UNSIGNED16 ) hb_itemGetCLen( pItem );
|
||||
UNSIGNED8 *pucScope = ( UNSIGNED8 * ) hb_itemGetCPtr( pItem );
|
||||
#if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600
|
||||
UNSIGNED8 pszKeyFree = NULL;
|
||||
UNSIGNED8 * pszKeyFree = NULL;
|
||||
#endif
|
||||
#ifdef ADS_USE_OEM_TRANSLATION
|
||||
if( hb_ads_bOEM )
|
||||
@@ -584,14 +584,14 @@ static HB_ERRCODE adsScopeSet( ADSAREAP pArea, ADSHANDLE hOrder, USHORT nScope,
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
u16DataType = ADS_RAWKEY;
|
||||
#else
|
||||
pucScope = pszKeyFree = ( UNSIGNED8 * ) hb_adsOemToAnsi( ( char * ) pucScope, uiLen );
|
||||
pucScope = pszKeyFree = ( UNSIGNED8 * ) hb_adsOemToAnsi( ( char * ) pucScope, ucLen );
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
AdsSetScope( hOrder, nScope, pucScope, ucLen, u16DataType );
|
||||
#if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600
|
||||
if( pszKeyFree )
|
||||
hb_adsOemAnsiFree( pszKeyFree );
|
||||
hb_adsOemAnsiFree( ( char * ) pszKeyFree );
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
@@ -944,12 +944,12 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL b
|
||||
UNSIGNED32 u32RecNo = 0, u32NewRec;
|
||||
UNSIGNED16 u16SeekType = ( bSoftSeek ) ? ADS_SOFTSEEK : ADS_HARDSEEK,
|
||||
u16KeyType, u16Found, u16KeyLen;
|
||||
UNSIGNED8 *pszKey, pKeyBuf[ 8 ];
|
||||
UNSIGNED8 * pszKey, pKeyBuf[ 8 ];
|
||||
double dValue;
|
||||
UNSIGNED8 *pucSavedKey = NULL;
|
||||
UNSIGNED8 * pucSavedKey = NULL;
|
||||
UNSIGNED16 u16SavedKeyLen = ADS_MAX_KEY_LENGTH; /* this may be longer than the actual seek expression, so we don't pass it along */
|
||||
#if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600
|
||||
UNSIGNED8 pszKeyFree = NULL;
|
||||
UNSIGNED8 * pszKeyFree = NULL;
|
||||
#endif
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("adsSeek(%p, %d, %p, %d)", pArea, bSoftSeek, pKey, bFindLast));
|
||||
@@ -999,7 +999,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL b
|
||||
else
|
||||
{
|
||||
dValue = hb_itemGetTD( pKey );
|
||||
pszKey = ( UNSIGNED8* ) &dValue;
|
||||
pszKey = ( UNSIGNED8 * ) &dValue;
|
||||
u16KeyLen = ( UNSIGNED16 ) sizeof( double );
|
||||
u16KeyType = ADS_DOUBLEKEY;
|
||||
}
|
||||
@@ -1007,13 +1007,13 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL b
|
||||
else if( HB_IS_NUMERIC( pKey ) )
|
||||
{
|
||||
dValue = hb_itemGetND( pKey );
|
||||
pszKey = ( UNSIGNED8* ) &dValue;
|
||||
pszKey = ( UNSIGNED8 * ) &dValue;
|
||||
u16KeyLen = ( UNSIGNED16 ) sizeof( double );
|
||||
u16KeyType = ADS_DOUBLEKEY;
|
||||
}
|
||||
else if( HB_IS_LOGICAL( pKey ) )
|
||||
{
|
||||
pszKey = ( UNSIGNED8* ) ( hb_itemGetL( pKey ) ? "1" : "0" );
|
||||
pszKey = ( UNSIGNED8 * ) ( hb_itemGetL( pKey ) ? "1" : "0" );
|
||||
u16KeyLen = 1;
|
||||
u16KeyType = ADS_STRINGKEY;
|
||||
}
|
||||
@@ -1022,7 +1022,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL b
|
||||
commonError( pArea, EG_DATATYPE, 1020, 0, NULL, 0, NULL );
|
||||
#if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600
|
||||
if( pszKeyFree )
|
||||
hb_adsOemAnsiFree( pszKeyFree );
|
||||
hb_adsOemAnsiFree( ( char * ) pszKeyFree );
|
||||
#endif
|
||||
return HB_FAILURE;
|
||||
}
|
||||
@@ -1072,7 +1072,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL b
|
||||
pArea->fBof = FALSE;
|
||||
#if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600
|
||||
if( pszKeyFree )
|
||||
hb_adsOemAnsiFree( pszKeyFree );
|
||||
hb_adsOemAnsiFree( ( char * ) pszKeyFree );
|
||||
#endif
|
||||
return errCode;
|
||||
}
|
||||
@@ -1148,7 +1148,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL b
|
||||
hb_xfree( pucSavedKey );
|
||||
#if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600
|
||||
if( pszKeyFree )
|
||||
hb_adsOemAnsiFree( pszKeyFree );
|
||||
hb_adsOemAnsiFree( ( char * ) pszKeyFree );
|
||||
#endif
|
||||
return HB_FAILURE;
|
||||
}
|
||||
@@ -1187,7 +1187,7 @@ static HB_ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL b
|
||||
hb_xfree( pucSavedKey );
|
||||
#if defined( ADS_USE_OEM_TRANSLATION ) && ADS_LIB_VERSION < 600
|
||||
if( pszKeyFree )
|
||||
hb_adsOemAnsiFree( pszKeyFree );
|
||||
hb_adsOemAnsiFree( ( char * ) pszKeyFree );
|
||||
#endif
|
||||
|
||||
return HB_SUCCESS;
|
||||
|
||||
188
harbour/contrib/rddads/adsextrn.ch
Normal file
188
harbour/contrib/rddads/adsextrn.ch
Normal file
@@ -0,0 +1,188 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* ADS functions
|
||||
*
|
||||
* Copyright 2009 Viktor Szakats <harbour.01 syenar.hu>
|
||||
* 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 _ADSEXTERN_CH_
|
||||
#define _ADSEXTERN_CH_
|
||||
|
||||
EXTERNAL ADSGETRELKEYPOS
|
||||
EXTERNAL ADSSETRELKEYPOS
|
||||
EXTERNAL ADSCUSTOMIZEAOF
|
||||
EXTERNAL ADSTESTRECLOCKS
|
||||
EXTERNAL ADSSETFILETYPE
|
||||
EXTERNAL ADSSETSERVERTYPE
|
||||
EXTERNAL ADSSETDATEFORMAT
|
||||
EXTERNAL ADSSETEPOCH
|
||||
EXTERNAL ADSAPPLICATIONEXIT
|
||||
EXTERNAL ADSISSERVERLOADED
|
||||
EXTERNAL ADSGETCONNECTIONTYPE
|
||||
EXTERNAL ADSUNLOCKRECORD
|
||||
EXTERNAL ADSGETTABLECONTYPE
|
||||
EXTERNAL ADSGETSERVERTIME
|
||||
EXTERNAL ADSISTABLELOCKED
|
||||
EXTERNAL ADSISRECORDLOCKED
|
||||
EXTERNAL ADSLOCKING
|
||||
EXTERNAL ADSRIGHTSCHECK
|
||||
EXTERNAL ADSSETCHARTYPE
|
||||
EXTERNAL ADSGETTABLECHARTYPE
|
||||
EXTERNAL ADSSETDEFAULT
|
||||
EXTERNAL ADSSETSEARCHPATH
|
||||
EXTERNAL ADSSETDELETED
|
||||
EXTERNAL ADSSETEXACT
|
||||
EXTERNAL ADSBLOB2FILE
|
||||
EXTERNAL ADSFILE2BLOB
|
||||
EXTERNAL ADSKEYNO
|
||||
EXTERNAL ADSKEYCOUNT
|
||||
EXTERNAL ADSADDCUSTOMKEY
|
||||
EXTERNAL ADSDELETECUSTOMKEY
|
||||
EXTERNAL ADSCLEARAOF
|
||||
EXTERNAL ADSEVALAOF
|
||||
EXTERNAL ADSGETTABLEALIAS
|
||||
EXTERNAL ADSGETAOF
|
||||
EXTERNAL ADSGETAOFOPTLEVEL
|
||||
EXTERNAL ADSGETAOFNOOPT
|
||||
EXTERNAL ADSISRECORDINAOF
|
||||
EXTERNAL ADSISRECORDVALID
|
||||
EXTERNAL ADSREFRESHAOF
|
||||
EXTERNAL ADSSETAOF
|
||||
EXTERNAL ADSGETFILTER
|
||||
EXTERNAL ADSENABLEENCRYPTION
|
||||
EXTERNAL ADSDISABLEENCRYPTION
|
||||
EXTERNAL ADSENCRYPTTABLE
|
||||
EXTERNAL ADSDECRYPTTABLE
|
||||
EXTERNAL ADSENCRYPTRECORD
|
||||
EXTERNAL ADSDECRYPTRECORD
|
||||
EXTERNAL ADSISENCRYPTIONENABLED
|
||||
EXTERNAL ADSISRECORDENCRYPTED
|
||||
EXTERNAL ADSISTABLEENCRYPTED
|
||||
EXTERNAL ADSCONNECT
|
||||
EXTERNAL ADSDISCONNECT
|
||||
EXTERNAL ADSSTMTSETTABLELOCKTYPE
|
||||
EXTERNAL ADSCREATESQLSTATEMENT
|
||||
EXTERNAL ADSEXECUTESQLDIRECT
|
||||
EXTERNAL ADSPREPARESQL
|
||||
EXTERNAL ADSEXECUTESQL
|
||||
EXTERNAL ADSCLOSEALLTABLES
|
||||
EXTERNAL ADSWRITEALLRECORDS
|
||||
EXTERNAL ADSREFRESHRECORD
|
||||
EXTERNAL ADSCOPYTABLE
|
||||
EXTERNAL ADSCONVERTTABLE
|
||||
EXTERNAL ADSREGCALLBACK
|
||||
EXTERNAL ADSCLRCALLBACK
|
||||
EXTERNAL ADSISINDEXED
|
||||
EXTERNAL ADSISEXPRVALID
|
||||
EXTERNAL ADSGETNUMINDEXES
|
||||
EXTERNAL ADSCONNECTION
|
||||
EXTERNAL ADSGETHANDLETYPE
|
||||
EXTERNAL ADSGETLASTERROR
|
||||
EXTERNAL ADSGETNUMOPENTABLES
|
||||
EXTERNAL ADSSHOWERROR
|
||||
EXTERNAL ADSBEGINTRANSACTION
|
||||
EXTERNAL ADSCOMMITTRANSACTION
|
||||
EXTERNAL ADSFAILEDTRANSACTIONRECOVERY
|
||||
EXTERNAL ADSINTRANSACTION
|
||||
EXTERNAL ADSROLLBACK
|
||||
EXTERNAL ADSCACHERECORDS
|
||||
EXTERNAL ADSREINDEX
|
||||
EXTERNAL ADSVERSION
|
||||
EXTERNAL ADSCACHEOPENTABLES
|
||||
EXTERNAL ADSCACHEOPENCURSORS
|
||||
EXTERNAL ADSISEMPTY
|
||||
EXTERNAL ADSDDADDTABLE
|
||||
EXTERNAL ADSDDREMOVETABLE
|
||||
EXTERNAL ADSDDREMOVEINDEXFILE
|
||||
EXTERNAL ADSDDADDUSERTOGROUP
|
||||
EXTERNAL ADSDDREMOVEUSERFROMGROUP
|
||||
EXTERNAL ADSCONNECT60
|
||||
EXTERNAL ADSDDCREATE
|
||||
EXTERNAL ADSDDCREATEUSER
|
||||
EXTERNAL ADSDDDELETEUSER
|
||||
EXTERNAL ADSDDGETDATABASEPROPERTY
|
||||
EXTERNAL ADSDDSETDATABASEPROPERTY
|
||||
EXTERNAL ADSDDGETUSERPROPERTY
|
||||
EXTERNAL ADSTESTLOGIN
|
||||
EXTERNAL ADSRESTRUCTURETABLE
|
||||
EXTERNAL ADSCOPYTABLECONTENTS
|
||||
EXTERNAL ADSDIRECTORY
|
||||
EXTERNAL ADSCHECKEXISTENCE
|
||||
EXTERNAL ADSDELETEFILE
|
||||
EXTERNAL ADSSTMTSETTABLEPASSWORD
|
||||
EXTERNAL ADSGETSERVERNAME
|
||||
EXTERNAL ADSVERIFYSQL
|
||||
EXTERNAL ADSGETNUMACTIVELINKS
|
||||
EXTERNAL ADSCLOSECACHEDTABLES
|
||||
EXTERNAL ADSCREATEFTSINDEX
|
||||
EXTERNAL ADSCREATESAVEPOINT
|
||||
EXTERNAL ADSROLLBACKSAVEPOINT
|
||||
EXTERNAL ADSDDCREATELINK
|
||||
EXTERNAL ADSDDMODIFYLINK
|
||||
EXTERNAL ADSDDDROPLINK
|
||||
|
||||
EXTERNAL ADSMGCONNECT
|
||||
EXTERNAL ADSMGDISCONNECT
|
||||
EXTERNAL ADSMGGETHANDLE
|
||||
EXTERNAL ADSMGSETHANDLE
|
||||
EXTERNAL ADSMGKILLUSER
|
||||
EXTERNAL ADSMGGETSERVERTYPE
|
||||
EXTERNAL ADSMGGETINSTALLINFO
|
||||
EXTERNAL ADSMGGETACTIVITYINFO
|
||||
EXTERNAL ADSMGGETCOMMSTATS
|
||||
EXTERNAL ADSMGRESETCOMMSTATS
|
||||
EXTERNAL ADSMGGETCONFIGINFO
|
||||
EXTERNAL ADSMGGETUSERNAMES
|
||||
EXTERNAL ADSMGGETLOCKOWNER
|
||||
EXTERNAL ADSMGGETOPENTABLES
|
||||
EXTERNAL ADSMGGETOPENTABLES2
|
||||
EXTERNAL ADSMGGETOPENINDEXES
|
||||
EXTERNAL ADSMGGETLOCKS
|
||||
EXTERNAL ADSMGGETWORKERTHREADACTIVITY
|
||||
|
||||
#endif
|
||||
@@ -1317,10 +1317,9 @@ HB_FUNC( ADSEXECUTESQL )
|
||||
hb_retl( FALSE );
|
||||
}
|
||||
|
||||
#if ADS_LIB_VERSION >= 620
|
||||
|
||||
HB_FUNC( ADSVERIFYSQL )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 620
|
||||
ADSAREAP pArea = hb_adsGetWorkAreaPointer();
|
||||
|
||||
if( pArea && pArea->hStatement && ISCHAR( 1 ) )
|
||||
@@ -1333,10 +1332,11 @@ HB_FUNC( ADSVERIFYSQL )
|
||||
}
|
||||
else
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, HB_ERR_FUNCNAME );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* ADS_LIB_VERSION >= 620 */
|
||||
|
||||
HB_FUNC( ADSCLOSEALLTABLES )
|
||||
{
|
||||
hb_retnl( AdsCloseAllTables() );
|
||||
@@ -1661,27 +1661,23 @@ HB_FUNC( ADSISEMPTY )
|
||||
hb_errRT_DBCMD( EG_ARG, 1014, NULL, HB_ERR_FUNCNAME );
|
||||
}
|
||||
|
||||
/* Please add all-version functions above this block */
|
||||
|
||||
#if ADS_LIB_VERSION >= 620
|
||||
|
||||
HB_FUNC( ADSGETNUMACTIVELINKS ) /* Only valid for a DataDict */
|
||||
{
|
||||
UNSIGNED16 pusNumLinks = 0;
|
||||
#if ADS_LIB_VERSION >= 620
|
||||
ADSHANDLE hConnect = HB_ADS_PARCONNECTION( 1 );
|
||||
|
||||
if( hConnect )
|
||||
AdsGetNumActiveLinks( hConnect, &pusNumLinks );
|
||||
|
||||
#endif
|
||||
hb_retni( pusNumLinks );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
/* Please add all-version functions above this block */
|
||||
|
||||
HB_FUNC( ADSDDADDTABLE )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDDAddTable( HB_ADS_PARCONNECTION( 4 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pTableName */,
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pTableFileName */,
|
||||
@@ -1689,39 +1685,59 @@ HB_FUNC( ADSDDADDTABLE )
|
||||
( UNSIGNED16 ) hb_ads_iCharType,
|
||||
( UNSIGNED8 * ) hb_parcx( 3 ) /* pTableIndexFileName */,
|
||||
NULL ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDREMOVETABLE )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDDRemoveTable( HB_ADS_PARCONNECTION( 4 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pTableName */,
|
||||
( UNSIGNED16 ) ( ISNUM( 2 ) ? hb_parni( 2 ) : ( ISLOG( 2 ) ? hb_parl( 2 ) : 0 ) ) /* usDeleteFiles */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDREMOVEINDEXFILE )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDDRemoveIndexFile( HB_ADS_PARCONNECTION( 4 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pTableName */,
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pIndexName */,
|
||||
( UNSIGNED16 ) ( ISNUM( 3 ) ? hb_parni( 3 ) : ( ISLOG( 3 ) ? hb_parl( 3 ) : 0 ) ) /* usDeleteFiles */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDADDUSERTOGROUP )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDDAddUserToGroup( HB_ADS_PARCONNECTION( 3 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pGroup */,
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pName */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDREMOVEUSERFROMGROUP )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDDRemoveUserFromGroup( HB_ADS_PARCONNECTION( 3 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pGroup */,
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pName */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSCONNECT60 )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
ADSHANDLE hConnect = 0;
|
||||
|
||||
if( AdsConnect60( ( UNSIGNED8 * ) hb_parcx( 1 ) /* pucServerPath */,
|
||||
@@ -1739,10 +1755,14 @@ HB_FUNC( ADSCONNECT60 )
|
||||
}
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDCREATE )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
ADSHANDLE hConnect = 0;
|
||||
|
||||
if( AdsDDCreate( ( UNSIGNED8 * ) hb_parcx( 1 ) /* pucDictionaryPath */,
|
||||
@@ -1755,25 +1775,37 @@ HB_FUNC( ADSDDCREATE )
|
||||
}
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDCREATEUSER )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDDCreateUser( HB_ADS_PARCONNECTION( 5 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parc( 1 ) /* pucGroupName */,
|
||||
( UNSIGNED8 * ) hb_parc( 2 ) /* pucUserName */,
|
||||
( UNSIGNED8 * ) hb_parc( 3 ) /* pucPassword */,
|
||||
( UNSIGNED8 * ) hb_parc( 4 ) /* pucDescription */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDDELETEUSER )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDDDeleteUser( HB_ADS_PARCONNECTION( 2 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parc( 1 ) /* pucUserName */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDGETDATABASEPROPERTY )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
UNSIGNED16 ulProperty = ( UNSIGNED16 ) hb_parni( 1 );
|
||||
ADSHANDLE hConnect = HB_ADS_PARCONNECTION( 2 );
|
||||
|
||||
@@ -1965,9 +1997,11 @@ HB_FUNC( ADSDDGETUSERPROPERTY )
|
||||
}
|
||||
else
|
||||
hb_errRT_DBCMD( EG_ARG, 1014, NULL, HB_ERR_FUNCNAME );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Verify if a username/password combination is valid for this database
|
||||
Call : ADSTESTLOGIN( cServerPath, nServerTypes, cUserName, cPassword, options,
|
||||
@@ -1983,6 +2017,7 @@ HB_FUNC( ADSDDGETUSERPROPERTY )
|
||||
*/
|
||||
HB_FUNC( ADSTESTLOGIN )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
UNSIGNED8 * pucUserName = ( UNSIGNED8 * ) hb_parc( 3 );
|
||||
ADSHANDLE adsTestHandle = 0;
|
||||
|
||||
@@ -2011,10 +2046,14 @@ HB_FUNC( ADSTESTLOGIN )
|
||||
}
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSRESTRUCTURETABLE )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsRestructureTable( HB_ADS_PARCONNECTION( 5 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pTableName */,
|
||||
NULL /* pucAlias */,
|
||||
@@ -2025,10 +2064,14 @@ HB_FUNC( ADSRESTRUCTURETABLE )
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pucAddFields */,
|
||||
( UNSIGNED8 * ) hb_parcx( 3 ) /* pucDeleteFields */,
|
||||
( UNSIGNED8 * ) hb_parcx( 4 ) /* pucChangeFields */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSCOPYTABLECONTENTS )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
ADSAREAP pArea = hb_adsGetWorkAreaPointer(); /* Source */
|
||||
|
||||
if( pArea )
|
||||
@@ -2053,10 +2096,14 @@ HB_FUNC( ADSCOPYTABLECONTENTS )
|
||||
}
|
||||
else
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, HB_ERR_FUNCNAME );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDIRECTORY )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
UNSIGNED32 ulRetVal;
|
||||
UNSIGNED8 ucFileName[ ADS_MAX_TABLE_NAME ];
|
||||
UNSIGNED16 usFileNameLen = ADS_MAX_TABLE_NAME;
|
||||
@@ -2097,25 +2144,37 @@ HB_FUNC( ADSDIRECTORY )
|
||||
}
|
||||
|
||||
hb_itemReturnRelease( pitmDir );
|
||||
#else
|
||||
hb_reta( 0 );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSCHECKEXISTENCE )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
UNSIGNED16 usExist = 0;
|
||||
|
||||
hb_retl( AdsCheckExistence( HB_ADS_PARCONNECTION( 2 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pucFilename */,
|
||||
&usExist ) == AE_SUCCESS && usExist != 0 );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDELETEFILE )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
hb_retl( AdsDeleteFile( HB_ADS_PARCONNECTION( 2 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 1 ) /* pucFilename */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSSTMTSETTABLEPASSWORD )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
char * pucTableName = hb_parcx( 1 );
|
||||
char * pucPassword = hb_parcx( 2 );
|
||||
|
||||
@@ -2133,27 +2192,28 @@ HB_FUNC( ADSSTMTSETTABLEPASSWORD )
|
||||
}
|
||||
else
|
||||
hb_errRT_DBCMD( EG_ARG, 1014, NULL, HB_ERR_FUNCNAME );
|
||||
#else
|
||||
hb_retnl( 0 );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSGETSERVERNAME )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 600
|
||||
UNSIGNED8 buf[ 256 ];
|
||||
UNSIGNED16 usLen = 256;
|
||||
UNSIGNED16 usLen = sizeof( buf );
|
||||
|
||||
if( AdsGetServerName( HB_ADS_PARCONNECTION( 1 ) /* hConnect */,
|
||||
buf,
|
||||
&usLen ) == AE_SUCCESS )
|
||||
hb_retclen( ( char * ) buf, usLen );
|
||||
|
||||
#endif
|
||||
/* QUESTION: Design decision or mistake to return NIL on error? [vszakats] */
|
||||
}
|
||||
|
||||
#endif /* ADS_LIB_VERSION >= 600 */
|
||||
|
||||
#if ADS_LIB_VERSION >= 700
|
||||
|
||||
HB_FUNC( ADSCLOSECACHEDTABLES )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 700
|
||||
ADSHANDLE hConnect = HB_ADS_PARCONNECTION( 1 );
|
||||
|
||||
if( hConnect )
|
||||
@@ -2163,10 +2223,14 @@ HB_FUNC( ADSCLOSECACHEDTABLES )
|
||||
}
|
||||
else
|
||||
hb_retl( FALSE );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSCREATEFTSINDEX )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 700
|
||||
ADSAREAP pArea = hb_adsGetWorkAreaPointer();
|
||||
|
||||
if( pArea )
|
||||
@@ -2190,55 +2254,68 @@ HB_FUNC( ADSCREATEFTSINDEX )
|
||||
( UNSIGNED32 ) ISNUM( 17 ) ? hb_parnl( 17 ) : ADS_DEFAULT /* ulOptions */ ) );
|
||||
else
|
||||
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, HB_ERR_FUNCNAME );
|
||||
#else
|
||||
hb_retnl( 0 );
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* ADS_LIB_VERSION >= 700 */
|
||||
|
||||
#if ADS_LIB_VERSION >= 800
|
||||
|
||||
HB_FUNC( ADSCREATESAVEPOINT )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 800
|
||||
hb_retnl( AdsCreateSavepoint( HB_ADS_PARCONNECTION( 1 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parc( 2 ) /* pucSavepoint */,
|
||||
ADS_DEFAULT /* ulOptions */ ) );
|
||||
#else
|
||||
hb_retnl( 0 );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSROLLBACKSAVEPOINT )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 800
|
||||
hb_retnl( AdsRollbackTransaction80( HB_ADS_PARCONNECTION( 1 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parc( 2 ) /* pucSavepoint */,
|
||||
ADS_DEFAULT /* ulOptions */ ) );
|
||||
#else
|
||||
hb_retnl( 0 );
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* ADS_LIB_VERSION >= 800 */
|
||||
|
||||
#if ADS_LIB_VERSION >= 900
|
||||
|
||||
HB_FUNC( ADSDDCREATELINK )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 900
|
||||
hb_retl( AdsDDCreateLink( HB_ADS_PARCONNECTION( 1 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pucLinkAlias */,
|
||||
( UNSIGNED8 * ) hb_parcx( 3 ) /* pucServerPath */,
|
||||
( UNSIGNED8 * ) hb_parc( 4 ) /* pucUserName */,
|
||||
( UNSIGNED8 * ) hb_parc( 5 ) /* pucPassword */,
|
||||
( UNSIGNED32 ) ( ISNUM( 6 ) ? hb_parnl( 6 ) : ADS_DEFAULT ) /* ulOptions */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDMODIFYLINK )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 900
|
||||
hb_retl( AdsDDModifyLink( HB_ADS_PARCONNECTION( 1 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pucLinkAlias */,
|
||||
( UNSIGNED8 * ) hb_parcx( 3 ) /* pucServerPath */,
|
||||
( UNSIGNED8 * ) hb_parc( 4 ) /* pucUserName */,
|
||||
( UNSIGNED8 * ) hb_parc( 5 ) /* pucPassword */,
|
||||
( UNSIGNED32 ) ( ISNUM( 6 ) ? hb_parnl( 6 ) : ADS_DEFAULT ) /* ulOptions */ ) == AE_SUCCESS );
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( ADSDDDROPLINK )
|
||||
{
|
||||
#if ADS_LIB_VERSION >= 900
|
||||
hb_retl( AdsDDDropLink( HB_ADS_PARCONNECTION( 1 ) /* hConnect */,
|
||||
( UNSIGNED8 * ) hb_parcx( 2 ) /* pucLinkAlias */,
|
||||
( UNSIGNED16 ) hb_parl( 3 ) /* usDropGlobal */ ) == AE_SUCCESS ); /* NOTE: Defaults to 0/FALSE for non logical parameters. */
|
||||
#else
|
||||
hb_retl( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* ADS_LIB_VERSION >= 900 */
|
||||
|
||||
Reference in New Issue
Block a user