Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.3 KiB

  1. //============== DAE: OS/2 Database Access Engine ===================
  2. //============== recapi.h: Record Management API ===================
  3. /* hooks for efficient functioning of comapct
  4. /**/
  5. ERR ErrRECExtrinsicLong( JET_VTID tableid,
  6. ULONG itagSequence,
  7. BOOL *pfSeparated,
  8. LONG *plid,
  9. ULONG *plrefcnt,
  10. ULONG grbit );
  11. ERR ErrREClinkLid( JET_VTID tableid, JET_COLUMNID ulFieldId,
  12. long lid, unsigned long lSeqNum );
  13. ERR ErrRECForceSeparatedLV( JET_VTID tableid, ULONG itagSequence );
  14. /* key extraction/normalization
  15. /**/
  16. ERR ErrRECNormExtKey(
  17. FUCB *pfucb,
  18. FDB *pfdb,
  19. IDB *pidb,
  20. LINE *plineRec,
  21. LINE *plineValues,
  22. KEY *pkey,
  23. ULONG itagSequence );
  24. ERR ErrRECExtractKey(
  25. FUCB *pfucb,
  26. FDB *pfdb,
  27. IDB *pidb,
  28. LINE *plineRec,
  29. KEY *pkey,
  30. ULONG itagSequence );
  31. ERR ErrRECDenormalizeKey( FDB *pfdb, IDB *pidb, KEY *pkey, LINE *plineValues );
  32. /* field extraction
  33. /**/
  34. ERR ErrRECExtractField(
  35. FDB *pfdb,
  36. LINE *plineRec,
  37. FID *pfid,
  38. ULONG *pitagSequence,
  39. ULONG itagSequence,
  40. LINE *plineField );
  41. // ===================== EXPOSED CLIENT API ======================
  42. // Record positioning
  43. ERR VTAPI ErrIsamMove( PIB *ppib, FUCB *pfucb, LONG crow, JET_GRBIT grbit );
  44. ERR VTAPI ErrIsamSeek( PIB *ppib, FUCB *pfucb, JET_GRBIT grbit );
  45. // Record modification
  46. ERR VTAPI ErrIsamUpdate( PIB *ppib, FUCB *pfucb, BYTE *pb, ULONG cb, ULONG *cbActual );
  47. ERR VTAPI ErrIsamDelete( PIB *ppib, FUCB *pfucb );
  48. // Field retrieval and modification
  49. ERR VTAPI ErrIsamSetColumn(
  50. PIB *ppib,
  51. FUCB *pfucb,
  52. JET_COLUMNID columnid,
  53. BYTE *pbData,
  54. ULONG cbData,
  55. ULONG grbit,
  56. JET_SETINFO *psetinfo );
  57. ERR VTAPI ErrIsamRetrieveColumn(
  58. PIB *ppib,
  59. FUCB *pfucb,
  60. JET_COLUMNID columnid,
  61. BYTE *pbData,
  62. ULONG cbDataMax,
  63. ULONG *pcbDataActual,
  64. JET_GRBIT grbit,
  65. JET_RETINFO *pretinfo );
  66. ERR VTAPI ErrIsamRetrieveColumns(
  67. PIB *ppib,
  68. FUCB *pfucb,
  69. JET_RETRIEVECOLUMN *pretcols,
  70. ULONG cretcols );
  71. ERR VTAPI ErrIsamPrepareUpdate( PIB *ppib, FUCB *pfucb, ULONG grbit );
  72. ERR VTAPI ErrIsamDupCursor( PIB*, FUCB*, FUCB **, ULONG );
  73. ERR VTAPI ErrIsamGotoBookmark( PIB *ppib, FUCB *pfucb, BYTE *pbBookmark, ULONG cbBookmark );
  74. ERR VTAPI ErrIsamGotoPosition( PIB *ppib, FUCB *pfucb, JET_RECPOS *precpos );
  75. // Misc
  76. ERR VTAPI ErrIsamGetCurrentIndex( PIB *ppib, FUCB *pfucb, CHAR *szCurIdx, ULONG cbMax );
  77. ERR VTAPI ErrIsamSetCurrentIndex( PIB *ppib, FUCB *pfucb, const CHAR *szName );
  78. ERR VTAPI ErrIsamMakeKey( PIB *ppib, FUCB *pfucb, BYTE *pbKeySeg,
  79. ULONG cbKeySeg, JET_GRBIT grbit );
  80. ERR VTAPI ErrIsamRetrieveKey( PIB *ppib, FUCB *pfucb, BYTE *pbKey,
  81. ULONG cbMax, ULONG *pcbKeyActual, JET_GRBIT grbit );
  82. ERR VTAPI ErrIsamRetrieveBookmarks( PIB *ppib, FUCB *pfucb,
  83. void *pvBookmarks, unsigned long cbMax, unsigned long *pcbActual );
  84. ERR VTAPI ErrIsamSetIndexRange( PIB *ppib, FUCB *pfucb, JET_GRBIT grbit );
  85. BOOL FIndexedFixVarChanged( BYTE *rgbitIdx, BYTE *rgbitSet,
  86. FID fidFixedLast, FID fidVarLast );
  87. #ifdef JETSER
  88. ERR VTAPI
  89. ErrIsamRetrieveFDB( PIB *ppib, FUCB *pfucb, void *pvFDB, unsigned long cbMax, unsigned long *pcbActual, unsigned long ibFDB );
  90. ERR VTAPI
  91. ErrIsamRetrieveRecords( PIB *ppib, FUCB *pfucb, void *pvRecord, unsigned long cbMax, unsigned long *pcbActual, unsigned long ulRecords );
  92. ERR VTAPI
  93. ErrIsamRetrieveBookmarks( PIB *ppib, FUCB *pfucb, void *pvBookmarks, unsigned long cbMax, unsigned long *pcbActual );
  94. #endif