⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idapi.h

📁 一个短小精悍的PARADOX数据文件DB的修复工具
💻 H
📖 第 1 页 / 共 5 页
字号:
      BOOL16         bCreateable;            // Type can be created
      DBINAME        szNativeName;           // Native (SQL) name used in DDL
      UINT16         iUnUsed[16];
    } FLDType;
typedef FLDType FAR *pFLDType;


typedef enum                           // PROP Validity
   {
      epropINVALID     = 0,            // Property is INVALID (not supported)
      epropCANGET      = 1,            // You can GET value of the property
      epropCANSET      = 2             // You can GET and SET value of the property
   } PROPValid;


//===========================================================================
//                               Call Backs
//===========================================================================


typedef enum                              // Call back type
   {
       cbGENERAL      = 0,                    // General purpose
       cbRESERVED1    = 1,                    //
       cbRESERVED2    = 2,                    //
       cbINPUTREQ     = 3,                    // Input requested
       cbRESERVED4    = 4,                    //
       cbRESERVED5    = 5,                    //
       cbBATCHRESULT  = 6,                    // Batch processing rslts
       cbRESERVED7    = 7,                    //
       cbRESTRUCTURE  = 8,                    // Restructure
       cbRESERVED9    = 9,                    //
       cbRESERVED10   = 10,                   //
       cbRESERVED11   = 11,                   //
       cbRESERVED12   = 12,                   //
       cbRESERVED13   = 13,                   //
       cbRESERVED14   = 14,                   //
       cbRESERVED15   = 15,                   //
       cbRESERVED16   = 16,                   //
       cbRESERVED17   = 17,                   //
       cbTABLECHANGED = 18,                   // Table changed notification
       cbRESERVED19   = 19,                   //
       cbCANCELQRY    = 20,                   // Allow user to cancel Query
       cbRESERVED21   = 21,                   //
       cbRESERVED22   = 22,                   //
       cbGENPROGRESS  = 23,                   // Generic Progress report.
       cbDBASELOGIN   = 24,                   // dBASE Login
       cbDELAYEDUPD   = 25,
       cbFIELDRECALC  = 26,                   // Field(s) recalculation
       cbTRACE        = 27,                   // Trace
       cbDBLOGIN      = 28,                   // Database login
       cbRESERVED29   = 29,                   //
       cbRESERVED30   = 30,                   //
       cbRESERVED31   = 31,                   //
       cbRESERVED32   = 32,                   //
       cbRESERVED33   = 33,                   //
       cbNBROFCBS     = 34                    // Number of cbs
   } CBType;
typedef CBType FAR *pCBType;

typedef enum                              // Call-back return type
   {
      cbrUSEDEF        = 0,                  // Take default action
      cbrCONTINUE      = 1,                  // Continue
      cbrABORT         = 2,                  // Abort the operation
      cbrCHKINPUT      = 3,                  // Input given
      cbrYES           = 4,                  // Take requested action
      cbrNO            = 5,                  // Do not take requested action
      cbrPARTIALASSIST = 6,                  // Assist in completing the job
      cbrSKIP          = 7,                  // Skip this operation
      cbrRETRY         = 8                   // Retry this operation
   } CBRType;
typedef CBRType FAR *pCBRType;

typedef CBRType (DBIFN  * pfDBICallBack)  // Call-back funtion pntr type
   (
      CBType         ecbType,                // Callback type
      UINT32         iClientData,            // Client callback data
      pVOID          pCbInfo                 // Call back info/Client Input
   );

typedef pfDBICallBack FAR *ppfDBICallBack;

// Progress callback structure
typedef struct
   {
      INT16         iPercentDone;          // Percentage done
      DBIMSG        szMsg;                 // Message to display
   } CBPROGRESSDesc;

typedef  CBPROGRESSDesc FAR * pCBPROGRESSDesc;

typedef enum   // type of delayed update object (delayed updates callback)
   {
      delayupdNONE        = 0,
      delayupdMODIFY      = 1,
      delayupdINSERT      = 2,
      delayupdDELETE      = 3
   } DelayUpdErrOpType;

typedef struct       // delayed updates callback info
   {
      DBIResult           iErrCode;
      DelayUpdErrOpType   eDelayUpdOpType;
      UINT16              iRecBufSize;  // Record size (physical record)
      pBYTE               pNewRecBuf;
      pBYTE               pOldRecBuf;
   } DELAYUPDCbDesc;

typedef enum        // type of restructure object (restructure callback)
   {
      restrNONE        = 0,
      restrNEWFLD      = 1,
      restrOLDFLD      = 2,
      restrNEWINDEX    = 3,
      restrOLDINDEX    = 4,
      restrNEWVCHK     = 5,
      restrOLDVCHK     = 6,
      restrNEWRINT     = 7,
      restrOLDRINT     = 8,
      restrNEWSEC      = 9,
      restrOLDSEC      = 10,
      restrNEWTABLE    = 11
   } RESTErrObjType;

typedef struct  {               //  Database login
   DBINAME        szDbName;             // Database name
   DBIOpenMode    eOpenMode;            // Open type desired
   DBIShareMode   eShareMode;           // Share type desired
   DBINAME        szPassword;           // Password
   BOOL           bCallbackToClose;     // Returned flag
   hDBIDb         hDb;                  // db handle
} CBDBLogin;
typedef CBDBLogin *pCBDBLogin;

