#ifndef PXENGINE_H #define PXENGINE_H /////////////////////////////////////////////////////////////////////////////// // PXEngine.h // // // // Copyright (c) Jan Knepper, 1998. All Rights Reserved. // // Written by Jan Knepper // // // // Redistribution and use in source and binary forms, with or without // // modification, are permitted provided that the following conditions // // are met: // // 1. Redistributions of source code must retain the above copyright // // notice, this list of conditions and the following disclaimer. // // 2. Redistributions in binary form must reproduce the above copyright // // notice, this list of conditions and the following disclaimer in the // // documentation and/or other materials provided with the distribution. // // 3. The name of the author may not be used to endorse or promote products // // derived from this software without specific prior written permission. // // // // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND // // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR // // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE // // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF // // THE POSSIBILITY OF SUCH DAMAGE. // /////////////////////////////////////////////////////////////////////////////// #include #include #if defined(__SC__) # define __BORLANDC__ # define __FLAT__ # define __stdcall __declspec(dllimport) #endif #include // Include IDAPI #if defined(__SC__) # undef __stdcall # undef __BORLANDC__ # undef __FLAT__ #endif #define PXCODE DBIResult //#define TABLEHANDLE hDBICur #define TABLEHANDLE INT16 #define RECORDHANDLE INT32 // pBYTE #define FIELDNUMBER UINT16 #define LOCKHANDLE UINT16 #define FIELDHANDLE int #define RECORDNUMBER UINT32 #define PXSUCCESS DBIERR_NONE #define PXERR_ENDOFTABLE DBIERR_EOF #define PXERR_STARTOFTABLE DBIERR_BOF #define PXERR_TABLEEMPTY DBIERR_QRYEMPTY #define PXERR_RECNOTFOUND DBIERR_RECNOTFOUND #define PXERR_OUTOFMEM DBIERR_NOMEMORY #define PXERR_INVTABLEHANDLE DBIERR_NOTHANDLE #define PXERR_INVPARAMETER DBIERR_INVALIDPARAM #define PXERR_INVFIELDHANDLE DBIERR_INVALIDHNDL #define PXERR_TABLENOTFOUND DBIERR_NOSUCHTABLE #define PXERR_KEYVIOL DBIERR_KEYVIOL //typedef long DATE; typedef long TDATE; //#define PXInit() DbiInit(NULL) extern DBIResult PXInit ( void ); //#define PXNetInit(net,type,user) extern DBIResult PXNetInit ( const char *, int, const char * ); //#define PXExit DbiExit extern DBIResult PXExit ( void ); //#define PXSetDefaults(bufSize,maxTables,maxRecBufs,maxLocks,maxFiles,sortOrder) extern DBIResult PXSetDefaults ( int, int, int, int, int, char * ); //#define PXGetDefaults(swapSize,maxTables,maxRecBufs,maxLocks,maxFiles,sortTable) //#define PXSetHWHandler(x) //#define ISBLANKDOUBLE(x) //#define BLANKDOUBLE(x) //#define PXTblOpen(tblName,tblHandle,indexID,saveEveryChange) extern DBIResult PXTblOpen ( const char *, TABLEHANDLE *, int, int ); //#define PXTblClose(tblHandle) extern DBIResult PXTblClose ( TABLEHANDLE ); //#define PXCreateMode(mode) //#define PXTblCreate(tblName,nFields,fields,types) extern DBIResult PXTblCreate ( const char *, int, char **, char ** ); //#define PXTblEmpty(tblName) extern DBIResult PXTblEmpty ( const char * ); //#define PXTblDelete(tblName) //#define PXTblCopy(srcTable,destTable) //#define PXTblRename(srcTable,destTable) //#define PXTblAdd(srcTable,destTable) //#define PXTblUpgrade(tblHandle) //#define PXRecAppend(tblHandle,recHandle) extern DBIResult PXRecAppend ( TABLEHANDLE, RECORDHANDLE ); //#define PXRecInsert(tblHandle,recHandle) extern DBIResult PXRecInsert ( TABLEHANDLE, RECORDHANDLE ); //#define PXRecUpdate(tblHandle,recHandle) extern DBIResult PXRecUpdate ( TABLEHANDLE, RECORDHANDLE ); //#define PXRecDelete(tblHandle) extern DBIResult PXRecDelete ( TABLEHANDLE ); //#define PXRecBufOpen(tblHandle,recHandlePtr) extern DBIResult PXRecBufOpen ( TABLEHANDLE, RECORDHANDLE * ); //#define PXRecBufClose(recHandle) extern DBIResult PXRecBufClose ( RECORDHANDLE ); //#define PXRecBufEmpty(recHandle) extern DBIResult PXRecBufEmpty ( RECORDHANDLE ); //#define PXRecBufCopy(srcRecHandle,destRecHandle) extern DBIResult PXRecBufCopy ( RECORDHANDLE, RECORDHANDLE ); //#define PXRecGet(tblHandle,recHandle) extern DBIResult PXRecGet ( TABLEHANDLE, RECORDHANDLE ); //#define PXRawGet(recHandle,buffer,bufSize) //#define PXRawPut(recHandle,buffer,bufSize) // FIELD FUNCTIONS //#define PXPutShort(recHandle,fldHandle,val) extern DBIResult PXPutShort ( RECORDHANDLE, FIELDHANDLE, short ); //#define PXPutDoub(recHandle,fldHandle,Dval) extern DBIResult PXPutDoub ( RECORDHANDLE, FIELDHANDLE, double ); //#define PXPutLong(recHandle,fldHandle,val) //#define PXPutAlpha(recHandle,fldHandle,str) extern DBIResult PXPutAlpha ( RECORDHANDLE, FIELDHANDLE, const char * ); //#define PXPutDate(recHandle,fldHandle,val) extern DBIResult PXPutDate ( RECORDHANDLE, FIELDHANDLE, TDATE ); //#define PXPutBlank(recHandle,fldHandle) //#define PXGetShort(recHandle,fldHandle,shortPtr) extern DBIResult PXGetShort ( RECORDHANDLE, FIELDHANDLE, short * ); //#define PXGetDoub(recHandle,fldHandle,doubPtr) extern DBIResult PXGetDoub ( RECORDHANDLE, FIELDHANDLE, double * ); //#define PXGetLong(recHandle,fldHandle,longPtr) //#define PXGetAlpha(recHandle,fldHandle,buffSize,dest) extern DBIResult PXGetAlpha ( RECORDHANDLE, FIELDHANDLE, int, char * ); //#define PXGetDate(recHandle,fldHandle,datePtr) extern DBIResult PXGetDate ( RECORDHANDLE, FIELDHANDLE, TDATE * ); //#define PXFldBlank(recHandle,fldHandle,blankPtr) extern DBIResult PXFldBlank ( RECORDHANDLE, FIELDHANDLE, int * ); //---------------------------------------------------------------------- //#define PXRecGoto(tblHandle,recNum) //#define PXRecFirst(tblHandle) extern DBIResult PXRecFirst ( TABLEHANDLE ); //#define PXRecLast(tblHandle) extern DBIResult PXRecLast ( TABLEHANDLE ); //#define PXRecNext(tblHandle) extern DBIResult PXRecNext ( TABLEHANDLE ); //#define PXRecPrev(tblHandle) extern DBIResult PXRecPrev ( TABLEHANDLE ); // INDEX FUNCTIONS //#define PXKeyAdd(tblName,nFlds,fldHandles,mode) extern DBIResult PXKeyAdd ( const char *, int, FIELDHANDLE *, int ); //#define PXKeyDrop(tblName,indexID) extern DBIResult PXKeyDrop ( const char *, FIELDHANDLE ); //#define PXKeyMap(tblName,nFlds,fldHandles,fldName,mode,indexId) extern DBIResult PXKeyMap ( const char *, int, FIELDHANDLE *, const char *, int, FIELDHANDLE * ); //#define PXKeyQuery(indexFileName,fldName,nfields,mode,fldArray,indexId) // DATE FUNCTIONS //#define PXDateDecode(adate,month,day,year) extern DBIResult PXDateDecode ( TDATE, pUINT16, pUINT16, pINT16 ); //#define PXDateEncode(month,day,year,adate) extern DBIResult PXDateEncode ( UINT16, UINT16, INT16, TDATE * ); // SEARCH FUNCTIONS //#define PXSrchKey(tblHandle,recHandle,nFlds,mode) extern DBIResult PXSrchKey ( TABLEHANDLE, RECORDHANDLE, int, int ); //#define PXSrchFld(tblHandle,recHandle,fldHandle,mode) extern DBIResult PXSrchFld ( TABLEHANDLE, RECORDHANDLE, FIELDHANDLE, int ); // PASSWORD FUNCTIONS //#define PXTblProtected(tblName,Protected) //#define PXPswAdd(password) //#define PXPswDel(password) //#define PXTblEncrypt(tblName,password) //#define PXTblDecrypt(tblName) // INFORMATIONAL FUNCTIONS //#define PXTblExist(tblName,Exist) //extern DBIResult PXTblExist ( const char *, int * ); //#define PXTblName(tblHandle,bufSize,tblName) extern DBIResult PXTblName ( TABLEHANDLE, int, char * ); //#define PXRecNum(tblHandle,recNumPtr) extern DBIResult PXRecNum ( TABLEHANDLE, RECORDNUMBER * ); //#define PXTblNRecs(tblHandle,nRecsPtr) //#define PXRecNFlds(tblHandle,nFldsPtr) extern DBIResult PXRecNFlds ( TABLEHANDLE, int * ); //#define PXKeyNFlds(tblHandle,nKeyFldsPtr) extern DBIResult PXKeyNFlds ( TABLEHANDLE, int * ); //#define PXFldHandle(tblHandle,fldName,fldHandlePtr) //#define PXFldType(tblHandle,fldHandle,bufSize,fldType) extern DBIResult PXFldType ( TABLEHANDLE, FIELDHANDLE, int, char * ); //#define PXFldName(tblHandle,fldHandle,bufSize,fldName) // MISCELLANEOUS FUNCTIONS //#define PXTblMaxSize(maxTblSize) //#define PXSave // CONCURRENCY FUNCTIONS //#define PXNetUserName(bufSize,userName) //#define PXNetFileLock(fileName,lockType) //#define PXNetFileUnlock(fileName,lockType) //#define PXNetTblLock(tblHandle,lockType) //#define PXNetTblUnlock(tblHandle,lockType) //#define PXNetRecLock(tblHandle,lckHandlePtr) //#define PXNetRecUnlock(tblHandle,lckHandle) //#define PXNetRecLocked(tblHandle,Locked) //#define PXNetRecGotoLock(tblHandle,lckHandle) //#define PXNetTblChanged(tblHandle,Changed) //#define PXNetTblRefresh(tblHandle) extern DBIResult PXNetTblRefresh ( TABLEHANDLE ); // ERROR FUNCTIONS char far *pascal far PXErrMsg ( int errCode ); //#define PXNetErrUser(bufSize,userName) // BLOB FUNCTIONS //#define PXBlobOpenRead(recHandle,fldHandle,blbHandle) //#define PXBlobOpenWrite(recHandle,fldHandle,blbHandle,size,saveCurrent) //#define PXBlobClose(blbHandle,accept) //#define PXBlobDrop(recHandle,fldHandle) //#define PXBlobGetSize(blbHandle,size) //#define PXBlobGet(blbHandle,size,offset,buff) //#define PXBlobPut(blbHandle,size,offset,buff) //#define PXBlobClone(recHandle,fldHandle) //#define PXBlobQuickGet(recHandle,fldHandle,bufSize,dest,bytesRead) #define I_PX_2_BDE 1 #if defined(I_PX_2_BDE) # pragma message "Some #define's that will need checking! Taken from original pxengine.h!" # define PXSHARED 2 # define NETSHARE 2 # define PXDEFAULT 0L // used in PXKeyAdd # define PRIMARY 0 // primary index (key) # define SECONDARY 1 // not maintained secondary index # define INCSECONDARY 2 // maintained secondary index // used in PXSrchFld, PXSrchKey # define SEARCHFIRST 0 // keySEARCHEQ # define SEARCHNEXT 1 // keySEARCHGT # define CLOSESTRECORD 2 // keySEARCHGEQ #endif extern void Reindex ( const TCHAR *, void ( * ) ( void ) ); #endif // PXENGINE_H