From b296ed0dd6823a6c39cab8324c707045dd9f89ad Mon Sep 17 00:00:00 2001 From: "Alexander S.Kresin" Date: Wed, 3 Apr 2002 06:29:39 +0000 Subject: [PATCH] 2002-04-03 10:30 UTC+0300 Alexander Kresin --- harbour/ChangeLog | 4 + harbour/contrib/rdd_ads/ace.h | 1022 ++++++++++++++++++++++++++++----- 2 files changed, 869 insertions(+), 157 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index a2323d2862..110d578744 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -7,6 +7,10 @@ For example: 2002-12-01 23:12 UTC+0100 Foo Bar */ + * source/rdd/dbfntx/dbfntx1.c + * Bug fixed, reported by Lorenzo Fiorini + +2002-04-05 13:56 UTC+0300 Alexander Kresin * source/rdd/dbfntx/dbfntx1.c * Minor bug fixed, some cleanup diff --git a/harbour/contrib/rdd_ads/ace.h b/harbour/contrib/rdd_ads/ace.h index 1a3a8328d7..363b93064f 100644 --- a/harbour/contrib/rdd_ads/ace.h +++ b/harbour/contrib/rdd_ads/ace.h @@ -1,6 +1,6 @@ /******************************************************************************* * Source File : ace.h -* Copyright : 1996-1999 Extended Systems, Inc. +* Copyright : 1996-2001 Extended Systems, Inc. * Description : This is the main header file for the Advantage Client * Engine. It contains the type definitions, constants, * and prototypes for the APIs @@ -10,35 +10,76 @@ #define __ACE_INCLUDED__ +#if defined( unix ) + #ifndef ADS_LINUX + #define ADS_LINUX + #endif +#endif + +#if defined( ADS_LINUX ) + /* #include "unixutils.h" */ + + + #define ADS_PATH_DELIMITER '/' + #ifdef ASANLM + #define delay(x) AdsSleep(x) + #endif +#endif + + +#if defined( ADS_LINUX ) && defined( ACE ) + /* This makes the callback functions compile in linux */ + #define WINAPI /* nothing */ + #define FARPROC void* + #define HWND void* +#endif // ADS_LINUX && ACE + + +#ifdef ADS_LINUX + #pragma pack( 1 ) +#else + #pragma pack( push, 1 ) +#endif + /* This forces a warning for single equals in if statements */ #ifdef WIN32 // 16-bit compiler doesn't seem to like this #pragma warning( error : 4706 ) + + #define ADS_PATH_DELIMITER '\\' +#endif + +/* added to get access() prototype */ +#if defined( ADS_LINUX ) && !defined( NATIVE_SQL ) + #include #endif /* data type definitions */ -typedef unsigned long UNSIGNED32; -typedef long SIGNED32; -typedef unsigned short UNSIGNED16; -typedef short SIGNED16; -typedef unsigned char UNSIGNED8; -typedef char SIGNED8; -typedef unsigned long ADSHANDLE; -typedef double DOUBLE; +#ifndef RDDUNVRS_H + typedef unsigned long UNSIGNED32; + typedef long SIGNED32; + typedef unsigned short UNSIGNED16; + typedef short SIGNED16; + typedef unsigned char UNSIGNED8; + typedef char SIGNED8; +#endif + typedef unsigned long ADSHANDLE; + typedef double DOUBLE; +#ifdef WIN32 + typedef ULONGLONG UNSIGNED64; + typedef LONGLONG SIGNED64; +#endif #define VOID void #define EXTERN extern #define STATIC static -#if defined( __RSXNT__ ) - #define ENTRYPOINT _export WINAPI -#elif defined( __GNUC__ ) - #define ENTRYPOINT __attribute__ (( dllexport )) -#elif defined( WIN32 ) && !defined( ASANT ) && !defined( __BORLANDC__ ) - #define ENTRYPOINT _declspec( dllexport ) WINAPI -#elif defined( ASANLM ) || defined( ASANT ) + +#if defined( ASANLM ) || defined( ADS_LINUX ) || defined( ASANT ) || defined( NLM ) || defined( ADS_NT ) || defined( ADS_WIN9X ) || defined( STAND_ALONE_EXE ) #define ENTRYPOINT +#elif defined( WIN32 ) && !defined( __BORLANDC__ ) + #define ENTRYPOINT _declspec( dllexport ) WINAPI #else #define ENTRYPOINT _export WINAPI #endif @@ -60,6 +101,13 @@ typedef double DOUBLE; #define ADS_CHECKRIGHTS 1 #define ADS_IGNORERIGHTS 2 +/* options for connecting to Advantage servers - can be ORed together */ +#define ADS_INC_USERCOUNT 0x00000001 +#define ADS_STORED_PROC_CONN 0x00000002 +#define ADS_COMPRESS_ALWAYS 0x00000004 +#define ADS_COMPRESS_NEVER 0x00000008 +#define ADS_COMPRESS_INTERNET 0x0000000C + /* options for opening tables - can be ORed together */ #define ADS_EXCLUSIVE 0x00000001 #define ADS_READONLY 0x00000002 @@ -67,13 +115,12 @@ typedef double DOUBLE; #define ADS_CLIPPER_MEMOS 0x00000008 /* Options for creating indexes - can be ORed together */ +#define ADS_ASCENDING 0x00000000 #define ADS_UNIQUE 0x00000001 #define ADS_COMPOUND 0x00000002 #define ADS_CUSTOM 0x00000004 #define ADS_DESCENDING 0x00000008 - -#define ADS_ASCENDING 0x00000000 - +#define ADS_USER_DEFINED 0x00000010 /* Options for returning string values */ #define ADS_NONE 0x00000000 @@ -120,11 +167,13 @@ typedef double DOUBLE; #define ADS_AIS_SERVER 0x0004 /* 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_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 /* ACE Cursor ReadOnly settings */ @@ -135,10 +184,32 @@ typedef double DOUBLE; #define ADS_CONSTRAIN 1 #define ADS_NO_CONSTRAIN 2 +/* Select Field Read settings */ +#define ADS_READ_ALL_COLUMNS 1 +#define ADS_READ_SELECT_COLUMNS 2 + +/* Disable server query optimization */ +#define ADS_NO_OPTIMIZATION 1 + +/* Data dictionary new contraint property validation options */ +#define ADS_NO_VALIDATE 0 /* Do not validate records against the new constraint */ +#define ADS_VALIDATE_NO_SAVE 1 /* Delete record not meeting the constraint from the table, no save */ +#define ADS_VALIDATE_WRITE_FAIL 2 /* Validate the records against the new constraint and overwrite + * the fail table with records not meeting the constraint. */ +#define ADS_VALIDATE_APPEND_FAIL 3 /* Validate the records against the new constraint and append + * the failed records into the fail table */ +#define ADS_VALIDATE_RETURN_ERROR 4 /* Validate the records against the new constraint and return + * error if there is any record not meeting the constraint */ + +/* Possible result values from AdsCompareBookmarks. */ +#define ADS_CMP_LESS -1 +#define ADS_CMP_EQUAL 0 +#define ADS_CMP_GREATER 1 + + /* Success return code */ #define AE_SUCCESS 0 - /* Error codes */ #define AE_ALLOCATION_FAILED 5001 #define AE_COMM_MISMATCH 5002 @@ -260,10 +331,57 @@ typedef double DOUBLE; #define AE_INVALID_CURSORHANDLE 5119 #define AE_OBSOLETE_FUNCTION 5120 #define AE_TADSDATASET_GENERAL 5121 -#define AE_FIELD_TYPE_MISMATCH 5122 - -#define AE_MAX_ERROR 5122 - +#define AE_UDF_OVERWROTE_BUFFER 5122 +#define AE_INDEX_UDF_NOT_SET 5123 +#define AE_CONCURRENT_PROBLEM 5124 +#define AE_INVALID_DICTIONARY_HANDLE 5125 +#define AE_INVALID_PROPERTY_ID 5126 +#define AE_INVALID_PROPERTY 5127 +#define AE_DICTIONARY_ALREADY_EXISTS 5128 +#define AE_INVALID_FIND_HANDLE 5129 +#define AE_DD_REQUEST_NOT_COMPLETED 5130 +#define AE_INVALID_OBJECT_ID 5131 +#define AE_INVALID_OBJECT_NAME 5132 +#define AE_INVALID_PROPERTY_LENGTH 5133 +#define AE_INVALID_KEY_OPTIONS 5134 +#define AE_CONSTRAINT_VALIDATION_ERROR 5135 +#define AE_INVALID_OBJECT_TYPE 5136 +#define AE_NO_OBJECT_FOUND 5137 +#define AE_PROPERTY_NOT_SET 5138 +#define AE_NO_PRIMARY_KEY_EXISTS 5139 +#define AE_LOCAL_CONN_DISABLED 5140 +#define AE_RI_RESTRICT 5141 +#define AE_RI_CASCADE 5142 +#define AE_RI_FAILED 5143 +#define AE_RI_CORRUPTED 5144 +#define AE_RI_UNDO_FAILED 5145 +#define AE_RI_RULE_EXISTS 5146 +#define AE_COLUMN_CANNOT_BE_NULL 5147 +#define AE_MIN_CONSTRAINT_VIOLATION 5148 +#define AE_MAX_CONSTRAINT_VIOLATION 5149 +#define AE_RECORD_CONSTRAINT_VIOLATION 5150 +#define AE_CANNOT_DELETE_TEMP_INDEX 5151 +#define AE_RESTRUCTURE_FAILED 5152 +#define AE_INVALID_STATEMENT 5153 +#define AE_STORED_PROCEDURE_FAILED 5154 +#define AE_INVALID_DICTIONARY_FILE 5155 +#define AE_NOT_MEMBER_OF_GROUP 5156 +#define AE_ALREADY_MEMBER_OF_GROUP 5157 +#define AE_INVALID_OBJECT_RIGHT 5158 +#define AE_INVALID_OBJECT_PERMISSION 5158 /* Note that this is same as above. The word + * permission is more commonly used. + */ +#define AE_CANNOT_OPEN_DATABASE_TABLE 5159 +#define AE_INVALID_CONSTRAINT 5160 +#define AE_NOT_ADMINISTRATOR 5161 +#define AE_NO_TABLE_ENCRYPTION_PASSWORD 5162 +#define AE_TABLE_NOT_ENCRYPTED 5163 +#define AE_INVALID_ENCRYPTION_VERSION 5164 +#define AE_NO_STORED_PROC_EXEC_RIGHTS 5165 +#define AE_DD_UNSUPPORTED_DEPLOYMENT 5166 +#define AE_INFO_AUTO_CREATION_OCCURRED 5168 +#define AE_INFO_COPY_MADE_BY_CLIENT 5169 +#define AE_DATABASE_REQUIRE_NEW_SERVER 5170 /* Available OEM Languages (for Clipper compatibility) */ #define ADS_LANG_USA "USA" @@ -293,6 +411,7 @@ typedef double DOUBLE; /* Supported file types */ +#define ADS_DATABASE_TABLE ADS_DEFAULT #define ADS_NTX 1 #define ADS_CDX 2 #define ADS_ADT 3 @@ -301,6 +420,7 @@ typedef double DOUBLE; #define ADS_BASENAME 1 #define ADS_BASENAMEANDEXT 2 #define ADS_FULLPATHNAME 3 +#define ADS_DATADICTIONARY_NAME 4 /* Advantage Optimized Filter (AOF) optimization levels */ @@ -317,13 +437,19 @@ typedef double DOUBLE; #define ADS_AOF_REMOVE_RECORD 2 #define ADS_AOF_TOGGLE_RECORD 3 +/* Stored procedure or trigger type */ +#define ADS_STORED_PROC 0x00000001 + /* some maximum values used by the client */ /* NOTE: constants meant for string length exclude space for null terminator */ #define ADS_MAX_DATEMASK 12 -#define ADS_MAX_ERROR_LEN 255 +#define ADS_MAX_ERROR_LEN 600 #define ADS_MAX_INDEX_EXPR_LEN 510 /* this is only accurate for index expressions */ -#define ADS_MAX_KEY_LENGTH 256 /* maximum key value length */ +#define ADS_MAX_KEY_LENGTH 256 /* maximum key value length. This is the max key length + * of NTX index. CDX and ADI indexes have max key length + * of 240. + */ #define ADS_MAX_FIELD_NAME 128 #define ADS_MAX_DBF_FIELD_NAME 10 /* maximum length of field name in a DBF */ #define ADS_MAX_INDEXES 15 /* physical index files, NOT index orders */ @@ -331,6 +457,16 @@ typedef double DOUBLE; #define ADS_MAX_TABLE_NAME 255 /* long file name */ #define ADS_MAX_TAG_NAME 128 #define ADS_MAX_TAGS 50 /* maximum for CDX/ADI file */ +#define ADS_MAX_OBJECT_NAME 200 /* maximum length of DD object name */ + + +/* + * Valid range of page sizes for ADI indexes. The default page size is 512 + * bytes. Before using another page size, please read the section titled + * "Index Page Size" in the Advantage Client Engine help file (ace.hlp) + */ +#define ADS_MIN_ADI_PAGESIZE 512 +#define ADS_MAX_ADI_PAGESIZE 8192 /* data types */ @@ -366,6 +502,12 @@ typedef double DOUBLE; #define ADS_CURDOUBLE 17 /* IEEE 8 byte floating point currency */ +/* + * supported User Defined Function types to be used with AdsRegisterUDF + */ +#define ADS_INDEX_UDF 1 + + /* * Constant for AdsMgGetConfigInfo */ @@ -373,10 +515,15 @@ typedef double DOUBLE; /* * Constants for AdsMgGetServerType + * Note ADS_MGMT_NETWARE_SERVER remains for backwards compatibility only */ -#define ADS_MGMT_NETWARE_SERVER 1 -#define ADS_MGMT_NT_SERVER 2 -#define ADS_MGMT_LOCAL_SERVER 3 +#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 /* * Constants for AdsMgGetLockOwner @@ -406,6 +553,8 @@ typedef double DOUBLE; #define ADS_MAX_USER_NAME 50 +#define ADS_MAX_ADDRESS_SIZE 30 + /* * Management API structures */ @@ -447,11 +596,27 @@ typedef struct UNSIGNED8 aucErrorLog[ADS_MAX_CFG_PATH]; /* error log path */ UNSIGNED8 aucSemaphore[ADS_MAX_CFG_PATH]; /* semaphore file path */ UNSIGNED8 aucTransaction[ADS_MAX_CFG_PATH]; /* TPS log file path */ + UNSIGNED8 ucReserved3; /* reserved */ UNSIGNED8 ucReserved4; /* reserved */ UNSIGNED16 usSendIPPort; /* NT Service IP send port # */ UNSIGNED16 usReceiveIPPort; /* NT Service IP rcv port # */ - UNSIGNED16 usReserved5; /* reserved */ + UNSIGNED8 ucUseIPProtocol; /* Win9x only. Which protocol to use */ + UNSIGNED8 ucFlushEveryUpdate; /* Win9x specific */ + + UNSIGNED32 ulGhostTimeout; /* Diconnection time for partial connections */ + UNSIGNED32 ulFlushFrequency; /* For local server only */ + + UNSIGNED32 ulKeepAliveTimeOut; /* When not using semaophore files. In milliseconds */ + UNSIGNED8 ucDisplayNWLoginNames; /* Display connections using user names. */ + UNSIGNED8 ucUseSemaphoreFiles; /* Whether or not to use semaphore files */ + UNSIGNED8 ucUseDynamicAOFs; + UNSIGNED8 ucUseInternet; /* 0 if an Internet port is not specified. */ + + UNSIGNED16 usInternetPort; /* Internet Port */ + UNSIGNED16 usMaxConnFailures; /* Maximum Internet connection failures allowed. */ + UNSIGNED32 ulInternetKeepAlive; /* In Milliseconds */ + } ADS_MGMT_CONFIG_PARAMS; typedef struct @@ -519,6 +684,8 @@ typedef struct { UNSIGNED8 aucUserName[ADS_MAX_USER_NAME]; /* Name of connected user */ UNSIGNED16 usConnNumber; /* NetWare conn # (NLM only) */ + UNSIGNED8 aucAuthUserName[ADS_MAX_USER_NAME]; + UNSIGNED8 aucAddress[ADS_MAX_ADDRESS_SIZE]; } ADS_MGMT_USER_INFO; typedef struct @@ -546,12 +713,212 @@ typedef struct UNSIGNED16 usReserved1; /* Reserved */ } ADS_MGMT_THREAD_ACTIVITY; +/* + * Data dictionary properties related constants and structure + */ + +typedef struct _ADD_FIELD_DESC_ + { + UNSIGNED16 usFieldType; + UNSIGNED16 usFieldLength; + UNSIGNED16 usFieldDecimal; + } ADD_FIELD_DESC; + + +#define ADS_DD_PROPERTY_NOT_AVAIL 0xFFFF +#define ADS_DD_MAX_PROPERTY_LEN 0xFFFE +#define ADS_DD_MAX_OBJECT_NAME_LEN 200 + +#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 + + +/* 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 + + +/* 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 + +/* 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 + +/* 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 + +/* 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_LEVEL_0 0 +#define ADS_DD_LEVEL_1 1 +#define ADS_DD_LEVEL_2 2 + + +/* User group Properties 1201 - 1299 */ +/* None at this moment. */ +/* Also object rights properties 1001 - 1099 */ + +/* Supported permissions in the data dictionary */ +#define ADS_PERMISSION_READ 1 +#define ADS_PERMISSION_UPDATE 2 +#define ADS_PERMISSION_INSERT 3 +#define ADS_PERMISSION_DELETE 4 +#define ADS_PERMISSION_EXECUTE 5 +#define ADS_PERMISSION_INHERIT 6 + + + +/* stored procedure functions must be of this type */ +#ifdef WINAPI +typedef UNSIGNED32 (WINAPI *STORED_PROCEDURE_PTR) +( + UNSIGNED32 ulConnectionID, // (I) value used to associate a user/connection + // and can be used to track the state + UNSIGNED8 *pucUserName, // (I) the user name who invoked this procedure + UNSIGNED8 *pucPassword, // (I) the user's password in encrypted form + UNSIGNED8 *pucProcName, // (I) the stored procedure name + UNSIGNED32 ulRecNum, // (I) reserved for triggers + UNSIGNED8 *pucTable1, // (I) table one. For Stored Proc this table + // contains all input parameters. For + // triggers, it contains the original field + // values if the trigger is an OnUpdate or + // OnDelete + UNSIGNED8 *pucTable2 // (I) table two. For Stored Proc this table + // is empty and the users function will + // optionally add rows to it as output. + // For triggers, it contains the new field + // values if the trigger is an OnUpdate or + // OnInsert +); + + +typedef UNSIGNED32 (WINAPI *STARTUP_PROCEDURE_PTR) +( + UNSIGNED32 ulConnectionID, // (I) value used to associate a user/connection + // and can be used to track the state + UNSIGNED8 *pucUserName, // (I) the user name who invoked this procedure + UNSIGNED8 *pucPassword // (I) the user's password in encrypted form +); + + +typedef UNSIGNED32 (WINAPI *SHUTDOWN_PROCEDURE_PTR) +( + UNSIGNED32 ulConnectionID, // (I) value used to associate a user/connection + // and can be used to track the state + UNSIGNED8 *pucUserName, // (I) the user name who invoked this procedure + UNSIGNED8 *pucPassword // (I) the user's password in encrypted form +); + +#endif /* * This macro allows a numeric field value to be passed into functions * that expect field names. If the user prefers to use column number, * then calls like this can be made: - * ulRet = AdsGetDouble( hTbl, ADSFIELD( 1 ), &dVal ); + * ulRet = AdsGetDouble( hTable, ADSFIELD( 1 ), &dVal ); * Where the first column is a numeric value to retrieve. */ #define ADSFIELD(x) ((unsigned char*)(long)( x )) @@ -565,19 +932,19 @@ typedef struct UNSIGNED32 ENTRYPOINT AdsAddCustomKey( ADSHANDLE hIndex ); -UNSIGNED32 ENTRYPOINT AdsAppendRecord( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsAppendRecord( ADSHANDLE hTable ); -UNSIGNED32 ENTRYPOINT AdsApplicationExit( void ); +UNSIGNED32 ENTRYPOINT AdsApplicationExit(); -UNSIGNED32 ENTRYPOINT AdsAtBOF( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsAtBOF( ADSHANDLE hTable, UNSIGNED16 *pbBof ); -UNSIGNED32 ENTRYPOINT AdsAtEOF( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsAtEOF( ADSHANDLE hTable, UNSIGNED16 *pbEof ); UNSIGNED32 ENTRYPOINT AdsBeginTransaction( ADSHANDLE hConnect ); -UNSIGNED32 ENTRYPOINT AdsBinaryToFile( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsBinaryToFile( ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED8 *pucFileName ); @@ -585,59 +952,70 @@ UNSIGNED32 ENTRYPOINT AdsCacheOpenCursors( UNSIGNED16 usOpen ); UNSIGNED32 ENTRYPOINT AdsCacheOpenTables( UNSIGNED16 usOpen ); -UNSIGNED32 ENTRYPOINT AdsCacheRecords( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsCacheRecords( ADSHANDLE hTable, UNSIGNED16 usNumRecords ); -UNSIGNED32 ENTRYPOINT AdsCancelUpdate( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsCancelUpdate( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsCheckExistence( ADSHANDLE hConnect, UNSIGNED8 *pucFileName, UNSIGNED16 *pusOnDisk ); -UNSIGNED32 ENTRYPOINT AdsClearAllScopes( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsClearAllScopes( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsClearDefault( void ); -UNSIGNED32 ENTRYPOINT AdsClearFilter( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsClearFilter( ADSHANDLE hTable ); -UNSIGNED32 ENTRYPOINT AdsClearRelation( ADSHANDLE hTblParent ); +UNSIGNED32 ENTRYPOINT AdsClearRelation( ADSHANDLE hTableParent ); UNSIGNED32 ENTRYPOINT AdsClearScope( ADSHANDLE hIndex, UNSIGNED16 usScopeOption ); -UNSIGNED32 ENTRYPOINT AdsCloneTable( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsCloneTable( ADSHANDLE hTable, ADSHANDLE *phClone ); -UNSIGNED32 ENTRYPOINT AdsCloseAllIndexes( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsCloseAllIndexes( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsCloseAllTables( void ); UNSIGNED32 ENTRYPOINT AdsCloseIndex( ADSHANDLE hIndex ); -UNSIGNED32 ENTRYPOINT AdsCloseTable( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsCloseTable( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsCommitTransaction( ADSHANDLE hConnect ); UNSIGNED32 ENTRYPOINT AdsConnect( UNSIGNED8 *pucServerName, ADSHANDLE *phConnect ); -UNSIGNED32 ENTRYPOINT AdsContinue( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsConnect26( UNSIGNED8 *pucServerName, + UNSIGNED16 usServerTypes, + ADSHANDLE *phConnect ); + +UNSIGNED32 ENTRYPOINT AdsConnect60( UNSIGNED8 *pucServerPath, + UNSIGNED16 usServerTypes, + UNSIGNED8 *pucUserName, + UNSIGNED8 *pucPassword, + UNSIGNED32 ulOptions, + ADSHANDLE *phConnect ); + +UNSIGNED32 ENTRYPOINT AdsContinue( ADSHANDLE hTable, UNSIGNED16 *pbFound ); -UNSIGNED32 ENTRYPOINT AdsConvertTable( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsConvertTable( ADSHANDLE hObj, UNSIGNED16 usFilterOption, UNSIGNED8 *pucFile, UNSIGNED16 usTableType ); -UNSIGNED32 ENTRYPOINT AdsCopyTable( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsCopyTable( ADSHANDLE hObj, UNSIGNED16 usFilterOption, UNSIGNED8 *pucFile ); -UNSIGNED32 ENTRYPOINT AdsCopyTableContents( ADSHANDLE hTblFrom, - ADSHANDLE hTblTo, +UNSIGNED32 ENTRYPOINT AdsCopyTableContents( ADSHANDLE hObj, + ADSHANDLE hTableTo, UNSIGNED16 usFilterOption ); -UNSIGNED32 ENTRYPOINT AdsCopyTableStructure( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsCopyTableStructure( ADSHANDLE hTable, UNSIGNED8 *pucFile ); UNSIGNED32 ENTRYPOINT AdsCreateIndex( ADSHANDLE hObj, @@ -649,7 +1027,17 @@ UNSIGNED32 ENTRYPOINT AdsCreateIndex( ADSHANDLE hObj, UNSIGNED32 ulOptions, ADSHANDLE *phIndex ); -UNSIGNED32 ENTRYPOINT AdsCreateTable( ADSHANDLE hConnect, +UNSIGNED32 ENTRYPOINT AdsCreateIndex61( ADSHANDLE hObj, + UNSIGNED8 *pucFileName, + UNSIGNED8 *pucTag, + UNSIGNED8 *pucExpr, + UNSIGNED8 *pucCondition, + UNSIGNED8 *pucWhile, + UNSIGNED32 ulOptions, + UNSIGNED32 ulPageSize, + ADSHANDLE *phIndex ); + +UNSIGNED32 ENTRYPOINT AdsCreateTable( ADSHANDLE hConnection, UNSIGNED8 *pucName, UNSIGNED8 *pucAlias, UNSIGNED16 usTableType, @@ -658,47 +1046,279 @@ UNSIGNED32 ENTRYPOINT AdsCreateTable( ADSHANDLE hConnect, UNSIGNED16 usCheckRights, UNSIGNED16 usMemoSize, UNSIGNED8 *pucFields, - ADSHANDLE *phTbl ); + ADSHANDLE *phTable ); -UNSIGNED32 ENTRYPOINT AdsDecryptRecord( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsDDCreate( UNSIGNED8 *pucDictionaryPath, + UNSIGNED16 usEncrypt, + UNSIGNED8 *pucDescription, + ADSHANDLE *phDictionary ); -UNSIGNED32 ENTRYPOINT AdsDecryptTable( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsDDCreateRefIntegrity( ADSHANDLE hDictionary, + UNSIGNED8 *pucRIName, + UNSIGNED8 *pucFailTable, + UNSIGNED8 *pucParentTableName, + UNSIGNED8 *pucParentTagName, + UNSIGNED8 *pucChildTableName, + UNSIGNED8 *pucChildTagName, + UNSIGNED16 usUpdateRule, + UNSIGNED16 usDeleteRule ); + +UNSIGNED32 ENTRYPOINT AdsDDRemoveRefIntegrity( ADSHANDLE hDictionary, + UNSIGNED8 *pucRIName ); + +UNSIGNED32 ENTRYPOINT AdsDDGetDatabaseProperty( ADSHANDLE hObject, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetFieldProperty( ADSHANDLE hObject, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucFieldName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetIndexFileProperty( ADSHANDLE hObject, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucIndexFileName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetIndexProperty( ADSHANDLE hObject, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucIndexName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetTableProperty( ADSHANDLE hObject, + UNSIGNED8 *pucTableName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetUserGroupProperty( ADSHANDLE hObject, + UNSIGNED8 *pucUserGroupName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetUserProperty( ADSHANDLE hObject, + UNSIGNED8 *pucUserName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetViewProperty( ADSHANDLE hObject, + UNSIGNED8 *pucViewName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetProcedureProperty( ADSHANDLE hObject, + UNSIGNED8 *pucProcName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetRefIntegrityProperty( ADSHANDLE hObject, + UNSIGNED8 *pucRIName, + UNSIGNED16 usPropertyID, + UNSIGNED8 *pucProperty, + UNSIGNED16 *pusPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGetPermissions( ADSHANDLE hDBConn, + UNSIGNED8 *pucGrantee, + UNSIGNED16 usObjectType, + UNSIGNED8 *pucObjectName, + UNSIGNED8 *pucParentName, + UNSIGNED16 usGetInherited, + UNSIGNED8 *pucPermissions, + UNSIGNED16 *pusBufferLen ); + +UNSIGNED32 ENTRYPOINT AdsDDGrantPermission( ADSHANDLE hAdminConn, + UNSIGNED16 usObjectType, + UNSIGNED8 *pucObjectName, + UNSIGNED8 *pucParentName, + UNSIGNED8 *pucGrantee, + UNSIGNED16 usPermission ); + +UNSIGNED32 ENTRYPOINT AdsDDRevokePermission( ADSHANDLE hAdminConn, + UNSIGNED16 usObjectType, + UNSIGNED8 *pucObjectName, + UNSIGNED8 *pucParentName, + UNSIGNED8 *pucGrantee, + UNSIGNED16 usPermission ); + +UNSIGNED32 ENTRYPOINT AdsDDSetDatabaseProperty( ADSHANDLE hDictionary, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 usPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDSetFieldProperty( ADSHANDLE hDictionary, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucFieldName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 usPropertyLen, + UNSIGNED16 usValidateOption, + UNSIGNED8 *pucFailTable ); + +UNSIGNED32 ENTRYPOINT AdsDDSetTableProperty( ADSHANDLE hDictionary, + UNSIGNED8 *pucTableName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 usPropertyLen, + UNSIGNED16 usValidateOption, + UNSIGNED8 *pucFailTable ); + +UNSIGNED32 ENTRYPOINT AdsDDSetUserGroupProperty( ADSHANDLE hDictionary, + UNSIGNED8 *pucUserGroupName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 usPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDSetUserProperty( ADSHANDLE hDictionary, + UNSIGNED8 *pucUserName, + UNSIGNED16 usPropertyID, + VOID *pvProperty, + UNSIGNED16 usPropertyLen ); + +UNSIGNED32 ENTRYPOINT AdsDDSetObjectAccessRights( ADSHANDLE hDictionary, + UNSIGNED8 *pucObjectName, + UNSIGNED8 *pucAccessorName, + UNSIGNED8 *pucAllowedAccess ); + +UNSIGNED32 ENTRYPOINT AdsDDAddProcedure( ADSHANDLE hDictionary, + UNSIGNED8 *pucName, + UNSIGNED8 *pucDLL, + UNSIGNED8 *pucProcName, + UNSIGNED32 ulInvokeOption, + UNSIGNED8 *pucInParams, + UNSIGNED8 *pucOutParams, + UNSIGNED8 *pucComments ); + + +UNSIGNED32 ENTRYPOINT AdsDDAddTable( ADSHANDLE hDictionary, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucTablePath, + UNSIGNED16 usTableType, + UNSIGNED16 usCharType, + UNSIGNED8 *pucIndexFiles, + UNSIGNED8 *pucComments ); + +UNSIGNED32 ENTRYPOINT AdsDDAddView( ADSHANDLE hDictionary, + UNSIGNED8 *pucName, + UNSIGNED8 *pucComments, + UNSIGNED8 *pucSQL ); + +UNSIGNED32 ENTRYPOINT AdsDDAddIndexFile( ADSHANDLE hDictionary, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucIndexFilePath, + UNSIGNED8 *pucComment ); + +UNSIGNED32 ENTRYPOINT AdsDDCreateUser( ADSHANDLE hDictionary, + UNSIGNED8 *pucGroupName, + UNSIGNED8 *pucUserName, + UNSIGNED8 *pucPassword, + UNSIGNED8 *pucDescription ); + +UNSIGNED32 ENTRYPOINT AdsDDAddUserToGroup( ADSHANDLE hDictionary, + UNSIGNED8 *pucGroupName, + UNSIGNED8 *pucUserName ); + +UNSIGNED32 ENTRYPOINT AdsDDRemoveUserFromGroup( ADSHANDLE hDictionary, + UNSIGNED8 *pucGroupName, + UNSIGNED8 *pucUserName ); + + +UNSIGNED32 ENTRYPOINT AdsDDDeleteUser( ADSHANDLE hDictionary, + UNSIGNED8 *pucUserName ); + + +UNSIGNED32 ENTRYPOINT AdsDDCreateUserGroup( ADSHANDLE hDictionary, + UNSIGNED8 *pucGroupName, + UNSIGNED8 *pucDescription ); + +UNSIGNED32 ENTRYPOINT AdsDDDeleteUserGroup( ADSHANDLE hDictionary, + UNSIGNED8 *pucGroupName ); + +UNSIGNED32 ENTRYPOINT AdsDDDeleteIndex( ADSHANDLE hDictionary, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucIndexName ); + +UNSIGNED32 ENTRYPOINT AdsDDRemoveIndexFile( ADSHANDLE hDictionary, + UNSIGNED8 *pucTableName, + UNSIGNED8 *pucIndexFileName, + UNSIGNED16 usDeleteFile ); + +UNSIGNED32 ENTRYPOINT AdsDDRemoveProcedure( ADSHANDLE hDictionary, + UNSIGNED8 *pucName ); + + +UNSIGNED32 ENTRYPOINT AdsDDRemoveTable( ADSHANDLE hObject, + UNSIGNED8 *pucTableName, + UNSIGNED16 usDeleteFiles ); + +UNSIGNED32 ENTRYPOINT AdsDDRemoveView( ADSHANDLE hDictionary, + UNSIGNED8 *pucName ); + +UNSIGNED32 ENTRYPOINT AdsDDFindFirstObject( ADSHANDLE hObject, + UNSIGNED16 usFindObjectType, + UNSIGNED8 *pucParentName, + UNSIGNED8 *pucObjectName, + UNSIGNED16 *pusObjectNameLen, + ADSHANDLE *phFindHandle ); + +UNSIGNED32 ENTRYPOINT AdsDDFindNextObject( ADSHANDLE hObject, + ADSHANDLE hFindHandle, + UNSIGNED8 *pucObjectName, + UNSIGNED16 *pusObjectNameLen ); + +UNSIGNED32 ENTRYPOINT AdsDDFindClose( ADSHANDLE hObject, ADSHANDLE hFindHandle ); + +UNSIGNED32 ENTRYPOINT AdsDecryptRecord( ADSHANDLE hTable ); + +UNSIGNED32 ENTRYPOINT AdsDecryptTable( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsDeleteCustomKey( ADSHANDLE hIndex ); UNSIGNED32 ENTRYPOINT AdsDeleteIndex( ADSHANDLE hIndex ); -UNSIGNED32 ENTRYPOINT AdsDeleteRecord( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsDeleteRecord( ADSHANDLE hTable ); -UNSIGNED32 ENTRYPOINT AdsDisableEncryption( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsDisableEncryption( ADSHANDLE hTable ); + +UNSIGNED32 ENTRYPOINT AdsDisableLocalConnections( void ); UNSIGNED32 ENTRYPOINT AdsDisconnect( ADSHANDLE hConnect ); -UNSIGNED32 ENTRYPOINT AdsEnableEncryption( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsEnableEncryption( ADSHANDLE hTable, UNSIGNED8 *pucPassword ); -UNSIGNED32 ENTRYPOINT AdsEncryptRecord( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsEncryptRecord( ADSHANDLE hTable ); -UNSIGNED32 ENTRYPOINT AdsEncryptTable( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsEncryptTable( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsEvalLogicalExpr( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucExpr, UNSIGNED16 *pbResult ); UNSIGNED32 ENTRYPOINT AdsEvalNumericExpr( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucExpr, DOUBLE *pdResult ); UNSIGNED32 ENTRYPOINT AdsEvalStringExpr( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucExpr, UNSIGNED8 *pucResult, UNSIGNED16 *pusLen ); UNSIGNED32 ENTRYPOINT AdsEvalTestExpr( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucExpr, UNSIGNED16 *pusType ); @@ -710,7 +1330,7 @@ UNSIGNED32 ENTRYPOINT AdsExtractKey( UNSIGNED32 ENTRYPOINT AdsFailedTransactionRecovery( UNSIGNED8 *pucServer ); UNSIGNED32 ENTRYPOINT AdsFileToBinary( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 usBinaryType, UNSIGNED8 *pucFileName ); @@ -723,36 +1343,63 @@ UNSIGNED32 ENTRYPOINT AdsFindConnection25( UNSIGNED8 *pucFullPath, ADSHANDLE *phConnect ); +UNSIGNED32 ENTRYPOINT AdsFindClose( ADSHANDLE hConnect, SIGNED32 lHandle ); + +UNSIGNED32 ENTRYPOINT AdsFindFirstTable( ADSHANDLE hConnect, + UNSIGNED8 *pucFileMask, + UNSIGNED8 *pucFirstFile, + UNSIGNED16 *pusFileLen, + SIGNED32 *plHandle ); + +UNSIGNED32 ENTRYPOINT AdsFindNextTable( ADSHANDLE hConnect, + SIGNED32 lHandle, + UNSIGNED8 *pucFileName, + UNSIGNED16 *pusFileLen ); + UNSIGNED32 ENTRYPOINT AdsGetAllIndexes( - ADSHANDLE hTbl, + ADSHANDLE hTable, ADSHANDLE ahIndex[], UNSIGNED16 *pusArrayLen ); UNSIGNED32 ENTRYPOINT AdsGetAllLocks( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED32 aulLocks[], UNSIGNED16 *pusArrayLen ); UNSIGNED32 ENTRYPOINT AdsGetAllTables( - ADSHANDLE ahTbl[], + ADSHANDLE ahTable[], UNSIGNED16 *pusArrayLen ); UNSIGNED32 ENTRYPOINT AdsGetBinary( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED32 ulOffset, UNSIGNED8 *pucBuf, UNSIGNED32 *pulLen ); UNSIGNED32 ENTRYPOINT AdsGetBinaryLength( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED32 *pulLength ); UNSIGNED32 ENTRYPOINT AdsGetBookmark( - ADSHANDLE hTbl, + ADSHANDLE hTable, ADSHANDLE *phBookmark ); +UNSIGNED32 ENTRYPOINT AdsGetBookmark60( + ADSHANDLE hObj, + UNSIGNED8 *pucBookmark, + UNSIGNED32 *pulLength ); + +UNSIGNED32 ENTRYPOINT AdsGetBookmarkLength( + ADSHANDLE hObj, + UNSIGNED32 *pulLength ); + +UNSIGNED32 ENTRYPOINT AdsCompareBookmarks( + UNSIGNED8 *pucBookmark1, + UNSIGNED8 *pucBookmark2, + SIGNED32 *plResult ); + UNSIGNED32 ENTRYPOINT AdsGetCollationLang( UNSIGNED8 *pucLang, UNSIGNED16 *pusLen ); @@ -762,7 +1409,7 @@ UNSIGNED32 ENTRYPOINT AdsGetConnectionType( UNSIGNED16 *pusConnectType ); UNSIGNED32 ENTRYPOINT AdsGetDate( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED8 *pucBuf, UNSIGNED16 *pusLen ); @@ -780,7 +1427,7 @@ UNSIGNED32 ENTRYPOINT AdsGetDefault( UNSIGNED32 ENTRYPOINT AdsGetDeleted( UNSIGNED16 *pbUseDeleted ); UNSIGNED32 ENTRYPOINT AdsGetDouble( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, DOUBLE *pdValue ); @@ -798,45 +1445,45 @@ UNSIGNED32 ENTRYPOINT AdsGetExact22( UNSIGNED16 *pbExact ); UNSIGNED32 ENTRYPOINT AdsGetField( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED8 *pucBuf, UNSIGNED32 *pulLen, UNSIGNED16 usOption ); UNSIGNED32 ENTRYPOINT AdsGetFieldDecimals( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 *pusDecimals ); UNSIGNED32 ENTRYPOINT AdsGetFieldLength( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED32 *pulLength ); UNSIGNED32 ENTRYPOINT AdsGetFieldName( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 usFld, UNSIGNED8 *pucName, UNSIGNED16 *pusBufLen ); UNSIGNED32 ENTRYPOINT AdsGetFieldNum( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 *pusNum ); UNSIGNED32 ENTRYPOINT AdsGetFieldOffset( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED32 *pulOffset ); UNSIGNED32 ENTRYPOINT AdsGetFieldType( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 *pusType ); UNSIGNED32 ENTRYPOINT AdsGetFilter( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFilter, UNSIGNED16 *pusLen ); @@ -865,18 +1512,18 @@ UNSIGNED32 ENTRYPOINT AdsGetIndexFilename( UNSIGNED16 *pusLen ); UNSIGNED32 ENTRYPOINT AdsGetIndexHandle( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucIndexOrder, ADSHANDLE *phIndex ); UNSIGNED32 ENTRYPOINT AdsGetIndexHandleByOrder( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 usOrderNum, ADSHANDLE *phIndex ); UNSIGNED32 ENTRYPOINT AdsGetIndexHandleByExpr( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucExpr, UNSIGNED32 ulDescending, ADSHANDLE *phIndex ); @@ -891,7 +1538,7 @@ UNSIGNED32 ENTRYPOINT AdsGetIndexOrderByHandle( ADSHANDLE hIndex, UNSIGNED16 *pusIndexOrder ); UNSIGNED32 ENTRYPOINT AdsGetJulian( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, SIGNED32 *plDate ); @@ -919,66 +1566,66 @@ UNSIGNED32 ENTRYPOINT AdsGetLastError( UNSIGNED16 *pusBufLen ); UNSIGNED32 ENTRYPOINT AdsGetLastTableUpdate( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucDate, UNSIGNED16 *pusDateLen ); UNSIGNED32 ENTRYPOINT AdsGetLogical( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 *pbValue ); UNSIGNED32 ENTRYPOINT AdsGetLong( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, SIGNED32 *plValue ); UNSIGNED32 ENTRYPOINT AdsGetMemoLength( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED32 *pulLength ); UNSIGNED32 ENTRYPOINT AdsGetMemoDataType( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 *pusType ); UNSIGNED32 ENTRYPOINT AdsGetMilliseconds( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, SIGNED32 *plTime ); UNSIGNED32 ENTRYPOINT AdsGetNumFields( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusCount ); UNSIGNED32 ENTRYPOINT AdsGetNumIndexes( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusNum ); UNSIGNED32 ENTRYPOINT AdsGetNumLocks( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusNum ); UNSIGNED32 ENTRYPOINT AdsGetNumOpenTables( UNSIGNED16 *pusNum ); UNSIGNED32 ENTRYPOINT AdsGetRecord( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucRec, UNSIGNED32 *pulLen ); UNSIGNED32 ENTRYPOINT AdsGetRecordCount( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 usFilterOption, UNSIGNED32 *pulCount ); UNSIGNED32 ENTRYPOINT AdsGetRecordNum( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 usFilterOption, UNSIGNED32 *pulRec ); UNSIGNED32 ENTRYPOINT AdsGetRecordLength( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED32 *pulLength ); UNSIGNED32 ENTRYPOINT AdsGetRelKeyPos( @@ -1009,67 +1656,67 @@ UNSIGNED32 ENTRYPOINT AdsGetServerTime( UNSIGNED16 *pusTimeBufLen ); UNSIGNED32 ENTRYPOINT AdsGetShort( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, SIGNED16 *psValue ); UNSIGNED32 ENTRYPOINT AdsGetString( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED8 *pucBuf, UNSIGNED32 *pulLen, UNSIGNED16 usOption ); UNSIGNED32 ENTRYPOINT AdsGetTableAlias( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucAlias, UNSIGNED16 *pusLen ); UNSIGNED32 ENTRYPOINT AdsGetTableCharType( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusCharType ); UNSIGNED32 ENTRYPOINT AdsGetTableConnection( - ADSHANDLE hTbl, + ADSHANDLE hTable, ADSHANDLE *phConnect ); UNSIGNED32 ENTRYPOINT AdsGetTableFilename( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 usOption, UNSIGNED8 *pucName, UNSIGNED16 *pusLen ); UNSIGNED32 ENTRYPOINT AdsGetTableHandle( UNSIGNED8 *pucName, - ADSHANDLE *phTbl ); + ADSHANDLE *phTable ); UNSIGNED32 ENTRYPOINT AdsGetTableHandle25( ADSHANDLE hConnect, UNSIGNED8 *pucName, - ADSHANDLE *phTbl ); + ADSHANDLE *phTable ); UNSIGNED32 ENTRYPOINT AdsGetTableLockType( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusLockType ); UNSIGNED32 ENTRYPOINT AdsGetTableMemoSize( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusMemoSize ); UNSIGNED32 ENTRYPOINT AdsGetTableOpenOptions( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED32 *pulOptions ); UNSIGNED32 ENTRYPOINT AdsGetTableRights( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusRights ); UNSIGNED32 ENTRYPOINT AdsGetTableType( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pusType ); UNSIGNED32 ENTRYPOINT AdsGetTime( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED8 *pucBuf, UNSIGNED16 *pusLen ); @@ -1082,18 +1729,22 @@ UNSIGNED32 ENTRYPOINT AdsGetVersion( UNSIGNED16 *pusDescLen ); UNSIGNED32 ENTRYPOINT AdsGotoBookmark( - ADSHANDLE hTbl, + ADSHANDLE hTable, ADSHANDLE hBookmark ); +UNSIGNED32 ENTRYPOINT AdsGotoBookmark60( + ADSHANDLE hObj, + UNSIGNED8 *pucBookmark ); + UNSIGNED32 ENTRYPOINT AdsGotoBottom( ADSHANDLE hObj ); UNSIGNED32 ENTRYPOINT AdsGotoRecord( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED32 ulRec ); UNSIGNED32 ENTRYPOINT AdsGotoTop( ADSHANDLE hObj ); -UNSIGNED32 ENTRYPOINT AdsImageToClipboard( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsImageToClipboard( ADSHANDLE hTable, UNSIGNED8 *pucFldName ); UNSIGNED32 ENTRYPOINT AdsInTransaction( @@ -1101,12 +1752,12 @@ UNSIGNED32 ENTRYPOINT AdsInTransaction( UNSIGNED16 *pbInTrans ); UNSIGNED32 ENTRYPOINT AdsIsEmpty( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 *pbEmpty ); UNSIGNED32 ENTRYPOINT AdsIsExprValid( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucExpr, UNSIGNED16 *pbValid ); @@ -1131,15 +1782,15 @@ UNSIGNED32 ENTRYPOINT AdsIsIndexUnique( UNSIGNED16 *pbUnique ); UNSIGNED32 ENTRYPOINT AdsIsRecordDeleted( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pbDeleted ); UNSIGNED32 ENTRYPOINT AdsIsRecordEncrypted( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pbEncrypted ); UNSIGNED32 ENTRYPOINT AdsIsRecordLocked( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED32 ulRec, UNSIGNED16 *pbLocked ); @@ -1152,24 +1803,24 @@ UNSIGNED32 ENTRYPOINT AdsIsServerLoaded( UNSIGNED16 *pbLoaded ); UNSIGNED32 ENTRYPOINT AdsIsTableEncrypted( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pbEncrypted ); UNSIGNED32 ENTRYPOINT AdsIsTableLocked( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED16 *pbLocked ); UNSIGNED32 ENTRYPOINT AdsLocate( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucExpr, UNSIGNED16 bForward, UNSIGNED16 *pbFound ); UNSIGNED32 ENTRYPOINT AdsLockRecord( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED32 ulRec ); -UNSIGNED32 ENTRYPOINT AdsLockTable( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsLockTable( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsLookupKey( ADSHANDLE hIndex, UNSIGNED8 *pucKey, @@ -1177,8 +1828,6 @@ UNSIGNED32 ENTRYPOINT AdsLookupKey( ADSHANDLE hIndex, UNSIGNED16 usDataType, UNSIGNED16 *pbFound ); -/* Begin Management APIs */ - UNSIGNED32 ENTRYPOINT AdsMgConnect( UNSIGNED8 *pucServerName, UNSIGNED8 *pucUserName, UNSIGNED8 *pucPassword, @@ -1263,12 +1912,10 @@ UNSIGNED32 ENTRYPOINT AdsMgGetLockOwner( ADSHANDLE hMgmtHandle, UNSIGNED16 *pusStructSize, UNSIGNED16 *pusLockType ); -/* End Management APIs */ - UNSIGNED32 ENTRYPOINT AdsNullTerminateStrings( UNSIGNED16 bNullTerminate ); UNSIGNED32 ENTRYPOINT AdsOpenIndex( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucName, ADSHANDLE ahIndex[], UNSIGNED16 *pusArrayLen ); @@ -1282,22 +1929,33 @@ UNSIGNED32 ENTRYPOINT AdsOpenTable( UNSIGNED16 usLockType, UNSIGNED16 usCheckRights, UNSIGNED32 ulOptions, - ADSHANDLE *phTbl ); + ADSHANDLE *phTable ); -UNSIGNED32 ENTRYPOINT AdsPackTable( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsPackTable( ADSHANDLE hTable ); -UNSIGNED32 ENTRYPOINT AdsRecallRecord( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsRecallRecord( ADSHANDLE hTable ); -UNSIGNED32 ENTRYPOINT AdsRefreshRecord( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsRefreshRecord( ADSHANDLE hTable ); -#if !( defined( ASANLM ) || defined( ASANT ) ) + +#if !( defined( ASANLM ) || defined( ASANT ) || defined( NLM ) || defined( ADS_NT ) || defined( ADS_WIN9X ) || defined( STAND_ALONE_EXE ) || ( defined( ADS_LINUX ) && !defined( ACE ) ) ) UNSIGNED32 ENTRYPOINT AdsClearProgressCallback( void ); UNSIGNED32 ENTRYPOINT AdsRegisterProgressCallback( UNSIGNED32 (WINAPI *lpfnCallback)( UNSIGNED16 usPercent ) ); + + UNSIGNED32 ENTRYPOINT AdsRegisterCallbackFunction( + UNSIGNED32 (WINAPI *lpfnCallback)( UNSIGNED16 usPercent, UNSIGNED32 ulCallbackID ), + UNSIGNED32 ulCallbackID ); + + UNSIGNED32 ENTRYPOINT AdsClearCallbackFunction( void ); + #endif -UNSIGNED32 ENTRYPOINT AdsReindex( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsReindex( ADSHANDLE hTable ); + +UNSIGNED32 ENTRYPOINT AdsReindex61( ADSHANDLE hTable, + UNSIGNED32 ulPageSize ); UNSIGNED32 ENTRYPOINT AdsRollbackTransaction( ADSHANDLE hConnect ); @@ -1317,7 +1975,7 @@ UNSIGNED32 ENTRYPOINT AdsSeekLast( UNSIGNED16 *pbFound ); UNSIGNED32 ENTRYPOINT AdsSetBinary( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFldName, UNSIGNED16 usBinaryType, UNSIGNED32 ulTotalLength, @@ -1365,7 +2023,7 @@ UNSIGNED32 ENTRYPOINT AdsSetField( UNSIGNED32 ulLen ); UNSIGNED32 ENTRYPOINT AdsSetFilter( - ADSHANDLE hTbl, + ADSHANDLE hTable, UNSIGNED8 *pucFilter ); UNSIGNED32 ENTRYPOINT AdsSetHandleLong( @@ -1398,7 +2056,7 @@ UNSIGNED32 ENTRYPOINT AdsSetRecord( UNSIGNED32 ulLen ); UNSIGNED32 ENTRYPOINT AdsSetRelation( - ADSHANDLE hTblParent, + ADSHANDLE hTableParent, ADSHANDLE hIndexChild, UNSIGNED8 *pucExpr ); @@ -1414,7 +2072,7 @@ UNSIGNED32 ENTRYPOINT AdsSetScope( UNSIGNED16 usDataType ); UNSIGNED32 ENTRYPOINT AdsSetScopedRelation( - ADSHANDLE hTblParent, + ADSHANDLE hTableParent, ADSHANDLE hIndexChild, UNSIGNED8 *pucExpr ); @@ -1425,7 +2083,7 @@ UNSIGNED32 ENTRYPOINT AdsSetServerType( UNSIGNED16 usServerOptions ); UNSIGNED32 ENTRYPOINT AdsSetShort( ADSHANDLE hObj, UNSIGNED8 *pucFldName, - SIGNED16 lValue ); + SIGNED16 sValue ); UNSIGNED32 ENTRYPOINT AdsSetString( ADSHANDLE hObj, UNSIGNED8 *pucFldName, @@ -1444,25 +2102,25 @@ UNSIGNED32 ENTRYPOINT AdsSkip( ADSHANDLE hObj, UNSIGNED32 ENTRYPOINT AdsThreadExit( void ); -UNSIGNED32 ENTRYPOINT AdsUnlockRecord( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsUnlockRecord( ADSHANDLE hTable, UNSIGNED32 ulRec ); -UNSIGNED32 ENTRYPOINT AdsUnlockTable( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsUnlockTable( ADSHANDLE hTable ); -/* AdsVerifyPassword is obsolete, retained for backward compatibility. +/* AdsVerifyPassword is obsolete; retained for backward compatibility. * Use AdsIsEncryptionEnabled instead. */ -UNSIGNED32 ENTRYPOINT AdsVerifyPassword( ADSHANDLE hTbl, +UNSIGNED32 ENTRYPOINT AdsVerifyPassword( ADSHANDLE hTable, UNSIGNED16 *pusEnabled ); -UNSIGNED32 ENTRYPOINT AdsIsEncryptionEnabled( ADSHANDLE hTbl, - UNSIGNED16 *pusEnabled ); +UNSIGNED32 ENTRYPOINT AdsIsEncryptionEnabled( ADSHANDLE hTable, + UNSIGNED16 *pusEnabled ); UNSIGNED32 ENTRYPOINT AdsWriteAllRecords( void ); -UNSIGNED32 ENTRYPOINT AdsWriteRecord( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsWriteRecord( ADSHANDLE hTable ); -UNSIGNED32 ENTRYPOINT AdsZapTable( ADSHANDLE hTbl ); +UNSIGNED32 ENTRYPOINT AdsZapTable( ADSHANDLE hTable ); UNSIGNED32 ENTRYPOINT AdsSetAOF( ADSHANDLE hTable, UNSIGNED8 *pucFilter, @@ -1544,22 +2202,72 @@ UNSIGNED32 ENTRYPOINT AdsStmtSetTablePassword( ADSHANDLE hStatement, UNSIGNED32 ENTRYPOINT AdsStmtClearTablePasswords( ADSHANDLE hStatement ); +UNSIGNED32 ENTRYPOINT AdsStmtReadAllColumns( ADSHANDLE hStatement, + UNSIGNED16 usReadColumns ); + +UNSIGNED32 ENTRYPOINT AdsClearSQLParams( ADSHANDLE hStatement ); + UNSIGNED32 ENTRYPOINT AdsSetTimeStamp( ADSHANDLE hObj, UNSIGNED8 *pucFldName, UNSIGNED8 *pucBuf, UNSIGNED32 ulLen ); -UNSIGNED32 ENTRYPOINT AdsClearSQLParams( ADSHANDLE hStatement ); -#if !( defined( ASANLM ) || defined( ASANT ) ) +#if !( defined( ASANLM ) || defined( ASANT ) || defined( NLM ) || defined( ADS_NT ) || defined( ADS_WIN9X ) || defined( STAND_ALONE_EXE ) || ( defined( ADS_LINUX ) && !defined( ACE ) ) ) UNSIGNED32 ENTRYPOINT AdsClearSQLAbortFunc( void ); - UNSIGNED32 ENTRYPOINT AdsRegisterSQLAbortFunc( UNSIGNED32 (WINAPI *lpfnCallback)() ); + UNSIGNED32 ENTRYPOINT AdsRegisterSQLAbortFunc( UNSIGNED32 (WINAPI *lpfnCallback)(void) ); + + UNSIGNED32 ENTRYPOINT AdsRegisterUDF( ADSHANDLE hObj, + UNSIGNED16 usType, + UNSIGNED32 (WINAPI *lpfnUDF)(void) ); #endif +UNSIGNED32 ENTRYPOINT AdsGetNumParams( ADSHANDLE hStatement, UNSIGNED16 *pusNumParams ); + +UNSIGNED32 ENTRYPOINT AdsGetLastAutoinc( ADSHANDLE hObj, UNSIGNED32 *pulAutoIncVal ); + +UNSIGNED32 ENTRYPOINT AdsIsIndexUserDefined( ADSHANDLE hIndex, + UNSIGNED16 *pbUserDefined ); + +UNSIGNED32 ENTRYPOINT AdsRestructureTable( ADSHANDLE hObj, + UNSIGNED8 *pucName, + UNSIGNED8 *pucAlias, + UNSIGNED16 usTableType, + UNSIGNED16 usCharType, + UNSIGNED16 usLockType, + UNSIGNED16 usCheckRights, + UNSIGNED8 *pucAddFields, + UNSIGNED8 *pucDeleteFields, + UNSIGNED8 *pucChangeFields ); + +UNSIGNED32 ENTRYPOINT AdsGetSQLStatementHandle( ADSHANDLE hCursor, + ADSHANDLE *phStmt ); + +UNSIGNED32 ENTRYPOINT AdsGetSQLStatement( ADSHANDLE hStmt, + UNSIGNED8 *pucSQL, + UNSIGNED16 *pusLen ); + +UNSIGNED32 ENTRYPOINT AdsFlushFileBuffers( ADSHANDLE hTable ); + +UNSIGNED32 ENTRYPOINT AdsDDDeployDatabase( UNSIGNED8 *pucDestination, + UNSIGNED8 *pucDestinationPassword, + UNSIGNED8 *pucSource, + UNSIGNED8 *pucSourcePassword, + UNSIGNED16 usServerTypes, + UNSIGNED16 usValidateOption, + UNSIGNED16 usBackupFiles, + UNSIGNED32 ulOptions ); #ifdef __cplusplus } /* extern "C" */ #endif -#endif /* __ACE_INCLUDED__ */ + +#ifdef ADS_LINUX + #pragma pack() +#else + #pragma pack( pop ) +#endif + +#endif /* !__ACE_INCLUDED__ */