typedef enum         // trace categories
   {
      traceUNKNOWN   = 0x0000,
      traceQPREPARE  = 0x0001,   // prepared query statements
      traceQEXECUTE  = 0x0002,   // executed query statements
      traceERROR     = 0x0004,   // vendor errors
      traceSTMT      = 0x0008,   // statement ops (i.e. allocate, free)
      traceCONNECT   = 0x0010,   // connect / disconnect
      traceTRANSACT  = 0x0020,   // transaction
      traceBLOB      = 0x0040,   // blob i/o
      traceMISC      = 0x0080,   // misc.
      traceVENDOR    = 0x0100,   // vendor calls
   } TRACECat;
typedef TRACECat *pTRACECat;

typedef struct       // trace callback info
   {
      TRACECat    eTraceCat;
      UINT16      uTotalMsgLen;
      CHAR        pszTrace[1];
   } TRACEDesc;
typedef TRACEDesc *pTRACEDesc;

#if !defined(MIDL)
typedef struct       // restructure callback info
   {
      DBIResult      iErrCode;
      UINT16         iTblNum;
      UINT16         iObjNum;
      // for old objects iObjNum is the sequence or field number,
      // for new objects it is the order in CRTblDesc
      RESTErrObjType   eRestrObjType;
      union
         {
            FLDDesc     fldDesc;
            IDXDesc     idxDesc;
            VCHKDesc    vchkDesc;
            RINTDesc    rintDesc;
            SECDesc     secDesc;
         } uObjDesc;
   } RESTCbDesc;

#endif // !defined(MIDL)

typedef struct
{
      DBINAME        szKeyWord;       // Keyword to display
      DBIMSG         szHelp;          // Help String
} CBEntry;

#define  MAXCBENTRIES    4

typedef enum
{
    cbiMDXMISSING = 1,                  // MDX file missing request
    cbiPDXLOOKUP  = 2,                  // Lookup table missing
    cbiPDXBLOB    = 3,                  // Blob file missing
    cbiDBTMISSING = 4,                   // DBT file missing request
    cbiDRINPUT    = 5                   // DR Manager needs user input
}   CBInputId;                          // id's for input requests

typedef struct
{
   CBInputId      eCbInputId;             // Id for this input request
   INT16          iCount;                 // Number of entries
   INT16          iSelection;             // Selection 1..n  (In/Out)
   BOOL16         bSave;                  // Save this option  (In/Out)
   DBIMSG         szMsg;                  // Message to display
   CBEntry        acbEntry[MAXCBENTRIES]; // Entries
} CBInputDesc;

typedef struct    // dBASE login callback structure
{
   DBINAME  szUserName;            // Login name of user
   DBINAME  szGroupName;           // Group to log in to
   DBINAME  szUserPassword;        // User password
} CBLoginDesc;

typedef  CBLoginDesc FAR * pCBLoginDesc;


//============================================================================
//                         Basic Query Types
//============================================================================

typedef enum DBIQryLang
{
   qrylangUNKNOWN = 0,  // UNKNOWN (Error)
   qrylangQBE = 1,      // QBE
   qrylangSQL = 2       // SQL
} DBIQryLang;

//============================================================================
//                         Statement parameter information
//============================================================================

typedef enum
{
   indTRUNC = -2,         // Value has been truncated
   indNULL  = -1,         // Value is NULL
   indVALUE = 1,          //
} eINDValues;

#define INDLEN             sizeof (INT16)

typedef enum STMTParamType
{
   paramUNKNOWN    = 0, // UNKNOWN (Error)
   paramIN         = 1, // Input parameter
   paramOUT        = 2, // Output parameter
   paramINOUT      = 3, // Input/Output parameter
   paramRET        = 4  // Procedure (or function) return
} STMTParamType;

typedef enum STMTParamFormat
{
   paramfmtUNKNOWN = 0, // UNKNOWN (Error)
   paramfmtNUMBER  = 1, // Numbered parameter markers of the form ? or :n
   paramfmtNAME    = 2  // Named parameters markers of the form :name
} STMTParamFormat;


//============================================================================
//                         Properties For DbiQPrepareExt
//============================================================================

#define qprepNONE       0     // like DbiQPrepare
#define qprepFORUPDATE  0x1   // do extra work, anticipating UPDATE WHERE CURRENT


//============================================================================
//                      Date, Time, Number Formats
//============================================================================


typedef struct                         // Date Format
   {
      CHAR        cDecimalSeparator;         // Default "."
      CHAR        cThousandSeparator;        // Default ","
      INT8        iDecimalDigits;            // Default 2
      INT8        bLeadingZero;              // Default TRUE.
   } FMTNumber;
typedef FMTNumber FAR *pFMTNumber;

typedef struct
   {
      CHAR        szDateSeparator[4];        // Default "/"
      INT8        iDateMode;                 // 0 = MDY (Def), 1 = DMY, 2 = YMD
      INT8        bFourDigitYear;            // Write Year as 4 digits (FALSE)
      INT8        bYearBiased;               // On input add 1900 to year (TRUE)
      INT8        bMonthLeadingZero;         // Month with Leading Zero (TRUE)
      INT8        bDayLeadingZero;           // Day with Leading Zero (TRUE)
   } FMTDate;
type

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -